diff --git a/packages/client/src/components/seo.tsx b/packages/client/src/components/seo.tsx index 9cbd3e40..07cb0f9d 100644 --- a/packages/client/src/components/seo.tsx +++ b/packages/client/src/components/seo.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import { Helmet } from 'react-helmet'; interface IProps { @@ -9,6 +9,10 @@ interface IProps { const buildTitle = (title) => `${title} - 云策文档`; export const Seo: React.FC = ({ title, needTitleSuffix = true }) => { + useEffect(() => { + window.document.title = needTitleSuffix ? buildTitle(title) : title; + }, [title, needTitleSuffix]); + return ( {needTitleSuffix ? buildTitle(title) : title} diff --git a/packages/client/src/components/wiki/setting/documents/index.tsx b/packages/client/src/components/wiki/setting/documents/index.tsx index 6b9c6c4d..3d51524a 100644 --- a/packages/client/src/components/wiki/setting/documents/index.tsx +++ b/packages/client/src/components/wiki/setting/documents/index.tsx @@ -13,8 +13,8 @@ interface IProps { wikiId: string; } -export const WorkspaceDocs: React.FC = ({ wikiId }) => { - const { data: workspace, loading: workspaceLoading, toggleStatus: toggleWorkspaceStatus } = useWikiDetail(wikiId); +export const Documents: React.FC = ({ wikiId }) => { + const { data: wiki, loading: wikiLoading, toggleStatus: toggleWorkspaceStatus } = useWikiDetail(wikiId); const { data: tocs, loading } = useWikiTocs(wikiId); const documents = flattenTree2Array(tocs).map((d) => { d.label = d.title; @@ -22,7 +22,7 @@ export const WorkspaceDocs: React.FC = ({ wikiId }) => { return d; }); const [nextStatus, setNextStatus] = useState(''); - const isPublic = useMemo(() => workspace && isPublicWiki(workspace.status), [workspace]); + const isPublic = useMemo(() => wiki && isPublicWiki(wiki.status), [wiki]); const [publicDocumentIds, setPublicDocumentIds] = useState([]); // 公开的 const privateDocumentIds = useMemo(() => { return documents.filter((doc) => !publicDocumentIds.includes(doc.id)).map((doc) => doc.id); @@ -69,9 +69,9 @@ export const WorkspaceDocs: React.FC = ({ wikiId }) => { }, []); useEffect(() => { - if (!workspace) return; - setNextStatus(workspace.status); - }, [workspace]); + if (!wiki) return; + setNextStatus(wiki.status); + }, [wiki]); useEffect(() => { if (!documents.length) return; diff --git a/packages/client/src/components/wiki/setting/index.tsx b/packages/client/src/components/wiki/setting/index.tsx index 59a74a41..60fc795c 100644 --- a/packages/client/src/components/wiki/setting/index.tsx +++ b/packages/client/src/components/wiki/setting/index.tsx @@ -1,9 +1,10 @@ import React from 'react'; import { Tabs, TabPane } from '@douyinfe/semi-ui'; +import { Seo } from 'components/seo'; import { useWikiDetail } from 'data/wiki'; import { Base } from './base'; import { Users } from './users'; -import { WorkspaceDocs } from './documents'; +import { Documents } from './documents'; import { More } from './more'; interface IProps { @@ -12,23 +13,33 @@ interface IProps { onNavigate: (arg: string) => void; } +const TitleMap = { + base: '基础信息', + users: '成员管理', + docs: '隐私管理', + more: '更多', +}; + export const WikiSetting: React.FC = ({ wikiId, tab, onNavigate }) => { - const { data, loading, error, update } = useWikiDetail(wikiId); + const { data, update } = useWikiDetail(wikiId); return ( - - - - - - - - - - - - - - + <> + + + + + + + + + + + + + + + + ); }; diff --git a/packages/client/src/components/wiki/tocs/index.tsx b/packages/client/src/components/wiki/tocs/index.tsx index 6318a8dd..40e3000a 100644 --- a/packages/client/src/components/wiki/tocs/index.tsx +++ b/packages/client/src/components/wiki/tocs/index.tsx @@ -4,8 +4,6 @@ import { Avatar, Button, Typography, Skeleton, Tooltip } from '@douyinfe/semi-ui import { IconPlus } from '@douyinfe/semi-icons'; import { isPublicWiki } from '@think/domains'; import { useWikiDetail, useWikiTocs } from 'data/wiki'; -import { useToggle } from 'hooks/use-toggle'; -import { Seo } from 'components/seo'; import { findParents } from 'components/wiki/tocs/utils'; import { IconDocument, IconSetting, IconOverview, IconGlobe } from 'components/icons'; import { DataRender } from 'components/data-render'; @@ -19,20 +17,19 @@ interface IProps { documentId?: string; docAsLink?: string; getDocLink?: (arg: string) => string; - pageTitle: string; + // pageTitle: string; } const { Text } = Typography; export const WikiTocs: React.FC = ({ - pageTitle, + // pageTitle, wikiId, documentId = null, docAsLink = '/wiki/[wikiId]/document/[documentId]', getDocLink = (documentId) => `/wiki/${wikiId}/document/${documentId}`, }) => { const { pathname } = useRouter(); - const [visible, toggleVisible] = useToggle(false); const { data: wiki, loading: wikiLoading, error: wikiError } = useWikiDetail(wikiId); const { data: tocs, loading: tocsLoading, error: tocsError, refresh } = useWikiTocs(wikiId); const [parentIds, setParentIds] = useState>([]); @@ -74,28 +71,25 @@ export const WikiTocs: React.FC = ({ } error={wikiError} normalContent={() => ( - <> - - - {wiki.name.charAt(0)} - - } - text={{wiki.name}} - hoverable={false} - /> - + + {wiki.name.charAt(0)} + + } + text={{wiki.name}} + hoverable={false} + /> )} /> diff --git a/packages/client/src/pages/wiki/[wikiId]/documents/index.tsx b/packages/client/src/pages/wiki/[wikiId]/documents/index.tsx index d8e52edb..bcac371a 100644 --- a/packages/client/src/pages/wiki/[wikiId]/documents/index.tsx +++ b/packages/client/src/pages/wiki/[wikiId]/documents/index.tsx @@ -1,16 +1,17 @@ import { NextPage } from 'next'; import Router, { useRouter } from 'next/router'; import React, { useCallback } from 'react'; -import { Typography, List, Tabs, TabPane, Tree } from '@douyinfe/semi-ui'; +import { Typography, List, Tabs, TabPane } from '@douyinfe/semi-ui'; import { CreateDocumentIllustration } from 'illustrations/create-document'; import { DoubleColumnLayout } from 'layouts/double-column'; +import { Seo } from 'components/seo'; import { DataRender } from 'components/data-render'; import { WikiTocs } from 'components/wiki/tocs'; import { WikiTocsManager } from 'components/wiki/tocs/manager'; -import { useWikiDocs } from 'data/wiki'; import { DocumentCardPlaceholder, DocumentCard } from 'components/document/card'; import { Empty } from 'components/empty'; import { DocumentCreator } from 'components/document-creator'; +import { useWikiDocs } from 'data/wiki'; interface IProps { wikiId: string; @@ -79,9 +80,10 @@ const Page: NextPage = ({ wikiId }) => { return ( } + leftNode={} rightNode={ <> + 文档管理 diff --git a/packages/client/src/pages/wiki/[wikiId]/setting/index.tsx b/packages/client/src/pages/wiki/[wikiId]/setting/index.tsx index 2cfd4642..d014be6a 100644 --- a/packages/client/src/pages/wiki/[wikiId]/setting/index.tsx +++ b/packages/client/src/pages/wiki/[wikiId]/setting/index.tsx @@ -26,9 +26,9 @@ const Page: NextPage = ({ wikiId }) => { return ( } + leftNode={} rightNode={ navigate(tab)()} />} - > + /> ); };