mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-15 00:56:26 +08:00
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
This commit is contained in:
@@ -9,7 +9,7 @@ import { apis } from '@affine/electron-api';
|
||||
import { WorkspaceFlavour } from '@affine/env/workspace';
|
||||
import { useI18n } from '@affine/i18n';
|
||||
import {
|
||||
initEmptyPage,
|
||||
DocsService,
|
||||
useLiveData,
|
||||
useService,
|
||||
WorkspacesService,
|
||||
@@ -179,6 +179,7 @@ export const CreateWorkspaceModal = ({
|
||||
const [step, setStep] = useState<CreateWorkspaceStep>();
|
||||
const t = useI18n();
|
||||
const workspacesService = useService(WorkspacesService);
|
||||
const docsService = useService(DocsService);
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
// TODO(@Peng): maybe refactor using xstate?
|
||||
@@ -242,9 +243,8 @@ export const CreateWorkspaceModal = ({
|
||||
async workspace => {
|
||||
workspace.meta.initialize();
|
||||
workspace.meta.setName(name);
|
||||
const page = workspace.createDoc();
|
||||
const page = docsService.createDoc();
|
||||
defaultDocId = page.id;
|
||||
initEmptyPage(page);
|
||||
}
|
||||
);
|
||||
onCreate(id, defaultDocId);
|
||||
@@ -252,7 +252,7 @@ export const CreateWorkspaceModal = ({
|
||||
|
||||
setLoading(false);
|
||||
},
|
||||
[loading, onCreate, workspacesService]
|
||||
[docsService, loading, onCreate, workspacesService]
|
||||
);
|
||||
|
||||
const onOpenChange = useCallback(
|
||||
|
||||
@@ -39,7 +39,6 @@ export const EmptyDocs = ({
|
||||
undefined,
|
||||
isNewTabTrigger(e) ? 'new-tab' : true
|
||||
);
|
||||
doc.load();
|
||||
|
||||
if (tag) tag.tag(doc.id);
|
||||
},
|
||||
|
||||
@@ -239,7 +239,7 @@ export const useRestorePage = (
|
||||
const { trigger: recover, isMutating } = useMutation({
|
||||
mutation: recoverDocMutation,
|
||||
});
|
||||
const { getDocMeta, setDocTitle } = useDocMetaHelper(docCollection);
|
||||
const { getDocMeta, setDocTitle } = useDocMetaHelper();
|
||||
|
||||
const onRestore = useMemo(() => {
|
||||
return async (version: string, update: Uint8Array) => {
|
||||
|
||||
@@ -95,7 +95,7 @@ export function AffinePageReference({
|
||||
mode?: DocMode;
|
||||
params?: URLSearchParams;
|
||||
}) {
|
||||
const pageMetaHelper = useDocMetaHelper(docCollection);
|
||||
const pageMetaHelper = useDocMetaHelper();
|
||||
const journalHelper = useJournalHelper(docCollection);
|
||||
const t = useI18n();
|
||||
|
||||
|
||||
+1
-1
@@ -120,7 +120,7 @@ export const AppearanceSettings = () => {
|
||||
) : null}
|
||||
{runtimeConfig.enableThemeEditor ? <ThemeEditorSetting /> : null}
|
||||
</SettingWrapper>
|
||||
{/* //TODO(@JimmFly): remove Page component when stable release */}
|
||||
{/* // TODO(@JimmFly): remove Page component when stable release */}
|
||||
<Page />
|
||||
{runtimeConfig.enableNewSettingUnstableApi ? (
|
||||
<SettingWrapper title={t['com.affine.appearanceSettings.date.title']()}>
|
||||
|
||||
+1
-1
@@ -459,7 +459,7 @@ export const General = () => {
|
||||
<FontFamilySettings />
|
||||
<CustomFontFamilySettings />
|
||||
<NewDocDefaultModeSettings />
|
||||
{/* //TODO(@akumatus): implement these settings
|
||||
{/* // TODO(@akumatus): implement these settings
|
||||
<DeFaultCodeBlockSettings />
|
||||
<SpellCheckSettings /> */}
|
||||
</SettingWrapper>
|
||||
|
||||
@@ -81,12 +81,12 @@ export const PageHeaderMenuButton = ({
|
||||
|
||||
const { favorite, toggleFavorite } = useFavorite(pageId);
|
||||
|
||||
const { duplicate } = useBlockSuiteMetaHelper(docCollection);
|
||||
const { duplicate } = useBlockSuiteMetaHelper();
|
||||
const { importFile } = usePageHelper(docCollection);
|
||||
const { setTrashModal } = useTrashModalHelper(docCollection);
|
||||
const { setTrashModal } = useTrashModalHelper();
|
||||
|
||||
const [isEditing, setEditing] = useState(!page.readonly);
|
||||
const { setDocReadonly } = useDocMetaHelper(docCollection);
|
||||
const { setDocReadonly } = useDocMetaHelper();
|
||||
|
||||
const view = useService(ViewService).view;
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { toast } from '@affine/component';
|
||||
import { useDocCollectionHelper } from '@affine/core/hooks/use-block-suite-workspace-helper';
|
||||
import { WorkbenchService } from '@affine/core/modules/workbench';
|
||||
import type { DocMode } from '@blocksuite/blocks';
|
||||
import { DocsService, initEmptyPage, useServices } from '@toeverything/infra';
|
||||
import { DocsService, useServices } from '@toeverything/infra';
|
||||
import { useCallback, useMemo } from 'react';
|
||||
|
||||
import type { DocCollection } from '../../../shared';
|
||||
@@ -13,13 +12,11 @@ export const usePageHelper = (docCollection: DocCollection) => {
|
||||
WorkbenchService,
|
||||
});
|
||||
const workbench = workbenchService.workbench;
|
||||
const { createDoc } = useDocCollectionHelper(docCollection);
|
||||
const docRecordList = docsService.list;
|
||||
|
||||
const createPageAndOpen = useCallback(
|
||||
(mode?: DocMode, open?: boolean | 'new-tab') => {
|
||||
const page = createDoc();
|
||||
initEmptyPage(page);
|
||||
const page = docsService.createDoc();
|
||||
if (mode) {
|
||||
docRecordList.doc$(page.id).value?.setPrimaryMode(mode);
|
||||
}
|
||||
@@ -30,7 +27,7 @@ export const usePageHelper = (docCollection: DocCollection) => {
|
||||
});
|
||||
return page;
|
||||
},
|
||||
[createDoc, docRecordList, workbench]
|
||||
[docRecordList, docsService, workbench]
|
||||
);
|
||||
|
||||
const createEdgelessAndOpen = useCallback(
|
||||
|
||||
@@ -19,7 +19,7 @@ import {
|
||||
SearchIcon,
|
||||
ViewLayersIcon,
|
||||
} from '@blocksuite/icons/rc';
|
||||
import type { Doc as BlockSuiteDoc } from '@blocksuite/store';
|
||||
import type { DocRecord } from '@toeverything/infra';
|
||||
import {
|
||||
useLiveData,
|
||||
useService,
|
||||
@@ -122,7 +122,7 @@ export const CollectionPageListHeader = ({
|
||||
const { openConfirmModal } = useConfirmModal();
|
||||
|
||||
const createAndAddDocument = useCallback(
|
||||
(createDocumentFn: () => BlockSuiteDoc) => {
|
||||
(createDocumentFn: () => DocRecord) => {
|
||||
const newDoc = createDocumentFn();
|
||||
collectionService.addPageToCollection(collection.id, newDoc.id);
|
||||
},
|
||||
@@ -130,7 +130,7 @@ export const CollectionPageListHeader = ({
|
||||
);
|
||||
|
||||
const onConfirmAddDocument = useCallback(
|
||||
(createDocumentFn: () => BlockSuiteDoc) => {
|
||||
(createDocumentFn: () => DocRecord) => {
|
||||
openConfirmModal({
|
||||
title: t['com.affine.collection.add-doc.confirm.title'](),
|
||||
description: t['com.affine.collection.add-doc.confirm.description'](),
|
||||
|
||||
@@ -122,7 +122,7 @@ export const VirtualizedPageList = ({
|
||||
return <PageListHeader />;
|
||||
}, [collection, currentWorkspace.id, tag]);
|
||||
|
||||
const { setTrashModal } = useTrashModalHelper(currentWorkspace.docCollection);
|
||||
const { setTrashModal } = useTrashModalHelper();
|
||||
|
||||
const handleMultiDelete = useCallback(() => {
|
||||
if (filteredSelectedPageIds.length === 0) {
|
||||
|
||||
@@ -80,10 +80,10 @@ export const PageOperationCell = ({
|
||||
featureFlagService.flags.enable_multi_view.$
|
||||
);
|
||||
const currentWorkspace = workspaceService.workspace;
|
||||
const { setTrashModal } = useTrashModalHelper(currentWorkspace.docCollection);
|
||||
const { setTrashModal } = useTrashModalHelper();
|
||||
const favourite = useLiveData(favAdapter.isFavorite$(page.id, 'doc'));
|
||||
const workbench = workbenchService.workbench;
|
||||
const { duplicate } = useBlockSuiteMetaHelper(currentWorkspace.docCollection);
|
||||
const { duplicate } = useBlockSuiteMetaHelper();
|
||||
const blocksuiteDoc = currentWorkspace.docCollection.getDoc(page.id);
|
||||
|
||||
const [openInfoModal, setOpenInfoModal] = useState(false);
|
||||
@@ -93,7 +93,7 @@ export const PageOperationCell = ({
|
||||
}, []);
|
||||
|
||||
const onDisablePublicSharing = useCallback(() => {
|
||||
//TODO(@EYHN): implement disable public sharing
|
||||
// TODO(@EYHN): implement disable public sharing
|
||||
toast('Successfully disabled', {
|
||||
portal: document.body,
|
||||
});
|
||||
|
||||
@@ -23,7 +23,7 @@ const TagListTitleCell = ({
|
||||
>
|
||||
{title || t['Untitled']()}
|
||||
</div>
|
||||
{/* //TODO(@EYHN): when indexer is ready, add this back
|
||||
{/* // TODO(@EYHN): when indexer is ready, add this back
|
||||
<div
|
||||
data-testid="page-list-item-preview-text"
|
||||
className={styles.titleCellPreview}
|
||||
|
||||
@@ -18,8 +18,7 @@ import { VirtualizedList } from './virtualized-list';
|
||||
export const VirtualizedTrashList = () => {
|
||||
const currentWorkspace = useService(WorkspaceService).workspace;
|
||||
const docCollection = currentWorkspace.docCollection;
|
||||
const { restoreFromTrash, permanentlyDeletePage } =
|
||||
useBlockSuiteMetaHelper(docCollection);
|
||||
const { restoreFromTrash, permanentlyDeletePage } = useBlockSuiteMetaHelper();
|
||||
const pageMetas = useBlockSuiteDocMeta(docCollection);
|
||||
const filteredPageMetas = useFilteredPageMetas(pageMetas, {
|
||||
trash: true,
|
||||
|
||||
@@ -19,7 +19,7 @@ export const TrashPageFooter = () => {
|
||||
const t = useI18n();
|
||||
const { appSettings } = useAppSettingHelper();
|
||||
const { jumpToSubPath } = useNavigateHelper();
|
||||
const { restoreFromTrash } = useBlockSuiteMetaHelper(docCollection);
|
||||
const { restoreFromTrash } = useBlockSuiteMetaHelper();
|
||||
const [open, setOpen] = useState(false);
|
||||
const hintText = t['com.affine.cmdk.affine.editor.trash-footer-hint']();
|
||||
|
||||
|
||||
@@ -99,11 +99,7 @@ export const RootAppSidebar = (): ReactElement => {
|
||||
|
||||
const onClickNewPage = useAsyncCallback(
|
||||
async (e?: MouseEvent) => {
|
||||
const page = pageHelper.createPage(
|
||||
undefined,
|
||||
isNewTabTrigger(e) ? 'new-tab' : true
|
||||
);
|
||||
page.load();
|
||||
pageHelper.createPage(undefined, isNewTabTrigger(e) ? 'new-tab' : true);
|
||||
track.$.navigationPanel.$.createDoc();
|
||||
},
|
||||
[pageHelper]
|
||||
|
||||
Reference in New Issue
Block a user