fix(core): unexpected editable state after trash page refresh (#6433)

close TOV-772
This commit is contained in:
JimmFly
2024-04-01 08:16:17 +00:00
parent 2631b41e6d
commit 62d9b0c959
@@ -277,7 +277,6 @@ const DetailPageImpl = memo(function DetailPageImpl() {
export const DetailPage = ({ pageId }: { pageId: string }): ReactElement => {
const currentWorkspace = useService(Workspace);
const pageRecordList = useService(PageRecordList);
const pageListReady = useLiveData(pageRecordList.isReady$);
const pageRecords = useLiveData(pageRecordList.records$);
@@ -286,7 +285,6 @@ export const DetailPage = ({ pageId }: { pageId: string }): ReactElement => {
() => pageRecords.find(page => page.id === pageId),
[pageRecords, pageId]
);
const pageManager = useService(PageManager);
const [page, setPage] = useState<Doc | null>(null);
@@ -318,6 +316,19 @@ export const DetailPage = ({ pageId }: { pageId: string }): ReactElement => {
}
}, [jumpOnce, pageRecord]);
useEffect(() => {
if (page && pageRecord?.meta?.trash) {
currentWorkspace.docCollection.awarenessStore.setReadonly(
page.blockSuiteDoc,
true
);
}
}, [
currentWorkspace.docCollection.awarenessStore,
page,
pageRecord?.meta?.trash,
]);
// if sync engine has been synced and the page is null, show 404 page.
if (pageListReady && !page) {
return <PageNotFound />;