mirror of
https://github.com/usememos/memos.git
synced 2024-10-04 07:17:52 +03:00
chore: rename navigator
This commit is contained in:
parent
7c5fdd1b06
commit
fe4ec0b156
@ -55,9 +55,7 @@ VALUES
|
|||||||
'#TODO
|
'#TODO
|
||||||
- [x] Take more photos about **🌄 sunset**;
|
- [x] Take more photos about **🌄 sunset**;
|
||||||
- [ ] Clean the classroom;
|
- [ ] Clean the classroom;
|
||||||
- [ ] Watch *👦 The Boys*;
|
- [ ] Watch *👦 The Boys*;',
|
||||||
(👆 click to toggle status)
|
|
||||||
',
|
|
||||||
102,
|
102,
|
||||||
'PROTECTED'
|
'PROTECTED'
|
||||||
);
|
);
|
||||||
|
@ -212,7 +212,7 @@ const Memo: React.FC<Props> = (props: Props) => {
|
|||||||
className={`group memo-wrapper ${"memos-" + memo.id} ${memo.pinned && props.showPinnedStyle ? "pinned" : ""}`}
|
className={`group memo-wrapper ${"memos-" + memo.id} ${memo.pinned && props.showPinnedStyle ? "pinned" : ""}`}
|
||||||
ref={memoContainerRef}
|
ref={memoContainerRef}
|
||||||
>
|
>
|
||||||
<div className="memo-top-wrapper">
|
<div className="memo-top-wrapper mb-1">
|
||||||
<div className="w-full max-w-[calc(100%-20px)] flex flex-row justify-start items-center mr-1">
|
<div className="w-full max-w-[calc(100%-20px)] flex flex-row justify-start items-center mr-1">
|
||||||
{props.showCreator && creator && (
|
{props.showCreator && creator && (
|
||||||
<>
|
<>
|
||||||
@ -303,7 +303,7 @@ const Memo: React.FC<Props> = (props: Props) => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{props.showParent && memo.parent && (
|
{props.showParent && memo.parent && (
|
||||||
<div className="w-auto max-w-full mt-1">
|
<div className="w-auto max-w-full mb-1">
|
||||||
<Link
|
<Link
|
||||||
className="px-2 py-0.5 border rounded-full max-w-xs w-auto text-xs flex flex-row justify-start items-center flex-nowrap text-gray-600 dark:text-gray-400 dark:border-gray-500 hover:shadow hover:opacity-80"
|
className="px-2 py-0.5 border rounded-full max-w-xs w-auto text-xs flex flex-row justify-start items-center flex-nowrap text-gray-600 dark:text-gray-400 dark:border-gray-500 hover:shadow hover:opacity-80"
|
||||||
to={`/m/${memo.parent.id}`}
|
to={`/m/${memo.parent.id}`}
|
||||||
|
@ -43,11 +43,11 @@ const Navigation = () => {
|
|||||||
title: t("common.home"),
|
title: t("common.home"),
|
||||||
icon: <Icon.Home className="mr-3 w-6 h-auto opacity-70" />,
|
icon: <Icon.Home className="mr-3 w-6 h-auto opacity-70" />,
|
||||||
};
|
};
|
||||||
const dailyReviewNavLink: NavLinkItem = {
|
const timelineNavLink: NavLinkItem = {
|
||||||
id: "header-daily-review",
|
id: "header-timeline",
|
||||||
path: "/review",
|
path: "/timeline",
|
||||||
title: t("daily-review.title"),
|
title: t("timeline.title"),
|
||||||
icon: <Icon.Calendar className="mr-3 w-6 h-auto opacity-70" />,
|
icon: <Icon.GanttChartSquare className="mr-3 w-6 h-auto opacity-70" />,
|
||||||
};
|
};
|
||||||
const resourcesNavLink: NavLinkItem = {
|
const resourcesNavLink: NavLinkItem = {
|
||||||
id: "header-resources",
|
id: "header-resources",
|
||||||
@ -94,7 +94,7 @@ const Navigation = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const navLinks: NavLinkItem[] = user
|
const navLinks: NavLinkItem[] = user
|
||||||
? [homeNavLink, dailyReviewNavLink, resourcesNavLink, exploreNavLink, inboxNavLink, archivedNavLink, settingNavLink]
|
? [homeNavLink, timelineNavLink, resourcesNavLink, exploreNavLink, inboxNavLink, archivedNavLink, settingNavLink]
|
||||||
: [exploreNavLink, signInNavLink];
|
: [exploreNavLink, signInNavLink];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -70,10 +70,6 @@
|
|||||||
"visibility": "الرؤية",
|
"visibility": "الرؤية",
|
||||||
"yourself": "نفسك"
|
"yourself": "نفسك"
|
||||||
},
|
},
|
||||||
"daily-review": {
|
|
||||||
"no-memos": "عفوًا، لا يوجد شيء.",
|
|
||||||
"title": "المراجعة اليومية"
|
|
||||||
},
|
|
||||||
"editor": {
|
"editor": {
|
||||||
"cancel-edit": "إلغاء التعديل",
|
"cancel-edit": "إلغاء التعديل",
|
||||||
"cant-empty": "المحتوى لا يمكن أن يكون فارغ",
|
"cant-empty": "المحتوى لا يمكن أن يكون فارغ",
|
||||||
|
@ -81,10 +81,6 @@
|
|||||||
"visibility": "Sichtbarkeit",
|
"visibility": "Sichtbarkeit",
|
||||||
"yourself": "Du selbst"
|
"yourself": "Du selbst"
|
||||||
},
|
},
|
||||||
"daily-review": {
|
|
||||||
"no-memos": "Hoppla, da ist ja gar nichts.",
|
|
||||||
"title": "Tagesbilanz"
|
|
||||||
},
|
|
||||||
"days": {
|
"days": {
|
||||||
"fri": "Fr",
|
"fri": "Fr",
|
||||||
"mon": "Mo",
|
"mon": "Mo",
|
||||||
|
@ -157,9 +157,8 @@
|
|||||||
"hide": "Hide",
|
"hide": "Hide",
|
||||||
"save-all": "Save all"
|
"save-all": "Save all"
|
||||||
},
|
},
|
||||||
"daily-review": {
|
"timeline": {
|
||||||
"title": "Daily Review",
|
"title": "Timeline"
|
||||||
"no-memos": "Oops, there is nothing."
|
|
||||||
},
|
},
|
||||||
"setting": {
|
"setting": {
|
||||||
"my-account": "My Account",
|
"my-account": "My Account",
|
||||||
|
@ -85,10 +85,6 @@
|
|||||||
"visibility": "Visibilité",
|
"visibility": "Visibilité",
|
||||||
"yourself": "Vous-même"
|
"yourself": "Vous-même"
|
||||||
},
|
},
|
||||||
"daily-review": {
|
|
||||||
"no-memos": "Oups, il n'y a rien.",
|
|
||||||
"title": "Résumé journalier"
|
|
||||||
},
|
|
||||||
"days": {
|
"days": {
|
||||||
"fri": "Ve",
|
"fri": "Ve",
|
||||||
"mon": "Lu",
|
"mon": "Lu",
|
||||||
|
@ -123,10 +123,6 @@
|
|||||||
"tag-name": "LABEL_NAAM",
|
"tag-name": "LABEL_NAAM",
|
||||||
"invalid-tag-name": "Onjuiste label naam"
|
"invalid-tag-name": "Onjuiste label naam"
|
||||||
},
|
},
|
||||||
"daily-review": {
|
|
||||||
"title": "Dagelijks",
|
|
||||||
"no-memos": "Oeps, er is niks."
|
|
||||||
},
|
|
||||||
"setting": {
|
"setting": {
|
||||||
"my-account": "Mijn account",
|
"my-account": "Mijn account",
|
||||||
"preference": "Voorkeuren",
|
"preference": "Voorkeuren",
|
||||||
|
@ -85,10 +85,6 @@
|
|||||||
"visibility": "Visibilidade",
|
"visibility": "Visibilidade",
|
||||||
"yourself": "Você mesmo"
|
"yourself": "Você mesmo"
|
||||||
},
|
},
|
||||||
"daily-review": {
|
|
||||||
"no-memos": "Não há memos.",
|
|
||||||
"title": "Resumo Diário"
|
|
||||||
},
|
|
||||||
"days": {
|
"days": {
|
||||||
"fri": "Sex",
|
"fri": "Sex",
|
||||||
"mon": "Seg",
|
"mon": "Seg",
|
||||||
|
@ -78,10 +78,6 @@
|
|||||||
"visibility": "Видимость",
|
"visibility": "Видимость",
|
||||||
"yourself": "Вы"
|
"yourself": "Вы"
|
||||||
},
|
},
|
||||||
"daily-review": {
|
|
||||||
"no-memos": "Записей нет.",
|
|
||||||
"title": "По дням"
|
|
||||||
},
|
|
||||||
"days": {
|
"days": {
|
||||||
"fri": "Пт.",
|
"fri": "Пт.",
|
||||||
"mon": "Пон.",
|
"mon": "Пон.",
|
||||||
|
@ -82,9 +82,8 @@
|
|||||||
"yourself": "您自己",
|
"yourself": "您自己",
|
||||||
"inbox": "通知"
|
"inbox": "通知"
|
||||||
},
|
},
|
||||||
"daily-review": {
|
"timeline": {
|
||||||
"no-memos": "哎呀,空无一物。",
|
"title": "时间线"
|
||||||
"title": "每日回顾"
|
|
||||||
},
|
},
|
||||||
"days": {
|
"days": {
|
||||||
"fri": "五",
|
"fri": "五",
|
||||||
|
@ -82,9 +82,8 @@
|
|||||||
"visibility": "可見度",
|
"visibility": "可見度",
|
||||||
"yourself": "你自己"
|
"yourself": "你自己"
|
||||||
},
|
},
|
||||||
"daily-review": {
|
"timeline": {
|
||||||
"no-memos": "可惜可惜,是日空空如也。",
|
"title": "时间线"
|
||||||
"title": "每日回顧"
|
|
||||||
},
|
},
|
||||||
"days": {
|
"days": {
|
||||||
"fri": "五",
|
"fri": "五",
|
||||||
|
@ -104,94 +104,92 @@ const SignIn = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-row justify-center items-center w-full h-full dark:bg-zinc-800">
|
<div className="pt-12 pb-8 w-80 max-w-full h-auto mx-auto flex flex-col justify-start items-center">
|
||||||
<div className="w-80 max-w-full h-full min-h-screen py-4 flex flex-col justify-start items-center">
|
<div className="w-full py-4 grow flex flex-col justify-center items-center">
|
||||||
<div className="w-full py-4 grow flex flex-col justify-center items-center">
|
<div className="w-full flex flex-row justify-center items-center mb-6">
|
||||||
<div className="w-full flex flex-row justify-center items-center mb-6">
|
<img className="h-14 w-auto rounded-full shadow" src={systemStatus.customizedProfile.logoUrl} alt="" />
|
||||||
<img className="h-14 w-auto rounded-full shadow" src={systemStatus.customizedProfile.logoUrl} alt="" />
|
<p className="ml-2 text-5xl text-black opacity-80 dark:text-gray-200">{systemStatus.customizedProfile.name}</p>
|
||||||
<p className="ml-2 text-5xl text-black opacity-80 dark:text-gray-200">{systemStatus.customizedProfile.name}</p>
|
</div>
|
||||||
</div>
|
{!disablePasswordLogin && (
|
||||||
{!disablePasswordLogin && (
|
<>
|
||||||
<>
|
<form className="w-full mt-2" onSubmit={handleFormSubmit}>
|
||||||
<form className="w-full mt-2" onSubmit={handleFormSubmit}>
|
<div className="flex flex-col justify-start items-start w-full gap-4">
|
||||||
<div className="flex flex-col justify-start items-start w-full gap-4">
|
<div className="w-full flex flex-col justify-start items-start gap-2">
|
||||||
<div className="w-full flex flex-col justify-start items-start gap-2">
|
<span className="leading-8 text-gray-600">{t("common.username")}</span>
|
||||||
<span className="leading-8 text-gray-600">{t("common.username")}</span>
|
<Input
|
||||||
<Input
|
|
||||||
className="w-full"
|
|
||||||
size="lg"
|
|
||||||
type="text"
|
|
||||||
readOnly={actionBtnLoadingState.isLoading}
|
|
||||||
placeholder={t("common.username")}
|
|
||||||
value={username}
|
|
||||||
onChange={handleUsernameInputChanged}
|
|
||||||
required
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="w-full flex flex-col justify-start items-start gap-2">
|
|
||||||
<span className="leading-8 text-gray-600">{t("common.password")}</span>
|
|
||||||
<Input
|
|
||||||
className="w-full"
|
|
||||||
size="lg"
|
|
||||||
type="password"
|
|
||||||
readOnly={actionBtnLoadingState.isLoading}
|
|
||||||
placeholder={t("common.password")}
|
|
||||||
value={password}
|
|
||||||
onChange={handlePasswordInputChanged}
|
|
||||||
required
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="flex flex-row justify-start items-center w-full mt-6">
|
|
||||||
<Checkbox label={t("common.remember-me")} checked={remember} onChange={(e) => setRemember(e.target.checked)} />
|
|
||||||
</div>
|
|
||||||
<div className="flex flex-row justify-end items-center w-full mt-6">
|
|
||||||
<Button
|
|
||||||
className="w-full"
|
className="w-full"
|
||||||
size="md"
|
size="lg"
|
||||||
type="submit"
|
type="text"
|
||||||
disabled={actionBtnLoadingState.isLoading}
|
readOnly={actionBtnLoadingState.isLoading}
|
||||||
loading={actionBtnLoadingState.isLoading}
|
placeholder={t("common.username")}
|
||||||
onClick={handleSignInButtonClick}
|
value={username}
|
||||||
>
|
onChange={handleUsernameInputChanged}
|
||||||
{t("common.sign-in")}
|
required
|
||||||
</Button>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
<div className="w-full flex flex-col justify-start items-start gap-2">
|
||||||
{systemStatus.allowSignUp && (
|
<span className="leading-8 text-gray-600">{t("common.password")}</span>
|
||||||
<p className="w-full mt-4 text-sm">
|
<Input
|
||||||
<span className="dark:text-gray-500">{t("auth.sign-up-tip")}</span>
|
|
||||||
<Link to="/auth/signup" className="cursor-pointer ml-2 text-blue-600 hover:underline">
|
|
||||||
{t("common.sign-up")}
|
|
||||||
</Link>
|
|
||||||
</p>
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
{identityProviderList.length > 0 && (
|
|
||||||
<>
|
|
||||||
{!disablePasswordLogin && <Divider className="!my-4">{t("common.or")}</Divider>}
|
|
||||||
<div className="w-full flex flex-col space-y-2">
|
|
||||||
{identityProviderList.map((identityProvider) => (
|
|
||||||
<Button
|
|
||||||
key={identityProvider.id}
|
|
||||||
variant="outlined"
|
|
||||||
color="neutral"
|
|
||||||
className="w-full"
|
className="w-full"
|
||||||
size="md"
|
size="lg"
|
||||||
onClick={() => handleSignInWithIdentityProvider(identityProvider)}
|
type="password"
|
||||||
>
|
readOnly={actionBtnLoadingState.isLoading}
|
||||||
{t("common.sign-in-with", { provider: identityProvider.name })}
|
placeholder={t("common.password")}
|
||||||
</Button>
|
value={password}
|
||||||
))}
|
onChange={handlePasswordInputChanged}
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</>
|
<div className="flex flex-row justify-start items-center w-full mt-6">
|
||||||
)}
|
<Checkbox label={t("common.remember-me")} checked={remember} onChange={(e) => setRemember(e.target.checked)} />
|
||||||
</div>
|
</div>
|
||||||
<div className="flex flex-row items-center justify-center w-full gap-2">
|
<div className="flex flex-row justify-end items-center w-full mt-6">
|
||||||
<LocaleSelect value={locale} onChange={handleLocaleSelectChange} />
|
<Button
|
||||||
<AppearanceSelect value={appearance} onChange={handleAppearanceSelectChange} />
|
className="w-full"
|
||||||
</div>
|
size="md"
|
||||||
|
type="submit"
|
||||||
|
disabled={actionBtnLoadingState.isLoading}
|
||||||
|
loading={actionBtnLoadingState.isLoading}
|
||||||
|
onClick={handleSignInButtonClick}
|
||||||
|
>
|
||||||
|
{t("common.sign-in")}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{systemStatus.allowSignUp && (
|
||||||
|
<p className="w-full mt-4 text-sm">
|
||||||
|
<span className="dark:text-gray-500">{t("auth.sign-up-tip")}</span>
|
||||||
|
<Link to="/auth/signup" className="cursor-pointer ml-2 text-blue-600 hover:underline">
|
||||||
|
{t("common.sign-up")}
|
||||||
|
</Link>
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
{identityProviderList.length > 0 && (
|
||||||
|
<>
|
||||||
|
{!disablePasswordLogin && <Divider className="!my-4">{t("common.or")}</Divider>}
|
||||||
|
<div className="w-full flex flex-col space-y-2">
|
||||||
|
{identityProviderList.map((identityProvider) => (
|
||||||
|
<Button
|
||||||
|
key={identityProvider.id}
|
||||||
|
variant="outlined"
|
||||||
|
color="neutral"
|
||||||
|
className="w-full"
|
||||||
|
size="md"
|
||||||
|
onClick={() => handleSignInWithIdentityProvider(identityProvider)}
|
||||||
|
>
|
||||||
|
{t("common.sign-in-with", { provider: identityProvider.name })}
|
||||||
|
</Button>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
<div className="mt-4 flex flex-row items-center justify-center w-full gap-2">
|
||||||
|
<LocaleSelect value={locale} onChange={handleLocaleSelectChange} />
|
||||||
|
<AppearanceSelect value={appearance} onChange={handleAppearanceSelectChange} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -70,68 +70,66 @@ const SignUp = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-row justify-center items-center w-full h-full dark:bg-zinc-800">
|
<div className="pt-12 pb-8 w-80 max-w-full h-auto mx-auto flex flex-col justify-start items-center">
|
||||||
<div className="w-80 max-w-full h-full min-h-screen py-4 flex flex-col justify-start items-center">
|
<div className="w-full py-4 grow flex flex-col justify-center items-center">
|
||||||
<div className="w-full py-4 grow flex flex-col justify-center items-center">
|
<div className="w-full flex flex-row justify-center items-center mb-6">
|
||||||
<div className="w-full flex flex-row justify-center items-center mb-6">
|
<img className="h-14 w-auto rounded-full shadow" src={systemStatus.customizedProfile.logoUrl} alt="" />
|
||||||
<img className="h-14 w-auto rounded-full shadow" src={systemStatus.customizedProfile.logoUrl} alt="" />
|
<p className="ml-2 text-5xl text-black opacity-80 dark:text-gray-200">{systemStatus.customizedProfile.name}</p>
|
||||||
<p className="ml-2 text-5xl text-black opacity-80 dark:text-gray-200">{systemStatus.customizedProfile.name}</p>
|
</div>
|
||||||
</div>
|
<p className="w-full text-2xl mt-2 dark:text-gray-500">{t("auth.create-your-account")}</p>
|
||||||
<p className="w-full text-2xl mt-2 dark:text-gray-500">{t("auth.create-your-account")}</p>
|
<form className="w-full mt-2" onSubmit={handleFormSubmit}>
|
||||||
<form className="w-full mt-2" onSubmit={handleFormSubmit}>
|
<div className="flex flex-col justify-start items-start w-full gap-4">
|
||||||
<div className="flex flex-col justify-start items-start w-full gap-4">
|
<div className="w-full flex flex-col justify-start items-start gap-2">
|
||||||
<div className="w-full flex flex-col justify-start items-start gap-2">
|
<span className="leading-8 text-gray-600">{t("common.username")}</span>
|
||||||
<span className="leading-8 text-gray-600">{t("common.username")}</span>
|
<Input
|
||||||
<Input
|
|
||||||
className="w-full"
|
|
||||||
size="lg"
|
|
||||||
type="text"
|
|
||||||
readOnly={actionBtnLoadingState.isLoading}
|
|
||||||
placeholder={t("common.username")}
|
|
||||||
value={username}
|
|
||||||
onChange={handleUsernameInputChanged}
|
|
||||||
required
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="w-full flex flex-col justify-start items-start gap-2">
|
|
||||||
<span className="leading-8 text-gray-600">{t("common.password")}</span>
|
|
||||||
<Input
|
|
||||||
className="w-full"
|
|
||||||
size="lg"
|
|
||||||
type="password"
|
|
||||||
readOnly={actionBtnLoadingState.isLoading}
|
|
||||||
placeholder={t("common.password")}
|
|
||||||
value={password}
|
|
||||||
onChange={handlePasswordInputChanged}
|
|
||||||
required
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="flex flex-row justify-end items-center w-full mt-6">
|
|
||||||
<Button
|
|
||||||
className="w-full"
|
className="w-full"
|
||||||
size="md"
|
size="lg"
|
||||||
type="submit"
|
type="text"
|
||||||
disabled={actionBtnLoadingState.isLoading}
|
readOnly={actionBtnLoadingState.isLoading}
|
||||||
loading={actionBtnLoadingState.isLoading}
|
placeholder={t("common.username")}
|
||||||
onClick={handleSignUpButtonClick}
|
value={username}
|
||||||
>
|
onChange={handleUsernameInputChanged}
|
||||||
{t("common.sign-up")}
|
required
|
||||||
</Button>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
<div className="w-full flex flex-col justify-start items-start gap-2">
|
||||||
{!systemStatus.host && <p className="w-full mt-4 text-sm font-medium dark:text-gray-500">{t("auth.host-tip")}</p>}
|
<span className="leading-8 text-gray-600">{t("common.password")}</span>
|
||||||
<p className="w-full mt-4 text-sm">
|
<Input
|
||||||
<span className="dark:text-gray-500">{t("auth.sign-in-tip")}</span>
|
className="w-full"
|
||||||
<Link to="/auth" className="cursor-pointer ml-2 text-blue-600 hover:underline">
|
size="lg"
|
||||||
{t("common.sign-in")}
|
type="password"
|
||||||
</Link>
|
readOnly={actionBtnLoadingState.isLoading}
|
||||||
</p>
|
placeholder={t("common.password")}
|
||||||
</div>
|
value={password}
|
||||||
<div className="flex flex-row items-center justify-center w-full gap-2">
|
onChange={handlePasswordInputChanged}
|
||||||
<LocaleSelect value={locale} onChange={handleLocaleSelectChange} />
|
required
|
||||||
<AppearanceSelect value={appearance} onChange={handleAppearanceSelectChange} />
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex flex-row justify-end items-center w-full mt-6">
|
||||||
|
<Button
|
||||||
|
className="w-full"
|
||||||
|
size="md"
|
||||||
|
type="submit"
|
||||||
|
disabled={actionBtnLoadingState.isLoading}
|
||||||
|
loading={actionBtnLoadingState.isLoading}
|
||||||
|
onClick={handleSignUpButtonClick}
|
||||||
|
>
|
||||||
|
{t("common.sign-up")}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{!systemStatus.host && <p className="w-full mt-4 text-sm font-medium dark:text-gray-500">{t("auth.host-tip")}</p>}
|
||||||
|
<p className="w-full mt-4 text-sm">
|
||||||
|
<span className="dark:text-gray-500">{t("auth.sign-in-tip")}</span>
|
||||||
|
<Link to="/auth" className="cursor-pointer ml-2 text-blue-600 hover:underline">
|
||||||
|
{t("common.sign-in")}
|
||||||
|
</Link>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div className="mt-4 flex flex-row items-center justify-center w-full gap-2">
|
||||||
|
<LocaleSelect value={locale} onChange={handleLocaleSelectChange} />
|
||||||
|
<AppearanceSelect value={appearance} onChange={handleAppearanceSelectChange} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -18,7 +18,7 @@ import { useMemoStore } from "@/store/module";
|
|||||||
import { extractUsernameFromName } from "@/store/v1";
|
import { extractUsernameFromName } from "@/store/v1";
|
||||||
import { useTranslate } from "@/utils/i18n";
|
import { useTranslate } from "@/utils/i18n";
|
||||||
|
|
||||||
const DailyReview = () => {
|
const Timeline = () => {
|
||||||
const t = useTranslate();
|
const t = useTranslate();
|
||||||
const memoStore = useMemoStore();
|
const memoStore = useMemoStore();
|
||||||
const currentUser = useCurrentUser();
|
const currentUser = useCurrentUser();
|
||||||
@ -128,7 +128,7 @@ const DailyReview = () => {
|
|||||||
|
|
||||||
{selectedDateStamp === currentDateStamp && (
|
{selectedDateStamp === currentDateStamp && (
|
||||||
<div className="w-full pl-0 sm:pl-12 sm:mt-4">
|
<div className="w-full pl-0 sm:pl-12 sm:mt-4">
|
||||||
<MemoEditor cacheKey="daily-review-editor" />
|
<MemoEditor cacheKey="timeline-editor" />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
@ -138,4 +138,4 @@ const DailyReview = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default DailyReview;
|
export default Timeline;
|
@ -13,7 +13,7 @@ const Home = lazy(() => import("@/pages/Home"));
|
|||||||
const UserProfile = lazy(() => import("@/pages/UserProfile"));
|
const UserProfile = lazy(() => import("@/pages/UserProfile"));
|
||||||
const MemoDetail = lazy(() => import("@/pages/MemoDetail"));
|
const MemoDetail = lazy(() => import("@/pages/MemoDetail"));
|
||||||
const Archived = lazy(() => import("@/pages/Archived"));
|
const Archived = lazy(() => import("@/pages/Archived"));
|
||||||
const DailyReview = lazy(() => import("@/pages/DailyReview"));
|
const Timeline = lazy(() => import("@/pages/Timeline"));
|
||||||
const Resources = lazy(() => import("@/pages/Resources"));
|
const Resources = lazy(() => import("@/pages/Resources"));
|
||||||
const Inboxes = lazy(() => import("@/pages/Inboxes"));
|
const Inboxes = lazy(() => import("@/pages/Inboxes"));
|
||||||
const Setting = lazy(() => import("@/pages/Setting"));
|
const Setting = lazy(() => import("@/pages/Setting"));
|
||||||
@ -59,10 +59,10 @@ const router = createBrowserRouter([
|
|||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "review",
|
path: "timeline",
|
||||||
element: (
|
element: (
|
||||||
<AuthStatusProvider>
|
<AuthStatusProvider>
|
||||||
<DailyReview />
|
<Timeline />
|
||||||
</AuthStatusProvider>
|
</AuthStatusProvider>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user