|
|
@@ -6,6 +6,7 @@ import type { RemoteRevisionData } from '~/states/page';
|
|
|
import { useGlobalSocket } from '~/states/socket-io';
|
|
|
import { useEditorMode, EditorMode } from '~/states/ui/editor';
|
|
|
import { usePageStatusAlertActions } from '~/states/ui/modal/page-status-alert';
|
|
|
+import { useSWRxPageInfo } from '~/stores/page';
|
|
|
|
|
|
|
|
|
export const usePageUpdatedEffect = (): void => {
|
|
|
@@ -18,6 +19,8 @@ export const usePageUpdatedEffect = (): void => {
|
|
|
const { fetchCurrentPage } = useFetchCurrentPage();
|
|
|
const { open: openPageStatusAlert, close: closePageStatusAlert } = usePageStatusAlertActions();
|
|
|
|
|
|
+ const { mutate: mutatePageInfo } = useSWRxPageInfo(currentPage?._id);
|
|
|
+
|
|
|
const remotePageDataUpdateHandler = useCallback((data) => {
|
|
|
// Set remote page data
|
|
|
const { s2cMessagePageUpdated } = data;
|
|
|
@@ -32,6 +35,9 @@ export const usePageUpdatedEffect = (): void => {
|
|
|
if (currentPage?._id != null && currentPage._id === s2cMessagePageUpdated.pageId) {
|
|
|
setRemoteLatestPageData(remoteData);
|
|
|
|
|
|
+ // Update PageInfo cache
|
|
|
+ mutatePageInfo();
|
|
|
+
|
|
|
// Open PageStatusAlert
|
|
|
const currentRevisionId = currentPage?.revision?._id;
|
|
|
const remoteRevisionId = s2cMessagePageUpdated.revisionId;
|
|
|
@@ -47,7 +53,8 @@ export const usePageUpdatedEffect = (): void => {
|
|
|
closePageStatusAlert();
|
|
|
}
|
|
|
}
|
|
|
- }, [currentPage?._id, currentPage?.revision?._id, editorMode, fetchCurrentPage, openPageStatusAlert, closePageStatusAlert, setRemoteLatestPageData]);
|
|
|
+ // eslint-disable-next-line max-len
|
|
|
+ }, [currentPage?._id, currentPage?.revision?._id, setRemoteLatestPageData, mutatePageInfo, editorMode, openPageStatusAlert, fetchCurrentPage, closePageStatusAlert]);
|
|
|
|
|
|
// listen socket for someone updating this page
|
|
|
useEffect(() => {
|