feat(i18n): static type on i18n (#2225)

This commit is contained in:
Himself65
2023-05-04 00:35:09 -05:00
committed by GitHub
parent 66c3b09c67
commit 3d43e61087
80 changed files with 585 additions and 444 deletions
+4 -4
View File
@@ -1,5 +1,5 @@
import { Button, displayFlex, styled } from '@affine/component';
import { useTranslation } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import Head from 'next/head';
import Image from 'next/legacy/image';
import { useRouter } from 'next/router';
@@ -24,20 +24,20 @@ export const StyledContainer = styled('div')(() => {
});
export const NotfoundPage = () => {
const { t } = useTranslation();
const t = useAFFiNEI18N();
const router = useRouter();
return (
<StyledContainer data-testid="notFound">
<Image alt="404" src="/imgs/invite-error.svg" width={360} height={270} />
<p>{t('404 - Page Not Found')}</p>
<p>{t['404 - Page Not Found']()}</p>
<Button
shape="round"
onClick={() => {
router.push('/');
}}
>
{t('Back Home')}
{t['Back Home']()}
</Button>
</StyledContainer>
);
+3 -3
View File
@@ -1,5 +1,5 @@
import { DebugLogger } from '@affine/debug';
import { useTranslation } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type { NextPage } from 'next';
import { useRouter } from 'next/router';
import { Suspense, useEffect } from 'react';
@@ -63,9 +63,9 @@ const IndexPageInner = () => {
};
const IndexPage: NextPage = () => {
const { t } = useTranslation();
const t = useAFFiNEI18N();
return (
<Suspense fallback={<PageLoading text={t('Loading All Workspaces')} />}>
<Suspense fallback={<PageLoading text={t['Loading All Workspaces']()} />}>
<IndexPageInner />
</Suspense>
);
@@ -1,6 +1,6 @@
import { Breadcrumbs, displayFlex, styled } from '@affine/component';
import { initPage } from '@affine/env/blocksuite';
import { useTranslation } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { PageIcon } from '@blocksuite/icons';
import { assertExists } from '@blocksuite/store';
import { useBlockSuiteWorkspaceAvatarUrl } from '@toeverything/hooks/use-block-suite-workspace-avatar-url';
@@ -72,7 +72,7 @@ const PublicWorkspaceDetailPageInner = (): ReactElement => {
[blockSuiteWorkspace.id, openPage]
),
});
const { t } = useTranslation();
const t = useAFFiNEI18N();
const [name] = useBlockSuiteWorkspaceName(blockSuiteWorkspace);
const [avatar] = useBlockSuiteWorkspaceAvatarUrl(blockSuiteWorkspace);
const pageTitle = blockSuiteWorkspace.meta.getPageMeta(pageId)?.title;
@@ -101,7 +101,7 @@ const PublicWorkspaceDetailPageInner = (): ReactElement => {
href={`/public-workspace/${blockSuiteWorkspace.id}/${pageId}`}
>
<PageIcon fontSize={24} />
<span>{pageTitle ? pageTitle : t('Untitled')}</span>
<span>{pageTitle ? pageTitle : t['Untitled']()}</span>
</StyledBreadcrumbs>
</Breadcrumbs>
</NavContainer>
@@ -1,6 +1,6 @@
import type { BlockSuiteFeatureFlags } from '@affine/env';
import { config } from '@affine/env';
import { useTranslation } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { rootCurrentPageIdAtom } from '@affine/workspace/atom';
import { WorkspaceFlavour } from '@affine/workspace/type';
import { assertExists } from '@blocksuite/store';
@@ -41,7 +41,7 @@ const WorkspaceDetail: React.FC = () => {
const { openPage } = useRouterHelper(router);
const currentPageId = useAtomValue(rootCurrentPageIdAtom);
const [currentWorkspace] = useCurrentWorkspace();
const { t } = useTranslation();
const t = useAFFiNEI18N();
assertExists(currentWorkspace);
const blockSuiteWorkspace = currentWorkspace.blockSuiteWorkspace;
const { setPageMeta, getPageMeta } = usePageMetaHelper(blockSuiteWorkspace);
@@ -86,7 +86,7 @@ const WorkspaceDetail: React.FC = () => {
}
}, [currentWorkspace]);
if (!currentPageId) {
return <PageLoading text={t('Loading Page')} />;
return <PageLoading text={t['Loading Page']()} />;
}
if (currentWorkspace.flavour === WorkspaceFlavour.AFFINE) {
const PageDetail = WorkspacePlugins[currentWorkspace.flavour].UI.PageDetail;
@@ -112,16 +112,16 @@ const WorkspaceDetailPage: NextPageWithLayout = () => {
const router = useRouter();
const currentWorkspace = useAtomValue(rootCurrentWorkspaceAtom);
const currentPageId = useAtomValue(rootCurrentPageIdAtom);
const { t } = useTranslation();
const t = useAFFiNEI18N();
useRouterAndWorkspaceWithPageIdDefense(router);
const page = useBlockSuiteWorkspacePage(
currentWorkspace.blockSuiteWorkspace,
currentPageId
);
if (!router.isReady) {
return <PageLoading text={t('Router is Loading')} />;
return <PageLoading text={t['Router is Loading']()} />;
} else if (!currentPageId || !page) {
return <PageLoading text={t('Page is Loading')} />;
return <PageLoading text={t['Page is Loading']()} />;
}
return <WorkspaceDetail />;
};
@@ -1,4 +1,4 @@
import { useTranslation } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { WorkspaceFlavour } from '@affine/workspace/type';
import { FolderIcon } from '@blocksuite/icons';
import { assertExists } from '@blocksuite/store';
@@ -23,7 +23,7 @@ const AllPage: NextPageWithLayout = () => {
const router = useRouter();
const { jumpToPage } = useRouterHelper(router);
const [currentWorkspace] = useCurrentWorkspace();
const { t } = useTranslation();
const t = useAFFiNEI18N();
useSyncRouterWithCurrentWorkspaceId(router);
const onClickPage = useCallback(
(pageId: string, newTab?: boolean) => {
@@ -47,7 +47,7 @@ const AllPage: NextPageWithLayout = () => {
return (
<>
<Head>
<title>{t('All Pages')} - AFFiNE</title>
<title>{t['All pages']()} - AFFiNE</title>
</Head>
<WorkspaceTitle
workspace={currentWorkspace}
@@ -56,7 +56,7 @@ const AllPage: NextPageWithLayout = () => {
isPublic={false}
icon={<FolderIcon />}
>
{t('All pages')}
{t['All pages']()}
</WorkspaceTitle>
<PageList
onOpenPage={onClickPage}
@@ -69,7 +69,7 @@ const AllPage: NextPageWithLayout = () => {
return (
<>
<Head>
<title>{t('All Pages')} - AFFiNE</title>
<title>{t['All pages']()} - AFFiNE</title>
</Head>
<WorkspaceTitle
workspace={currentWorkspace}
@@ -78,7 +78,7 @@ const AllPage: NextPageWithLayout = () => {
isPublic={false}
icon={<FolderIcon />}
>
{t('All pages')}
{t['All pages']()}
</WorkspaceTitle>
<PageList
onOpenPage={onClickPage}
@@ -1,4 +1,4 @@
import { useTranslation } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { FavoriteIcon } from '@blocksuite/icons';
import { assertExists } from '@blocksuite/store';
import Head from 'next/head';
@@ -18,7 +18,7 @@ const FavouritePage: NextPageWithLayout = () => {
const router = useRouter();
const { jumpToPage } = useRouterHelper(router);
const [currentWorkspace] = useCurrentWorkspace();
const { t } = useTranslation();
const t = useAFFiNEI18N();
useSyncRouterWithCurrentWorkspaceId(router);
const onClickPage = useCallback(
(pageId: string, newTab?: boolean) => {
@@ -39,7 +39,7 @@ const FavouritePage: NextPageWithLayout = () => {
return (
<>
<Head>
<title>{t('Favorites')} - AFFiNE</title>
<title>{t['Favorites']()} - AFFiNE</title>
</Head>
<WorkspaceTitle
workspace={currentWorkspace}
@@ -48,7 +48,7 @@ const FavouritePage: NextPageWithLayout = () => {
isPublic={false}
icon={<FavoriteIcon />}
>
{t('Favorites')}
{t['Favorites']()}
</WorkspaceTitle>
<PageList
blockSuiteWorkspace={blockSuiteWorkspace}
@@ -1,4 +1,4 @@
import { useTranslation } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { atomWithSyncStorage } from '@affine/jotai';
import { rootWorkspacesMetadataAtom } from '@affine/workspace/atom';
import type { SettingPanel } from '@affine/workspace/type';
@@ -35,7 +35,7 @@ const SettingPage: NextPageWithLayout = () => {
const router = useRouter();
const workspaceIds = useAtomValue(rootWorkspacesMetadataAtom);
const [currentWorkspace] = useCurrentWorkspace();
const { t } = useTranslation();
const t = useAFFiNEI18N();
useSyncRouterWithCurrentWorkspaceId(router);
const [currentTab, setCurrentTab] = useAtom(settingPanelAtom);
useEffect(() => {});
@@ -101,7 +101,7 @@ const SettingPage: NextPageWithLayout = () => {
assertExists(currentWorkspace);
const workspaceId = currentWorkspace.id;
if (workspaceIds.length === 1 && workspaceId === workspaceIds[0].id) {
toast(t('You cannot delete the last workspace'));
toast(t['You cannot delete the last workspace']());
throw new Error('You cannot delete the last workspace');
}
return helper.deleteWorkspace(workspaceId);
@@ -119,7 +119,7 @@ const SettingPage: NextPageWithLayout = () => {
return (
<>
<Head>
<title>{t('Settings')} - AFFiNE</title>
<title>{t['Settings']()} - AFFiNE</title>
</Head>
<WorkspaceTitle
workspace={currentWorkspace}
@@ -128,7 +128,7 @@ const SettingPage: NextPageWithLayout = () => {
isPublic={false}
icon={<SettingsIcon />}
>
{t('Workspace Settings')}
{t['Workspace Settings']()}
</WorkspaceTitle>
<Setting
onTransformWorkspace={onTransformWorkspace}
@@ -145,7 +145,7 @@ const SettingPage: NextPageWithLayout = () => {
return (
<>
<Head>
<title>{t('Settings')} - AFFiNE</title>
<title>{t['Settings']()} - AFFiNE</title>
</Head>
<WorkspaceTitle
workspace={currentWorkspace}
@@ -154,7 +154,7 @@ const SettingPage: NextPageWithLayout = () => {
isPublic={false}
icon={<SettingsIcon />}
>
{t('Workspace Settings')}
{t['Workspace Settings']()}
</WorkspaceTitle>
<Setting
onTransformWorkspace={onTransformWorkspace}
@@ -1,4 +1,4 @@
import { useTranslation } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { ShareIcon } from '@blocksuite/icons';
import { assertExists } from '@blocksuite/store';
import Head from 'next/head';
@@ -18,7 +18,7 @@ const SharedPages: NextPageWithLayout = () => {
const router = useRouter();
const { jumpToPage } = useRouterHelper(router);
const [currentWorkspace] = useCurrentWorkspace();
const { t } = useTranslation();
const t = useAFFiNEI18N();
useSyncRouterWithCurrentWorkspaceId(router);
const onClickPage = useCallback(
(pageId: string, newTab?: boolean) => {
@@ -39,7 +39,7 @@ const SharedPages: NextPageWithLayout = () => {
return (
<>
<Head>
<title>{t('Shared Pages')} - AFFiNE</title>
<title>{t['Shared Pages']()} - AFFiNE</title>
</Head>
<WorkspaceTitle
workspace={currentWorkspace}
@@ -48,7 +48,7 @@ const SharedPages: NextPageWithLayout = () => {
isPublic={false}
icon={<ShareIcon />}
>
{t('Shared Pages')}
{t['Shared Pages']()}
</WorkspaceTitle>
<PageList
blockSuiteWorkspace={blockSuiteWorkspace}
@@ -1,4 +1,4 @@
import { useTranslation } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { DeleteTemporarilyIcon } from '@blocksuite/icons';
import { assertExists } from '@blocksuite/store';
import Head from 'next/head';
@@ -18,7 +18,7 @@ const TrashPage: NextPageWithLayout = () => {
const router = useRouter();
const { jumpToPage } = useRouterHelper(router);
const [currentWorkspace] = useCurrentWorkspace();
const { t } = useTranslation();
const t = useAFFiNEI18N();
useSyncRouterWithCurrentWorkspaceId(router);
const onClickPage = useCallback(
(pageId: string, newTab?: boolean) => {
@@ -42,7 +42,7 @@ const TrashPage: NextPageWithLayout = () => {
return (
<>
<Head>
<title>{t('Trash')} - AFFiNE</title>
<title>{t['Trash']()} - AFFiNE</title>
</Head>
<WorkspaceTitle
workspace={currentWorkspace}
@@ -51,7 +51,7 @@ const TrashPage: NextPageWithLayout = () => {
isPublic={false}
icon={<DeleteTemporarilyIcon />}
>
{t('Trash')}
{t['Trash']()}
</WorkspaceTitle>
<PageList
blockSuiteWorkspace={blockSuiteWorkspace}