diff --git a/packages/client/src/components/search/index.tsx b/packages/client/src/components/search/index.tsx index cf2d7db0..a49c3005 100644 --- a/packages/client/src/components/search/index.tsx +++ b/packages/client/src/components/search/index.tsx @@ -66,7 +66,7 @@ const List: React.FC<{ data: IDocument[] }> = ({ data }) => { export const Search = () => { const [visible, toggleVisible] = useToggle(false); - const { data: recentDocs } = useRecentDocuments(); + // const { data: recentDocs } = useRecentDocuments(); const [searchApi, loading] = useAsyncLoading(searchDocument, 10); const [keyword, setKeyword] = useState(''); const [error, setError] = useState(null); @@ -143,10 +143,10 @@ export const Search = () => { error={error} normalContent={() => } /> -
+ {/*
最近访问的文档 -
+
*/} diff --git a/packages/client/src/data/collector.tsx b/packages/client/src/data/collector.tsx index 630fd295..33c615f3 100644 --- a/packages/client/src/data/collector.tsx +++ b/packages/client/src/data/collector.tsx @@ -30,7 +30,7 @@ export const getCollectedWikis = (cookie = null): Promise = */ export const useCollectedWikis = () => { const { data, error, isLoading, refetch } = useQuery(CollectorApiDefinition.wikis.client(), getCollectedWikis, { - staleTime: 0, + staleTime: 500, }); useEffect(() => { @@ -117,7 +117,7 @@ export const useCollectedDocuments = () => { const { data, error, isLoading, refetch } = useQuery( CollectorApiDefinition.documents.client(), getCollectedDocuments, - { staleTime: 0 } + { staleTime: 500 } ); useEffect(() => { event.on(TOGGLE_COLLECT_DOUCMENT, refetch); diff --git a/packages/client/src/data/document.tsx b/packages/client/src/data/document.tsx index 3ee7ad69..eec6e878 100644 --- a/packages/client/src/data/document.tsx +++ b/packages/client/src/data/document.tsx @@ -30,7 +30,7 @@ export const useRecentDocuments = () => { const { data, error, isLoading, refetch } = useQuery( DocumentApiDefinition.recent.client(), getRecentVisitedDocuments, - { staleTime: 3000 } + { refetchOnWindowFocus: false, enabled: false } ); return { data, error, loading: isLoading, refresh: refetch }; }; diff --git a/packages/client/src/data/message.ts b/packages/client/src/data/message.ts index fc177bb9..173e80c8 100644 --- a/packages/client/src/data/message.ts +++ b/packages/client/src/data/message.ts @@ -61,7 +61,7 @@ export const useUnreadMessages = () => { const { data, error, isLoading, refetch } = useQuery( [MessageApiDefinition.getUnread.client(), page], () => getMessagesApi('getUnread')(page), - { keepPreviousData: true, refetchInterval: 4000 } + { keepPreviousData: true, refetchInterval: 5000 } ); const readMessage = useCallback( diff --git a/packages/client/src/layouts/router-header/recent.tsx b/packages/client/src/layouts/router-header/recent.tsx index a28fef71..233a0881 100644 --- a/packages/client/src/layouts/router-header/recent.tsx +++ b/packages/client/src/layouts/router-header/recent.tsx @@ -6,16 +6,23 @@ import { Empty } from 'components/empty'; import { IconDocumentFill } from 'components/icons/IconDocumentFill'; import { LocaleTime } from 'components/locale-time'; import { useRecentDocuments } from 'data/document'; +import { useToggle } from 'hooks/use-toggle'; import Link from 'next/link'; -import React from 'react'; +import React, { useEffect } from 'react'; import styles from './index.module.scss'; import { Placeholder } from './placeholder'; const { Text } = Typography; -export const RecentDocs = () => { - const { data: recentDocs, loading, error } = useRecentDocuments(); +export const RecentDocs = ({ visible }) => { + const { data: recentDocs, loading, error, refresh } = useRecentDocuments(); + + useEffect(() => { + if (visible) { + refresh(); + } + }, [visible, refresh]); return ( @@ -27,7 +34,7 @@ export const RecentDocs = () => { normalContent={() => { return (
- {recentDocs.length ? ( + {recentDocs && recentDocs.length ? ( recentDocs.map((doc) => { return (
@@ -85,7 +92,7 @@ export const RecentModal = ({ visible, toggleVisible }) => { style={{ maxWidth: '96vw' }} >
- +
); @@ -96,14 +103,18 @@ export const RecentMobileTrigger = ({ toggleVisible }) => { }; export const Recent = () => { + const [visible, toggleVisible] = useToggle(false); + return ( - +
} > diff --git a/packages/client/src/pages/index.tsx b/packages/client/src/pages/index.tsx index 1eac9798..7a007c0c 100644 --- a/packages/client/src/pages/index.tsx +++ b/packages/client/src/pages/index.tsx @@ -13,7 +13,7 @@ import { useToggle } from 'hooks/use-toggle'; import { SingleColumnLayout } from 'layouts/single-column'; import type { NextPage } from 'next'; import Link from 'next/link'; -import React, { useMemo } from 'react'; +import React, { useEffect, useMemo } from 'react'; import { serverPrefetcher } from 'services/server-prefetcher'; import styles from './index.module.scss'; @@ -78,19 +78,17 @@ const RecentDocs = () => { key="operate" width={80} render={(_, document) => ( - + )} />, ], [refresh] ); + useEffect(() => { + refresh(); + }, [refresh]); + return ( <>