refactor(workspace): rename workspaceId

This commit is contained in:
tzhangchi
2022-09-08 19:13:03 +08:00
parent 61c266057a
commit 9442c023e5
18 changed files with 67 additions and 73 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ export function LigoVirgoRoutes() {
/>
<Route path="/ui" element={<UIPage />} />
<Route
path="/:workspace_id/*"
path="/:workspaceId/*"
element={
<RoutePrivate>
<WorkspaceContainer />
+6 -6
View File
@@ -5,22 +5,22 @@ import { useNavigate, useParams } from 'react-router-dom';
export function WorkspaceHome() {
const navigate = useNavigate();
const { workspace_id } = useParams();
const { workspaceId } = useParams();
const { user } = useUserAndSpaces();
useEffect(() => {
const navigateToUserInitialPage = async () => {
const [recentPages, userInitialPageId] = await Promise.all([
services.api.userConfig.getRecentPages(workspace_id, user.id),
services.api.userConfig.getRecentPages(workspaceId, user.id),
services.api.userConfig.getUserInitialPage(
workspace_id,
workspaceId,
user.id
),
]);
// if recent pages if null, run initialize task
if (recentPages.length === 0) {
await services.api.editorBlock.copyTemplateToPage(
workspace_id,
workspaceId,
userInitialPageId,
TemplateFactory.generatePageTemplateByGroupKeys({
name: '👋 Get Started with AFFiNE',
@@ -33,11 +33,11 @@ export function WorkspaceHome() {
);
}
if (userInitialPageId) {
navigate(`/${workspace_id}/${userInitialPageId}`);
navigate(`/${workspaceId}/${userInitialPageId}`);
}
};
navigateToUserInitialPage();
}, [navigate, user.id, workspace_id]);
}, [navigate, user.id, workspaceId]);
return null;
}
@@ -7,14 +7,8 @@ import { WorkspaceHome } from './Home';
import Pages from './pages';
export function WorkspaceContainer() {
const { workspace_id } = useParams();
const { workspaceId } = useParams();
const { user, currentSpaceId } = useUserAndSpaces();
if (
user &&
![currentSpaceId, 'affine2vin277tcmafwq'].includes(workspace_id)
) {
// return <Navigate to={`/${currentSpaceId}`} replace={true} />;
}
return (
<Routes>
@@ -22,11 +16,11 @@ export function WorkspaceContainer() {
<Route path="/pages" element={<Pages />} />
<Route
path="/:page_id/edgeless"
element={<Edgeless workspace={workspace_id} />}
element={<Edgeless workspace={workspaceId} />}
/>
<Route
path="/:page_id"
element={<Page workspace={workspace_id} />}
element={<Page workspace={workspaceId} />}
/>
<Route path="/" element={<WorkspaceHome />} />
</Route>
@@ -38,7 +38,7 @@ export type CollapsiblePageTreeProps = {
export function CollapsiblePageTree(props: CollapsiblePageTreeProps) {
const { className, style, children, title, initialOpen = true } = props;
const navigate = useNavigate();
const { workspace_id, page_id } = useParams();
const { workspaceId, page_id } = useParams();
const { handleAddPage } = usePageTree();
const { addPageToday } = useCalendarHeatmap();
@@ -48,16 +48,16 @@ export function CollapsiblePageTree(props: CollapsiblePageTreeProps) {
const create_page = useCallback(async () => {
if (page_id) {
const newPage = await services.api.editorBlock.create({
workspace: workspace_id,
workspace: workspaceId,
type: 'page' as const,
});
await handleAddPage(newPage.id);
addPageToday();
navigate(`/${workspace_id}/${newPage.id}`);
navigate(`/${workspaceId}/${newPage.id}`);
}
}, [addPageToday, handleAddPage, navigate, page_id, workspace_id]);
}, [addPageToday, handleAddPage, navigate, page_id, workspaceId]);
const [newPageBtnVisible, setNewPageBtnVisible] = useState<boolean>(false);
@@ -2,8 +2,8 @@ import { useNavigate, useParams } from 'react-router-dom';
import { Descendant } from 'slate';
// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries
import { BlockSearchItem } from '@toeverything/datasource/jwt';
import { styled } from '@toeverything/components/ui';
import { BlockSearchItem } from '@toeverything/datasource/jwt';
import { BlockPreview } from '../../block-preview';
@@ -26,14 +26,14 @@ type InlineRefLinkProps = {
};
export const InlineRefLink = ({ block, pageId }: InlineRefLinkProps) => {
const { workspace_id } = useParams();
const { workspaceId } = useParams();
const navigate = useNavigate();
if (block) {
return (
<BlockPreviewContainer
block={block}
onClick={() => navigate(`/${workspace_id}/${pageId}`)}
onClick={() => navigate(`/${workspaceId}/${pageId}`)}
/>
);
}
@@ -16,7 +16,7 @@ import {
} from '../../components/text-manage';
export const PageView = ({ block, editor }: CreateView) => {
const { workspace_id } = useParams();
const { workspaceId } = useParams();
const textRef = useRef<ExtendedTextUtils>(null);
const [backLinks, setBackLinks] =
useState<Awaited<ReturnType<typeof editor.search>>>();
@@ -100,7 +100,7 @@ export const PageView = ({ block, editor }: CreateView) => {
className={style9(styles.content)}
suppressContentEditableWarning
> */}
<BackLink blocks={backLinks} workspaceId={workspace_id} />
<BackLink blocks={backLinks} workspaceId={workspaceId} />
{/*{block.childrenIds.map(childId => (*/}
{/* <RenderBlock key={childId} blockId={childId} />*/}
{/*))}*/}
@@ -1,6 +1,6 @@
import { useState, useCallback } from 'react';
import { useParams } from 'react-router-dom';
import { services } from '@toeverything/datasource/db-service';
import { useCallback, useState } from 'react';
import { useParams } from 'react-router-dom';
import { WithEditorSelectionType } from '../menu/inline-menu/types';
export const useAddComment = ({
@@ -8,7 +8,7 @@ export const useAddComment = ({
selectionInfo,
setShow,
}: WithEditorSelectionType) => {
const { workspace_id: workspaceId, page_id: pageId } = useParams();
const { workspaceId, page_id: pageId } = useParams();
const [currentComment, setCurrentComment] = useState('');
const createComment = useCallback(async (): Promise<{
@@ -47,7 +47,7 @@ type SearchProps = {
};
export const Search = (props: SearchProps) => {
const { workspace_id: workspaceId } = useParams();
const { workspaceId } = useParams();
const navigate = useNavigate();
const [open, setOpen] = useState(false);
@@ -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 || '';
@@ -9,7 +9,7 @@ import { useParams } from 'react-router-dom';
import type { CommentInfo } from './type';
export const useComments = () => {
const { workspace_id: workspaceId, page_id: pageId } = useParams();
const { workspaceId, page_id: pageId } = useParams();
const [comments, setComments] = useState<CommentInfo[]>([]);
const [observeIds, setObserveIds] = useState<string[]>([]);
@@ -71,7 +71,7 @@ export const useComments = () => {
};
export const useActiveComment = () => {
const { workspace_id: workspaceId, page_id: pageId } = useParams();
const { workspaceId, page_id: pageId } = useParams();
const { currentEditors } = useCurrentEditors();
const editor = useMemo(() => {
return currentEditors[pageId] as Virgo;
@@ -7,7 +7,7 @@ interface UseWorkspaceAndPageIdReturn {
export const useWorkspaceAndPageId = (): UseWorkspaceAndPageIdReturn => {
const params = useParams();
const workspaceId = params['workspace_id'];
const workspaceId = params['workspaceId'];
const pageId = params['*'].split('/')[0];
return {
workspaceId,
@@ -57,7 +57,7 @@ export const TreeItem = forwardRef<HTMLDivElement, TreeItemProps>(
},
ref
) => {
const { workspace_id, page_id } = useParams();
const { workspaceId, page_id } = useParams();
const BooleanPageTreeItemMoreActions = useFlag(
'BooleanPageTreeItemMoreActions',
true
@@ -89,12 +89,12 @@ export const TreeItem = forwardRef<HTMLDivElement, TreeItemProps>(
)}
<TreeItemContent {...handleProps}>
<TextLink to={`/${workspace_id}/${pageId}`}>
<TextLink to={`/${workspaceId}/${pageId}`}>
{value}
</TextLink>
{BooleanPageTreeItemMoreActions && (
<MoreActions
workspaceId={workspace_id}
workspaceId={workspaceId}
pageId={pageId}
onRemove={onRemove}
/>
@@ -19,7 +19,7 @@ import {
const page_tree_atom = atom<TreeItems | undefined>([]);
export const usePageTree = ({ indentationWidth = 16 }: DndTreeProps = {}) => {
const { workspace_id, page_id } = useParams();
const { workspaceId, page_id } = useParams();
const navigate = useNavigate();
const [items] = useAtom(page_tree_atom);
const [activeId, setActiveId] = useState<string | undefined>(undefined);
@@ -56,11 +56,11 @@ export const usePageTree = ({ indentationWidth = 16 }: DndTreeProps = {}) => {
const savePageTreeData = useCallback(
async (treeData?: TreeItem[]) => {
await services.api.pageTree.setPageTree<TreeItem>(
workspace_id,
workspaceId,
treeData || []
);
},
[workspace_id]
[workspaceId]
);
const resetState = useCallback(() => {
@@ -129,14 +129,14 @@ export const usePageTree = ({ indentationWidth = 16 }: DndTreeProps = {}) => {
const handleRemove = useCallback(
async (id: string) => {
await savePageTreeData(removeItem(items, id));
await services.api.userConfig.removePage(workspace_id, id);
await services.api.userConfig.removePage(workspaceId, id);
//remove page from jwst
await services.api.pageTree.removePage(workspace_id, id);
await services.api.pageTree.removePage(workspaceId, id);
if (id === page_id) {
navigate(`/${workspace_id}`);
navigate(`/${workspaceId}`);
}
},
[items, savePageTreeData, workspace_id]
[items, savePageTreeData, workspaceId]
);
const handleAddPage = useCallback(
@@ -177,14 +177,14 @@ export const usePageTree = ({ indentationWidth = 16 }: DndTreeProps = {}) => {
export const useDndTreeAutoUpdate = () => {
const [, set_items] = useAtom(page_tree_atom);
const { workspace_id, page_id } = useParams();
const { workspaceId, page_id } = useParams();
const fetch_page_tree_data = useCallback(async () => {
const pages = await services.api.pageTree.getPageTree<TreeItem>(
workspace_id
workspaceId
);
set_items(pages);
}, [set_items, workspace_id]);
}, [set_items, workspaceId]);
useEffect(() => {
fetch_page_tree_data();
@@ -195,7 +195,7 @@ export const useDndTreeAutoUpdate = () => {
let unobserve: () => void;
const auto_update_page_tree = async () => {
unobserve = await services.api.pageTree.observe(
{ workspace: workspace_id, page: page_id },
{ workspace: workspaceId, page: page_id },
() => {
fetch_page_tree_data();
}
@@ -206,5 +206,5 @@ export const useDndTreeAutoUpdate = () => {
return () => {
unobserve?.();
};
}, [fetch_page_tree_data, page_id, workspace_id]);
}, [fetch_page_tree_data, page_id, workspaceId]);
};
@@ -265,18 +265,18 @@ export class EditorBlock extends ServiceBaseClass {
}
}
async copyPage(
workspace_id: string,
workspaceId: string,
source_page_id: string,
new_page_id: string
): Promise<boolean> {
const db = await this.database.getDatabase(workspace_id);
const db = await this.database.getDatabase(workspaceId);
const source_page = await this.getBlock(
workspace_id,
workspaceId,
source_page_id as 'block'
);
const new_page = await this.getBlock(
workspace_id,
workspaceId,
new_page_id as 'block'
);
if (!source_page) {
+1 -1
View File
@@ -9,7 +9,7 @@ const _currentEditors = atom<EditorsMap>({} as EditorsMap);
/** hook for using editors outside page */
export const useCurrentEditors = () => {
const { workspace_id: workspaceId, page_id: pageId } = useParams();
const { workspaceId, page_id: pageId } = useParams();
const { pathname } = useLocation();
const [currentEditors, setCurrentEditors] = useAtom(_currentEditors);