Feat/land page (#391)

* feat: update landing page

* feat: update landing page

* fix: react warning

* feat(route): rename variables

* feat(route): better refresh

* fix: update logo and i18n

* feat(code): remove unused comment

* refactor(workspace): rename workspaceId

* refactor(page): rename pageId

* feat(edit): more robust editing experience

* fix: landing page mobile

* fix: landing page mobile

Co-authored-by: tzhangchi <terry.zhangchi@outlook.com>
Co-authored-by: DarkSky <25152247+darkskygit@users.noreply.github.com>
This commit is contained in:
zuomeng wang
2022-09-09 10:56:10 +08:00
committed by GitHub
parent bd2668335c
commit b35c9b2c14
35 changed files with 374 additions and 145 deletions
@@ -16,7 +16,7 @@ export const Switcher = () => {
if (targetViewMode === pageViewMode) {
return;
}
const workspaceId = params['workspace_id'];
const workspaceId = params['workspaceId'];
/**
* There are two possible modes:
* Page mode: /{workspaceId}/{pageId}
+3 -3
View File
@@ -46,7 +46,7 @@ export const AffineHeader = () => {
useUserAndSpaces();
const showCenterTab =
(params['workspace_id'] || pathname.includes('/space/')) && params['*'];
(params['workspaceId'] || pathname.includes('/space/')) && params['*'];
if (hideAffineHeader(pathname)) {
return null;
@@ -82,7 +82,7 @@ export const AffineHeader = () => {
isEdgelessView
? navigate(
`/${
params['workspace_id'] ||
params['workspaceId'] ||
'space'
}/${params['*'].slice(0, -11)}`
)
@@ -108,7 +108,7 @@ export const AffineHeader = () => {
? null
: navigate(
`/${
params['workspace_id'] ||
params['workspaceId'] ||
'space'
}/${params['*']}` + '/edgeless'
)
@@ -50,7 +50,7 @@ const MESSAGES = {
function PageSettingPortal() {
const [alertOpen, setAlertOpen] = useState(false);
const { workspace_id } = useParams();
const { workspaceId } = useParams();
const [pageBlock, setPageBlock] = useState<PageBlock>();
const params = useParams();
@@ -64,7 +64,7 @@ function PageSettingPortal() {
const fetchPageBlock = useCallback(async () => {
const dbPageBlock = await services.api.editorBlock.getBlock(
workspace_id,
workspaceId,
pageId
);
if (!dbPageBlock) return;
@@ -78,11 +78,11 @@ function PageSettingPortal() {
//@ts-ignore
text.value[0].text,
});
}, [workspace_id, pageId]);
}, [workspaceId, pageId]);
useEffect(() => {
fetchPageBlock();
}, [workspace_id, pageId, fetchPageBlock]);
}, [workspaceId, pageId, fetchPageBlock]);
const redirectToPage = (newWorkspaceId: string, newPageId: string) => {
navigate('/' + newWorkspaceId + '/' + newPageId);
};
@@ -90,23 +90,23 @@ function PageSettingPortal() {
const handleDuplicatePage = async () => {
//create page
const newPage = await services.api.editorBlock.create({
workspace: workspace_id,
workspace: workspaceId,
type: 'page' as const,
});
//add page to tree
await services.api.pageTree.addNextPageToWorkspace(
workspace_id,
workspaceId,
pageId,
newPage.id
);
//copy source page to new page
await services.api.editorBlock.copyPage(
workspace_id,
workspaceId,
pageId,
newPage.id
);
redirectToPage(workspace_id, newPage.id);
redirectToPage(workspaceId, newPage.id);
};
const handleCopy = () => {
@@ -128,7 +128,7 @@ function PageSettingPortal() {
.inspector()
.load()
.then(() => {
window.location.href = `/${workspace_id}/`;
window.location.href = `/${workspaceId}/`;
});
};
@@ -145,7 +145,7 @@ function PageSettingPortal() {
fullWidthChecked: checked,
},
id: pageId,
workspace: workspace_id,
workspace: workspaceId,
});
};
+7 -7
View File
@@ -12,7 +12,7 @@ import { useUserAndSpaces } from '@toeverything/datasource/state';
export const CurrentPageTitle = () => {
const { user } = useUserAndSpaces();
const params = useParams();
const { workspace_id } = params;
const { workspaceId } = params;
const [pageId, setPageId] = useState<string>('');
const [pageTitle, setPageTitle] = useState<string | undefined>();
/* card.7 */
@@ -25,9 +25,9 @@ export const CurrentPageTitle = () => {
}, [params]);
const fetchPageTitle = useCallback(async () => {
if (!workspace_id || !pageId) return;
if (!workspaceId || !pageId) return;
const [pageEditorBlock] = await services.api.editorBlock.get({
workspace: workspace_id,
workspace: workspaceId,
ids: [pageId],
});
/* card.7 */
@@ -39,21 +39,21 @@ export const CurrentPageTitle = () => {
?.map(v => v.text)
.join('') ?? 'Untitled'
);
}, [pageId, workspace_id]);
}, [pageId, workspaceId]);
useEffect(() => {
if (user) fetchPageTitle();
}, [fetchPageTitle, user]);
useEffect(() => {
if (!user || !workspace_id || !pageId || pageTitle === undefined)
if (!user || !workspaceId || !pageId || pageTitle === undefined)
return () => {};
let unobserve: () => void;
const auto_update_title = async () => {
// console.log(';; title registration auto update');
unobserve = await services.api.editorBlock.observe(
{ workspace: workspace_id, id: pageId },
{ workspace: workspaceId, id: pageId },
businessBlock => {
// console.log(';; auto_update_title', businessBlock);
fetchPageTitle();
@@ -65,7 +65,7 @@ export const CurrentPageTitle = () => {
return () => {
// unobserve?.();
};
}, [fetchPageTitle, pageId, pageTitle, user, workspace_id]);
}, [fetchPageTitle, pageId, pageTitle, user, workspaceId]);
useEffect(() => {
document.title = pageTitle || '';