mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-27 02:42:25 +08:00
chore(core): remove template doc feature flag (#10252)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { AIChatBlockSpec } from '@affine/core/blocksuite/presets/blocks/ai-chat-block';
|
||||
import { PeekViewService } from '@affine/core/modules/peek-view';
|
||||
import { PeekViewService } from '@affine/core/modules/peek-view/services/peek-view';
|
||||
import { AppThemeService } from '@affine/core/modules/theme';
|
||||
import {
|
||||
type BlockStdScope,
|
||||
|
||||
@@ -66,9 +66,6 @@ const StarterBarNotEmpty = ({ doc }: { doc: Store }) => {
|
||||
)
|
||||
);
|
||||
const enableAI = useLiveData(featureFlagService.flags.enable_ai.$);
|
||||
const enableTemplateDoc = useLiveData(
|
||||
featureFlagService.flags.enable_template_doc.$
|
||||
);
|
||||
|
||||
const handleSelectTemplate = useAsyncCallback(
|
||||
async (templateId: string) => {
|
||||
@@ -109,7 +106,7 @@ const StarterBarNotEmpty = ({ doc }: { doc: Store }) => {
|
||||
}
|
||||
}, [editorService.editor]);
|
||||
|
||||
const showTemplate = !isTemplate && enableTemplateDoc;
|
||||
const showTemplate = !isTemplate;
|
||||
|
||||
if (!enableAI && !showTemplate) {
|
||||
return null;
|
||||
|
||||
@@ -15,7 +15,6 @@ import type {
|
||||
DatabaseRow,
|
||||
DatabaseValueCell,
|
||||
} from '@affine/core/modules/doc-info/types';
|
||||
import { FeatureFlagService } from '@affine/core/modules/feature-flag';
|
||||
import { GuardService } from '@affine/core/modules/permissions';
|
||||
import { ViewService, WorkbenchService } from '@affine/core/modules/workbench';
|
||||
import type { AffineDNDData } from '@affine/core/types/dnd';
|
||||
@@ -132,13 +131,10 @@ export const DocPropertyRow = ({
|
||||
const t = useI18n();
|
||||
const docService = useService(DocService);
|
||||
const docsService = useService(DocsService);
|
||||
const featureFlagService = useService(FeatureFlagService);
|
||||
const customPropertyValue = useLiveData(
|
||||
docService.doc.customProperty$(propertyInfo.id)
|
||||
);
|
||||
const enableTemplateDoc = useLiveData(
|
||||
featureFlagService.flags.enable_template_doc.$
|
||||
);
|
||||
|
||||
const typeInfo = isSupportedDocPropertyType(propertyInfo.type)
|
||||
? DocPropertyTypes[propertyInfo.type]
|
||||
: undefined;
|
||||
@@ -215,9 +211,6 @@ export const DocPropertyRow = ({
|
||||
);
|
||||
|
||||
if (!ValueRenderer || typeof ValueRenderer !== 'function') return null;
|
||||
if (propertyInfo.id === 'template' && !enableTemplateDoc) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<PropertyRoot
|
||||
|
||||
@@ -1,21 +1,18 @@
|
||||
import { Menu, MenuItem, MenuSeparator } from '@affine/component';
|
||||
import { MenuItem as SidebarMenuItem } from '@affine/core/modules/app-sidebar/views';
|
||||
import { DocsService } from '@affine/core/modules/doc';
|
||||
import { FeatureFlagService } from '@affine/core/modules/feature-flag';
|
||||
import { TemplateListMenuContentScrollable } from '@affine/core/modules/template-doc/view/template-list-menu';
|
||||
import { WorkbenchService } from '@affine/core/modules/workbench';
|
||||
import { inferOpenMode } from '@affine/core/utils';
|
||||
import { useI18n } from '@affine/i18n';
|
||||
import track from '@affine/track';
|
||||
import { TemplateIcon } from '@blocksuite/icons/rc';
|
||||
import { useLiveData, useService } from '@toeverything/infra';
|
||||
import { useService } from '@toeverything/infra';
|
||||
import { useCallback, useState } from 'react';
|
||||
|
||||
export const TemplateDocEntrance = () => {
|
||||
const t = useI18n();
|
||||
const [menuOpen, setMenuOpen] = useState(false);
|
||||
const featureFlagService = useService(FeatureFlagService);
|
||||
const enabled = useLiveData(featureFlagService.flags.enable_template_doc.$);
|
||||
|
||||
const toggleMenu = useCallback(() => {
|
||||
setMenuOpen(prev => !prev);
|
||||
@@ -26,10 +23,6 @@ export const TemplateDocEntrance = () => {
|
||||
setMenuOpen(open);
|
||||
}, []);
|
||||
|
||||
if (!enabled) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<SidebarMenuItem
|
||||
data-testid="sidebar-template-doc-entrance"
|
||||
|
||||
@@ -10,25 +10,18 @@ import {
|
||||
} from '@affine/component/setting-components';
|
||||
import { DocsService } from '@affine/core/modules/doc';
|
||||
import { DocDisplayMetaService } from '@affine/core/modules/doc-display-meta';
|
||||
import { FeatureFlagService } from '@affine/core/modules/feature-flag';
|
||||
import { TemplateDocService } from '@affine/core/modules/template-doc';
|
||||
import { TemplateListMenu } from '@affine/core/modules/template-doc/view/template-list-menu';
|
||||
import { useI18n } from '@affine/i18n';
|
||||
import { DeleteIcon } from '@blocksuite/icons/rc';
|
||||
import { useLiveData, useService, useServices } from '@toeverything/infra';
|
||||
import { useLiveData, useService } from '@toeverything/infra';
|
||||
import { useCallback } from 'react';
|
||||
|
||||
import * as styles from './template.css';
|
||||
|
||||
export const TemplateDocSetting = () => {
|
||||
const t = useI18n();
|
||||
const { featureFlagService, templateDocService } = useServices({
|
||||
FeatureFlagService,
|
||||
TemplateDocService,
|
||||
});
|
||||
const setting = templateDocService.setting;
|
||||
|
||||
const enabled = useLiveData(featureFlagService.flags.enable_template_doc.$);
|
||||
const setting = useService(TemplateDocService).setting;
|
||||
|
||||
const enablePageTemplate = useLiveData(setting.enablePageTemplate$);
|
||||
const pageTemplateDocId = useLiveData(setting.pageTemplateDocId$);
|
||||
@@ -55,8 +48,6 @@ export const TemplateDocSetting = () => {
|
||||
[setting]
|
||||
);
|
||||
|
||||
if (!enabled) return null;
|
||||
|
||||
return (
|
||||
<SettingWrapper title={t['com.affine.settings.workspace.template.title']()}>
|
||||
<SettingRow
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { Button, IconButton, Menu } from '@affine/component';
|
||||
import { FeatureFlagService } from '@affine/core/modules/feature-flag';
|
||||
import { GlobalStateService } from '@affine/core/modules/storage';
|
||||
import { TemplateDocService } from '@affine/core/modules/template-doc';
|
||||
import { TemplateListMenuContentScrollable } from '@affine/core/modules/template-doc/view/template-list-menu';
|
||||
@@ -19,11 +18,7 @@ let animationPlayed = false;
|
||||
export const JournalTemplateOnboarding = () => {
|
||||
const containerRef = useRef<HTMLDivElement>(null);
|
||||
const globalState = useService(GlobalStateService).globalState;
|
||||
const featureFlagService = useService(FeatureFlagService);
|
||||
const templateDocService = useService(TemplateDocService);
|
||||
const enableTemplate = useLiveData(
|
||||
featureFlagService.flags.enable_template_doc.$
|
||||
);
|
||||
const t = useI18n();
|
||||
|
||||
const dismissed = useLiveData(
|
||||
@@ -65,7 +60,7 @@ export const JournalTemplateOnboarding = () => {
|
||||
[templateDocService.setting]
|
||||
);
|
||||
|
||||
if (dismissed || !enableTemplate) return null;
|
||||
if (dismissed) return null;
|
||||
|
||||
return (
|
||||
<div
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { usePageHelper } from '@affine/core/components/blocksuite/block-suite-page-list/utils';
|
||||
import { useAsyncCallback } from '@affine/core/components/hooks/affine-async-hooks';
|
||||
import { DocsService } from '@affine/core/modules/doc';
|
||||
import { FeatureFlagService } from '@affine/core/modules/feature-flag';
|
||||
import { TemplateDocService } from '@affine/core/modules/template-doc';
|
||||
import { WorkbenchService } from '@affine/core/modules/workbench';
|
||||
import { WorkspaceService } from '@affine/core/modules/workspace';
|
||||
@@ -15,15 +14,11 @@ import { TabItem } from './tab-item';
|
||||
export const AppTabCreate = ({ tab }: AppTabCustomFCProps) => {
|
||||
const workbench = useService(WorkbenchService).workbench;
|
||||
const workspaceService = useService(WorkspaceService);
|
||||
const featureFlagService = useService(FeatureFlagService);
|
||||
const templateDocService = useService(TemplateDocService);
|
||||
const docsService = useService(DocsService);
|
||||
|
||||
const currentWorkspace = workspaceService.workspace;
|
||||
const pageHelper = usePageHelper(currentWorkspace.docCollection);
|
||||
const enableTemplateDoc = useLiveData(
|
||||
featureFlagService.flags.enable_template_doc.$
|
||||
);
|
||||
const enablePageTemplate = useLiveData(
|
||||
templateDocService.setting.enablePageTemplate$
|
||||
);
|
||||
@@ -34,7 +29,7 @@ export const AppTabCreate = ({ tab }: AppTabCustomFCProps) => {
|
||||
const createPage = useAsyncCallback(
|
||||
async (isActive: boolean) => {
|
||||
if (isActive) return;
|
||||
if (enableTemplateDoc && enablePageTemplate && pageTemplateDocId) {
|
||||
if (enablePageTemplate && pageTemplateDocId) {
|
||||
const docId =
|
||||
await docsService.duplicateFromTemplate(pageTemplateDocId);
|
||||
workbench.openDoc({ docId, fromTab: 'true' });
|
||||
@@ -44,14 +39,7 @@ export const AppTabCreate = ({ tab }: AppTabCustomFCProps) => {
|
||||
}
|
||||
track.$.navigationPanel.$.createDoc();
|
||||
},
|
||||
[
|
||||
docsService,
|
||||
enablePageTemplate,
|
||||
enableTemplateDoc,
|
||||
pageHelper,
|
||||
pageTemplateDocId,
|
||||
workbench,
|
||||
]
|
||||
[docsService, enablePageTemplate, pageHelper, pageTemplateDocId, workbench]
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@@ -3,7 +3,6 @@ import { usePageHelper } from '@affine/core/components/blocksuite/block-suite-pa
|
||||
import { useAsyncCallback } from '@affine/core/components/hooks/affine-async-hooks';
|
||||
import { DocsService } from '@affine/core/modules/doc';
|
||||
import { EditorSettingService } from '@affine/core/modules/editor-setting';
|
||||
import { FeatureFlagService } from '@affine/core/modules/feature-flag';
|
||||
import { TemplateDocService } from '@affine/core/modules/template-doc';
|
||||
import { TemplateListMenuContentScrollable } from '@affine/core/modules/template-doc/view/template-list-menu';
|
||||
import { WorkbenchService } from '@affine/core/modules/workbench';
|
||||
@@ -30,16 +29,11 @@ import * as styles from './index.css';
|
||||
* @return a function to create a new doc, will duplicate the template doc if the page template is enabled
|
||||
*/
|
||||
const useNewDoc = () => {
|
||||
const featureFlagService = useService(FeatureFlagService);
|
||||
const workspaceService = useService(WorkspaceService);
|
||||
const templateDocService = useService(TemplateDocService);
|
||||
const docsService = useService(DocsService);
|
||||
const workbench = useService(WorkbenchService).workbench;
|
||||
|
||||
const enableTemplateDoc = useLiveData(
|
||||
featureFlagService.flags.enable_template_doc.$
|
||||
);
|
||||
|
||||
const currentWorkspace = workspaceService.workspace;
|
||||
const enablePageTemplate = useLiveData(
|
||||
templateDocService.setting.enablePageTemplate$
|
||||
@@ -52,7 +46,7 @@ const useNewDoc = () => {
|
||||
|
||||
const createPage = useAsyncCallback(
|
||||
async (e?: MouseEvent, mode?: DocMode) => {
|
||||
if (enableTemplateDoc && enablePageTemplate && pageTemplateDocId) {
|
||||
if (enablePageTemplate && pageTemplateDocId) {
|
||||
const docId =
|
||||
await docsService.duplicateFromTemplate(pageTemplateDocId);
|
||||
workbench.openDoc(docId, { at: inferOpenMode(e) });
|
||||
@@ -60,14 +54,7 @@ const useNewDoc = () => {
|
||||
pageHelper.createPage(mode, { at: inferOpenMode(e) });
|
||||
}
|
||||
},
|
||||
[
|
||||
docsService,
|
||||
enablePageTemplate,
|
||||
enableTemplateDoc,
|
||||
pageHelper,
|
||||
pageTemplateDocId,
|
||||
workbench,
|
||||
]
|
||||
[docsService, enablePageTemplate, pageHelper, pageTemplateDocId, workbench]
|
||||
);
|
||||
|
||||
return createPage;
|
||||
|
||||
@@ -222,15 +222,6 @@ export const AFFINE_FLAGS = {
|
||||
configurable: !isMobile,
|
||||
defaultState: false,
|
||||
},
|
||||
// TODO(@CatsJuice): remove this flag when ready
|
||||
enable_template_doc: {
|
||||
category: 'affine',
|
||||
displayName: 'Enable template doc',
|
||||
description:
|
||||
'Allow users to mark a doc as a template, and create new docs from it',
|
||||
configurable: true,
|
||||
defaultState: isCanaryBuild,
|
||||
},
|
||||
enable_editor_rtl: {
|
||||
category: 'affine',
|
||||
displayName:
|
||||
|
||||
@@ -2,7 +2,6 @@ import { type Framework } from '@toeverything/infra';
|
||||
|
||||
import { DocScope, DocService, DocsService } from '../doc';
|
||||
import { EditorSettingService } from '../editor-setting';
|
||||
import { FeatureFlagService } from '../feature-flag';
|
||||
import { TemplateDocService } from '../template-doc';
|
||||
import { WorkspaceScope } from '../workspace';
|
||||
import { JournalService } from './services/journal';
|
||||
@@ -25,7 +24,6 @@ export function configureJournalModule(framework: Framework) {
|
||||
DocsService,
|
||||
EditorSettingService,
|
||||
TemplateDocService,
|
||||
FeatureFlagService,
|
||||
])
|
||||
.store(JournalStore, [DocsService])
|
||||
.scope(DocScope)
|
||||
|
||||
@@ -8,7 +8,6 @@ import {
|
||||
} from '../../../blocksuite/initialization';
|
||||
import type { DocsService } from '../../doc';
|
||||
import type { EditorSettingService } from '../../editor-setting';
|
||||
import type { FeatureFlagService } from '../../feature-flag';
|
||||
import type { TemplateDocService } from '../../template-doc';
|
||||
import type { JournalStore } from '../store/journal';
|
||||
|
||||
@@ -21,8 +20,7 @@ export class JournalService extends Service {
|
||||
private readonly store: JournalStore,
|
||||
private readonly docsService: DocsService,
|
||||
private readonly editorSettingService: EditorSettingService,
|
||||
private readonly templateDocService: TemplateDocService,
|
||||
private readonly featureFlagService: FeatureFlagService
|
||||
private readonly templateDocService: TemplateDocService
|
||||
) {
|
||||
super();
|
||||
}
|
||||
@@ -66,8 +64,6 @@ export class JournalService extends Service {
|
||||
.getTime(),
|
||||
});
|
||||
|
||||
const enableTemplateDoc =
|
||||
this.featureFlagService.flags.enable_template_doc.value;
|
||||
const enablePageTemplate =
|
||||
this.templateDocService.setting.enablePageTemplate$.value;
|
||||
const pageTemplateDocId =
|
||||
@@ -75,13 +71,13 @@ export class JournalService extends Service {
|
||||
const journalTemplateDocId =
|
||||
this.templateDocService.setting.journalTemplateDocId$.value;
|
||||
// if journal template configured
|
||||
if (enableTemplateDoc && journalTemplateDocId) {
|
||||
if (journalTemplateDocId) {
|
||||
this.docsService
|
||||
.duplicateFromTemplate(journalTemplateDocId, docRecord.id)
|
||||
.catch(console.error);
|
||||
}
|
||||
// journal template not configured, use page template
|
||||
else if (enableTemplateDoc && enablePageTemplate && pageTemplateDocId) {
|
||||
else if (enablePageTemplate && pageTemplateDocId) {
|
||||
this.docsService
|
||||
.duplicateFromTemplate(pageTemplateDocId, docRecord.id)
|
||||
.catch(console.error);
|
||||
|
||||
Reference in New Issue
Block a user