mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-19 07:17:00 +08:00
feat(core): support removing journal template from right sidebar (#10571)
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
import { Button, Menu } from '@affine/component';
|
import { Button, Menu, MenuItem, MenuSeparator } from '@affine/component';
|
||||||
import { DocsService } from '@affine/core/modules/doc';
|
import { DocsService } from '@affine/core/modules/doc';
|
||||||
import { DocDisplayMetaService } from '@affine/core/modules/doc-display-meta';
|
import { DocDisplayMetaService } from '@affine/core/modules/doc-display-meta';
|
||||||
import { TemplateDocService } from '@affine/core/modules/template-doc';
|
import { TemplateDocService } from '@affine/core/modules/template-doc';
|
||||||
import { TemplateListMenuContentScrollable } from '@affine/core/modules/template-doc/view/template-list-menu';
|
import { TemplateListMenuContentScrollable } from '@affine/core/modules/template-doc/view/template-list-menu';
|
||||||
import { useI18n } from '@affine/i18n';
|
import { useI18n } from '@affine/i18n';
|
||||||
import { TemplateIcon } from '@blocksuite/icons/rc';
|
import { DeleteIcon, TemplateIcon } from '@blocksuite/icons/rc';
|
||||||
import { useLiveData, useService } from '@toeverything/infra';
|
import { useLiveData, useService } from '@toeverything/infra';
|
||||||
import clsx from 'clsx';
|
import clsx from 'clsx';
|
||||||
import { useCallback, useMemo } from 'react';
|
import { useCallback, useMemo } from 'react';
|
||||||
@@ -33,18 +33,38 @@ export const JournalTemplateSetting = () => {
|
|||||||
const isDeleted = useLiveData(journalTemplateDoc?.trash$);
|
const isDeleted = useLiveData(journalTemplateDoc?.trash$);
|
||||||
|
|
||||||
const updateJournalTemplate = useCallback(
|
const updateJournalTemplate = useCallback(
|
||||||
(templateId: string) => {
|
(templateId?: string) => {
|
||||||
templateDocService.setting.updateJournalTemplateDocId(templateId);
|
templateDocService.setting.updateJournalTemplateDocId(templateId);
|
||||||
},
|
},
|
||||||
[templateDocService.setting]
|
[templateDocService.setting]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const removeJournalTemplate = useCallback(() => {
|
||||||
|
updateJournalTemplate();
|
||||||
|
}, [updateJournalTemplate]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.container}>
|
<div className={styles.container}>
|
||||||
<Menu
|
<Menu
|
||||||
contentOptions={{ className: styles.menu }}
|
contentOptions={{ className: styles.menu }}
|
||||||
items={
|
items={
|
||||||
<TemplateListMenuContentScrollable onSelect={updateJournalTemplate} />
|
<TemplateListMenuContentScrollable
|
||||||
|
onSelect={updateJournalTemplate}
|
||||||
|
suffixItems={
|
||||||
|
journalTemplateDocId ? (
|
||||||
|
<>
|
||||||
|
<MenuSeparator />
|
||||||
|
<MenuItem
|
||||||
|
prefixIcon={<DeleteIcon />}
|
||||||
|
onClick={removeJournalTemplate}
|
||||||
|
type="danger"
|
||||||
|
>
|
||||||
|
{t['com.affine.template-list.delete']()}
|
||||||
|
</MenuItem>
|
||||||
|
</>
|
||||||
|
) : null
|
||||||
|
}
|
||||||
|
/>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@@ -1736,6 +1736,7 @@
|
|||||||
"com.affine.page-starter-bar.edgeless": "Edgeless",
|
"com.affine.page-starter-bar.edgeless": "Edgeless",
|
||||||
"tips": "Tips",
|
"tips": "Tips",
|
||||||
"Template": "Template",
|
"Template": "Template",
|
||||||
|
"com.affine.template-list.delete": "Delete Template",
|
||||||
"com.affine.template-list.empty": "No template",
|
"com.affine.template-list.empty": "No template",
|
||||||
"com.affine.template-list.create-new": "Create new template",
|
"com.affine.template-list.create-new": "Create new template",
|
||||||
"com.affine.template-journal-onboarding.title": "Set a Template for the Journal",
|
"com.affine.template-journal-onboarding.title": "Set a Template for the Journal",
|
||||||
|
|||||||
Reference in New Issue
Block a user