diff --git a/packages/frontend/core/src/components/root-app-sidebar/index.tsx b/packages/frontend/core/src/components/root-app-sidebar/index.tsx
index 8cc9e38a0..8ff983e56 100644
--- a/packages/frontend/core/src/components/root-app-sidebar/index.tsx
+++ b/packages/frontend/core/src/components/root-app-sidebar/index.tsx
@@ -26,7 +26,6 @@ import { track } from '@affine/track';
import type { Store } from '@blocksuite/affine/store';
import {
AllDocsIcon,
- GithubIcon,
ImportIcon,
JournalIcon,
SettingsIcon,
@@ -192,11 +191,6 @@ export const RootAppSidebar = memo((): ReactElement => {
icon={}
label={t['com.affine.app-sidebar.learn-more']()}
/>
- }
- label={t['com.affine.app-sidebar.star-us']()}
- />
diff --git a/packages/frontend/core/src/components/root-app-sidebar/template-doc-entrance.tsx b/packages/frontend/core/src/components/root-app-sidebar/template-doc-entrance.tsx
index ee26f34c8..5f70fdf27 100644
--- a/packages/frontend/core/src/components/root-app-sidebar/template-doc-entrance.tsx
+++ b/packages/frontend/core/src/components/root-app-sidebar/template-doc-entrance.tsx
@@ -10,28 +10,16 @@ import { TemplateIcon, TemplateOutlineIcon } from '@blocksuite/icons/rc';
import { useLiveData, useService } from '@toeverything/infra';
import { useCallback, useState } from 'react';
-import { useAsyncCallback } from '../hooks/affine-async-hooks';
-
export const TemplateDocEntrance = () => {
const t = useI18n();
const [menuOpen, setMenuOpen] = useState(false);
- const docsService = useService(DocsService);
const featureFlagService = useService(FeatureFlagService);
- const workbench = useService(WorkbenchService).workbench;
const enabled = useLiveData(featureFlagService.flags.enable_template_doc.$);
const toggleMenu = useCallback(() => {
setMenuOpen(prev => !prev);
}, []);
- const createDocFromTemplate = useAsyncCallback(
- async (templateId: string) => {
- const docId = await docsService.duplicateFromTemplate(templateId);
- workbench.openDoc(docId);
- },
- [docsService, workbench]
- );
-
if (!enabled) {
return null;
}
@@ -49,10 +37,11 @@ export const TemplateDocEntrance = () => {
align: 'end',
alignOffset: -4,
sideOffset: 16,
+ style: { width: 280 },
}}
items={
diff --git a/packages/frontend/core/src/modules/template-doc/view/template-list-menu.tsx b/packages/frontend/core/src/modules/template-doc/view/template-list-menu.tsx
index b021926bc..8187b7782 100644
--- a/packages/frontend/core/src/modules/template-doc/view/template-list-menu.tsx
+++ b/packages/frontend/core/src/modules/template-doc/view/template-list-menu.tsx
@@ -7,17 +7,19 @@ import { useState } from 'react';
import { type DocRecord } from '../../doc';
import { DocDisplayMetaService } from '../../doc-display-meta';
+import { WorkbenchLink } from '../../workbench';
import { TemplateDocService } from '../services/template-doc';
import * as styles from './styles.css';
interface CommonProps {
onSelect?: (docId: string) => void;
+ asLink?: boolean;
}
interface DocItemProps extends CommonProps {
doc: DocRecord;
}
-const DocItem = ({ doc, onSelect }: DocItemProps) => {
+const DocItem = ({ doc, onSelect, asLink }: DocItemProps) => {
const docDisplayService = useService(DocDisplayMetaService);
const Icon = useLiveData(docDisplayService.icon$(doc.id));
const title = useLiveData(docDisplayService.title$(doc.id));
@@ -26,7 +28,7 @@ const DocItem = ({ doc, onSelect }: DocItemProps) => {
onSelect?.(doc.id);
}, [doc.id, onSelect]);
- return (
+ const menuItem = (
}
onClick={onClick}
@@ -35,6 +37,11 @@ const DocItem = ({ doc, onSelect }: DocItemProps) => {
{title}
);
+
+ if (asLink) {
+ return {menuItem};
+ }
+ return menuItem;
};
const Empty = () => {
@@ -95,6 +102,7 @@ interface TemplateListMenuProps
export const TemplateListMenu = ({
children,
onSelect,
+ asLink,
prefixItems,
suffixItems,
contentOptions,
@@ -105,6 +113,7 @@ export const TemplateListMenu = ({
items={
diff --git a/tests/affine-local/e2e/template.spec.ts b/tests/affine-local/e2e/template.spec.ts
index 931314387..eb3f9c47e 100644
--- a/tests/affine-local/e2e/template.spec.ts
+++ b/tests/affine-local/e2e/template.spec.ts
@@ -216,7 +216,7 @@ test('set default template for journal', async ({ page }) => {
await expect(page.getByText('This is a journal template doc')).toBeVisible();
});
-test('create doc from template via sidebar entrance', async ({ page }) => {
+test('open template doc from sidebar template entrance', async ({ page }) => {
await openHomePage(page);
await createDocAndMarkAsTemplate(page, 'Test Template', async () => {
await page.keyboard.type('# Template');
@@ -235,7 +235,7 @@ test('create doc from template via sidebar entrance', async ({ page }) => {
await expect(page.getByText('This is a template doc')).toBeVisible();
});
-test('create template from sidebar template entrance', async ({ page }) => {
+test('create template doc from sidebar template entrance', async ({ page }) => {
await openHomePage(page);
await page.getByTestId('sidebar-template-doc-entrance').click();
await page.getByTestId('template-doc-item-create').click();