diff --git a/packages/client/src/components/wiki/documents-share/index.module.scss b/packages/client/src/components/wiki/documents-share/index.module.scss index 00438cd6..23ce30f6 100644 --- a/packages/client/src/components/wiki/documents-share/index.module.scss +++ b/packages/client/src/components/wiki/documents-share/index.module.scss @@ -1,13 +1,6 @@ /* stylelint-disable */ -.statusWrap { - padding: 10px 12px; - margin-top: 16px; - border: 1px solid var(--semi-color-border); - border-radius: 4px; - - .title { - margin-bottom: 16px; - } +.wrap { + margin-top: 5px; } .selectedItem, diff --git a/packages/client/src/components/wiki/documents-share/index.tsx b/packages/client/src/components/wiki/documents-share/index.tsx index 3e1edd08..fc991cf7 100644 --- a/packages/client/src/components/wiki/documents-share/index.tsx +++ b/packages/client/src/components/wiki/documents-share/index.tsx @@ -1,22 +1,21 @@ import { IconClose } from '@douyinfe/semi-icons'; -import { Banner, Button, Checkbox, Radio, RadioGroup, Toast, Transfer, Typography } from '@douyinfe/semi-ui'; -import { isPublicDocument, isPublicWiki, WIKI_STATUS_LIST } from '@think/domains'; +import { Banner, Button, Checkbox, Toast, Transfer, Typography } from '@douyinfe/semi-ui'; +import { isPublicDocument } from '@think/domains'; import { flattenTree2Array } from 'components/wiki/tocs/utils'; import { useWikiDetail, useWikiTocs } from 'data/wiki'; -import { buildUrl } from 'helpers/url'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import styles from './index.module.scss'; -const { Text, Title } = Typography; +const { Title, Text } = Typography; interface IProps { wikiId: string; } export const WikiDocumentsShare: React.FC = ({ wikiId }) => { - const { data: wiki, loading: wikiLoading, toggleStatus: toggleWorkspaceStatus } = useWikiDetail(wikiId); - const { data: tocs, loading } = useWikiTocs(wikiId); + const { toggleStatus: toggleWorkspaceStatus } = useWikiDetail(wikiId); + const { data: tocs } = useWikiTocs(wikiId); const documents = useMemo( () => flattenTree2Array(tocs).map((d) => { @@ -26,15 +25,13 @@ export const WikiDocumentsShare: React.FC = ({ wikiId }) => { }), [tocs] ); - const [nextStatus, setNextStatus] = useState(''); - 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); }, [documents, publicDocumentIds]); const submit = () => { - const data = { nextStatus, publicDocumentIds, privateDocumentIds }; + const data = { publicDocumentIds, privateDocumentIds }; toggleWorkspaceStatus(data).then((res) => { const ret = res as unknown as any & { documentOperateMessage?: string; @@ -72,11 +69,6 @@ export const WikiDocumentsShare: React.FC = ({ wikiId }) => { return item.title.includes(sugInput); }, []); - useEffect(() => { - if (!wiki) return; - setNextStatus(wiki.status); - }, [wiki]); - useEffect(() => { if (!documents.length) return; const activeIds = documents.filter((doc) => isPublicDocument(doc.status)).map((doc) => doc.id); @@ -85,48 +77,14 @@ export const WikiDocumentsShare: React.FC = ({ wikiId }) => { return (
- {isPublic && ( - 当前知识库已经公开
} - description={ - isPublic && ( -
- 您可以点击该链接进行查看: - - 知识库 - -
- ) - } - /> - )} -
- - 是否公开知识库? - - setNextStatus(e.target.value)}> - {WIKI_STATUS_LIST.map((status) => { - return ( - - {status.label} - - ); - })} - -
+ 隐私管理} + description={在下方进行选择以公开(或取消)文档} + />
= ({ wikiId, tab, onNavigate }) => { + + + diff --git a/packages/client/src/components/wiki/setting/privacy/index.module.scss b/packages/client/src/components/wiki/setting/privacy/index.module.scss new file mode 100644 index 00000000..8249c635 --- /dev/null +++ b/packages/client/src/components/wiki/setting/privacy/index.module.scss @@ -0,0 +1,13 @@ +/* stylelint-disable */ +.wrap { + .statusWrap { + padding: 10px 12px; + margin-top: 16px; + border: 1px solid var(--semi-color-border); + border-radius: 4px; + + .title { + margin-bottom: 16px; + } + } +} diff --git a/packages/client/src/components/wiki/setting/privacy/index.tsx b/packages/client/src/components/wiki/setting/privacy/index.tsx new file mode 100644 index 00000000..d9822bfe --- /dev/null +++ b/packages/client/src/components/wiki/setting/privacy/index.tsx @@ -0,0 +1,86 @@ +import { IconClose } from '@douyinfe/semi-icons'; +import { Banner, Button, Checkbox, Radio, RadioGroup, Toast, Transfer, Typography } from '@douyinfe/semi-ui'; +import { isPublicDocument, isPublicWiki, WIKI_STATUS_LIST } from '@think/domains'; +import { flattenTree2Array } from 'components/wiki/tocs/utils'; +import { useWikiDetail, useWikiTocs } from 'data/wiki'; +import { buildUrl } from 'helpers/url'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; + +import styles from './index.module.scss'; + +const { Text, Title } = Typography; + +interface IProps { + wikiId: string; +} + +export const Privacy: React.FC = ({ wikiId }) => { + const { data: wiki, toggleStatus: toggleWorkspaceStatus } = useWikiDetail(wikiId); + const [nextStatus, setNextStatus] = useState(''); + const isPublic = useMemo(() => wiki && isPublicWiki(wiki.status), [wiki]); + + const submit = () => { + const data = { nextStatus }; + toggleWorkspaceStatus(data).then((res) => { + const ret = res as unknown as any & { + documentOperateMessage?: string; + }; + Toast.success(ret.documentOperateMessage || '操作成功'); + }); + }; + + useEffect(() => { + if (!wiki) return; + setNextStatus(wiki.status); + }, [wiki]); + + return ( +
+ {isPublic && ( + 当前知识库已经公开
} + description={ + isPublic && ( +
+ 您可以点击该链接进行查看: + + 知识库 + +
+ ) + } + /> + )} +
+ + 是否公开知识库? + + setNextStatus(e.target.value)}> + {WIKI_STATUS_LIST.map((status) => { + return ( + + {status.label} + + ); + })} + +
+ +
+ ); +};