Skip to content

Commit 2cba8a4

Browse files
committed
fix(core): title could not be changed when creating a new doc (#8203)
Before change, the title could not be modified from outside the editor without refreshing: https://github.com/user-attachments/assets/536acba1-4e31-418a-bc1a-8578e3128bba after: https://github.com/user-attachments/assets/30a4b270-b8b1-4787-acef-0ab2a72a8f74
1 parent cc5a6e6 commit 2cba8a4

File tree

27 files changed

+138
-145
lines changed

27 files changed

+138
-145
lines changed

packages/common/infra/src/modules/doc/entities/record.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ export class DocRecord extends Entity<{ id: string }> {
3939
}
4040

4141
moveToTrash() {
42-
return this.setMeta({ trash: true });
42+
return this.setMeta({ trash: true, trashDate: Date.now() });
4343
}
4444

4545
restoreFromTrash() {
46-
return this.setMeta({ trash: false });
46+
return this.setMeta({ trash: false, trashDate: undefined });
4747
}
4848

4949
title$ = this.meta$.map(meta => meta.title ?? '');

packages/common/infra/src/modules/workspace/entities/workspace.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ export class Workspace extends Entity {
3535
idGenerator: () => nanoid(),
3636
schema: globalBlockSuiteSchema,
3737
});
38+
this._docCollection.slots.docCreated.on(id => {
39+
this.engine.doc.markAsReady(id);
40+
});
3841
}
3942
return this._docCollection;
4043
}

packages/frontend/apps/mobile/src/pages/workspace/detail/mobile-detail-page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ const DetailPageImpl = () => {
6262
const { openPage, jumpToPageBlock, jumpToTag } = useNavigateHelper();
6363
const editorContainer = useLiveData(editor.editorContainer$);
6464

65-
const { setDocReadonly } = useDocMetaHelper(workspace.docCollection);
65+
const { setDocReadonly } = useDocMetaHelper();
6666

6767
// TODO(@eyhn): remove jotai here
6868
const [_, setActiveBlockSuiteEditor] = useActiveBlocksuiteEditor();

packages/frontend/apps/mobile/src/provider/model-provider.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ import { MobileSignInModal } from '../views/sign-in/modal';
2222
export function MobileCurrentWorkspaceModals() {
2323
const currentWorkspace = useService(WorkspaceService).workspace;
2424

25-
const { trashModal, setTrashModal, handleOnConfirm } = useTrashModalHelper(
26-
currentWorkspace.docCollection
27-
);
25+
const { trashModal, setTrashModal, handleOnConfirm } = useTrashModalHelper();
2826
const deletePageTitles = trashModal.pageTitles;
2927
const trashConfirmOpen = trashModal.open;
3028
const onTrashConfirmOpenChange = useCallback(

packages/frontend/core/src/components/affine/create-workspace-modal/index.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { apis } from '@affine/electron-api';
99
import { WorkspaceFlavour } from '@affine/env/workspace';
1010
import { useI18n } from '@affine/i18n';
1111
import {
12-
initEmptyPage,
12+
DocsService,
1313
useLiveData,
1414
useService,
1515
WorkspacesService,
@@ -179,6 +179,7 @@ export const CreateWorkspaceModal = ({
179179
const [step, setStep] = useState<CreateWorkspaceStep>();
180180
const t = useI18n();
181181
const workspacesService = useService(WorkspacesService);
182+
const docsService = useService(DocsService);
182183
const [loading, setLoading] = useState(false);
183184

184185
// TODO(@Peng): maybe refactor using xstate?
@@ -242,17 +243,16 @@ export const CreateWorkspaceModal = ({
242243
async workspace => {
243244
workspace.meta.initialize();
244245
workspace.meta.setName(name);
245-
const page = workspace.createDoc();
246+
const page = docsService.createDoc();
246247
defaultDocId = page.id;
247-
initEmptyPage(page);
248248
}
249249
);
250250
onCreate(id, defaultDocId);
251251
}
252252

253253
setLoading(false);
254254
},
255-
[loading, onCreate, workspacesService]
255+
[docsService, loading, onCreate, workspacesService]
256256
);
257257

258258
const onOpenChange = useCallback(

packages/frontend/core/src/components/affine/empty/docs.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ export const EmptyDocs = ({
3939
undefined,
4040
isNewTabTrigger(e) ? 'new-tab' : true
4141
);
42-
doc.load();
4342

4443
if (tag) tag.tag(doc.id);
4544
},

packages/frontend/core/src/components/affine/page-history-modal/data.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ export const useRestorePage = (
239239
const { trigger: recover, isMutating } = useMutation({
240240
mutation: recoverDocMutation,
241241
});
242-
const { getDocMeta, setDocTitle } = useDocMetaHelper(docCollection);
242+
const { getDocMeta, setDocTitle } = useDocMetaHelper();
243243

244244
const onRestore = useMemo(() => {
245245
return async (version: string, update: Uint8Array) => {

packages/frontend/core/src/components/affine/reference-link/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export function AffinePageReference({
9595
mode?: DocMode;
9696
params?: URLSearchParams;
9797
}) {
98-
const pageMetaHelper = useDocMetaHelper(docCollection);
98+
const pageMetaHelper = useDocMetaHelper();
9999
const journalHelper = useJournalHelper(docCollection);
100100
const t = useI18n();
101101

packages/frontend/core/src/components/affine/setting-modal/general-setting/appearance/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export const AppearanceSettings = () => {
120120
) : null}
121121
{runtimeConfig.enableThemeEditor ? <ThemeEditorSetting /> : null}
122122
</SettingWrapper>
123-
{/* //TODO(@JimmFly): remove Page component when stable release */}
123+
{/* // TODO(@JimmFly): remove Page component when stable release */}
124124
<Page />
125125
{runtimeConfig.enableNewSettingUnstableApi ? (
126126
<SettingWrapper title={t['com.affine.appearanceSettings.date.title']()}>

packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/general.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ export const General = () => {
459459
<FontFamilySettings />
460460
<CustomFontFamilySettings />
461461
<NewDocDefaultModeSettings />
462-
{/* //TODO(@akumatus): implement these settings
462+
{/* // TODO(@akumatus): implement these settings
463463
<DeFaultCodeBlockSettings />
464464
<SpellCheckSettings /> */}
465465
</SettingWrapper>

0 commit comments

Comments
 (0)