From b87c3840f3640d736ff4a61d2517226b438f68a7 Mon Sep 17 00:00:00 2001 From: Chen <99816898+donteatfriedrice@users.noreply.github.com> Date: Wed, 20 Nov 2024 15:06:20 +0800 Subject: [PATCH] chore(core): remove snapshot import export feature flag (#8865) --- .../src/modules/feature-flag/constant.ts | 10 - packages/frontend/apps/android/package.json | 2 +- packages/frontend/apps/ios/package.json | 2 +- packages/frontend/apps/mobile/package.json | 2 +- packages/frontend/component/package.json | 6 +- packages/frontend/core/package.json | 2 +- .../block-suite-header/menu/index.tsx | 12 +- ...se-register-blocksuite-editor-commands.tsx | 17 ++ .../page-list/operation-menu-items/export.tsx | 12 +- .../page-list/operation-menu-items/index.ts | 1 - .../operation-menu-items/snapshot.tsx | 223 ------------------ .../core/src/desktop/dialogs/import/index.tsx | 84 +++++-- .../setting/general-setting/about/index.tsx | 29 +-- .../i18n/src/i18n-completenesses.json | 8 +- packages/frontend/i18n/src/resources/en.json | 3 + .../frontend/i18n/src/resources/zh-Hans.json | 3 + .../frontend/i18n/src/resources/zh-Hant.json | 3 + packages/frontend/track/src/events.ts | 2 +- yarn.lock | 30 +-- 19 files changed, 120 insertions(+), 331 deletions(-) delete mode 100644 packages/frontend/core/src/components/page-list/operation-menu-items/snapshot.tsx diff --git a/packages/common/infra/src/modules/feature-flag/constant.ts b/packages/common/infra/src/modules/feature-flag/constant.ts index 3ef3601bf..07fb240bb 100644 --- a/packages/common/infra/src/modules/feature-flag/constant.ts +++ b/packages/common/infra/src/modules/feature-flag/constant.ts @@ -206,16 +206,6 @@ export const AFFINE_FLAGS = { configurable: false, defaultState: isMobile, }, - enable_snapshot_import_export: { - category: 'affine', - displayName: - 'com.affine.settings.workspace.experimental-features.enable-snapshot-import-export.name', - description: - 'com.affine.settings.workspace.experimental-features.enable-snapshot-import-export.description', - hide: true, - configurable: true, - defaultState: false, - }, } satisfies { [key in string]: FlagInfo }; export type AFFINE_FLAGS = typeof AFFINE_FLAGS; diff --git a/packages/frontend/apps/android/package.json b/packages/frontend/apps/android/package.json index dde5b7632..b21417db8 100644 --- a/packages/frontend/apps/android/package.json +++ b/packages/frontend/apps/android/package.json @@ -14,7 +14,7 @@ "@affine/core": "workspace:*", "@affine/i18n": "workspace:*", "@blocksuite/affine": "0.17.32", - "@blocksuite/icons": "^2.1.69", + "@blocksuite/icons": "^2.1.70", "@capacitor/android": "^6.1.2", "@capacitor/core": "^6.1.2", "@sentry/react": "^8.0.0", diff --git a/packages/frontend/apps/ios/package.json b/packages/frontend/apps/ios/package.json index 5da245eea..ea8042126 100644 --- a/packages/frontend/apps/ios/package.json +++ b/packages/frontend/apps/ios/package.json @@ -16,7 +16,7 @@ "@affine/core": "workspace:*", "@affine/i18n": "workspace:*", "@blocksuite/affine": "0.17.32", - "@blocksuite/icons": "^2.1.69", + "@blocksuite/icons": "^2.1.70", "@capacitor/app": "^6.0.1", "@capacitor/browser": "^6.0.3", "@capacitor/core": "^6.1.2", diff --git a/packages/frontend/apps/mobile/package.json b/packages/frontend/apps/mobile/package.json index 47d74cf1a..e17dd6cb8 100644 --- a/packages/frontend/apps/mobile/package.json +++ b/packages/frontend/apps/mobile/package.json @@ -14,7 +14,7 @@ "@affine/core": "workspace:*", "@affine/i18n": "workspace:*", "@blocksuite/affine": "0.17.32", - "@blocksuite/icons": "^2.1.69", + "@blocksuite/icons": "^2.1.70", "@sentry/react": "^8.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/packages/frontend/component/package.json b/packages/frontend/component/package.json index 939b928aa..e9128d5f3 100644 --- a/packages/frontend/component/package.json +++ b/packages/frontend/component/package.json @@ -14,7 +14,7 @@ }, "peerDependencies": { "@blocksuite/affine": "*", - "@blocksuite/icons": "2.1.67" + "@blocksuite/icons": "2.1.68" }, "dependencies": { "@affine/cli": "workspace:*", @@ -24,7 +24,7 @@ "@affine/i18n": "workspace:*", "@atlaskit/pragmatic-drag-and-drop": "^1.2.1", "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3", - "@blocksuite/icons": "2.1.69", + "@blocksuite/icons": "2.1.70", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", "@radix-ui/react-avatar": "^1.0.4", @@ -64,7 +64,7 @@ }, "devDependencies": { "@blocksuite/affine": "0.17.32", - "@blocksuite/icons": "2.1.69", + "@blocksuite/icons": "2.1.70", "@chromatic-com/storybook": "^3.0.0", "@storybook/addon-essentials": "^8.2.9", "@storybook/addon-interactions": "^8.2.9", diff --git a/packages/frontend/core/package.json b/packages/frontend/core/package.json index 8dc1c77f4..6208e15ef 100644 --- a/packages/frontend/core/package.json +++ b/packages/frontend/core/package.json @@ -17,7 +17,7 @@ "@affine/templates": "workspace:*", "@affine/track": "workspace:*", "@blocksuite/affine": "0.17.32", - "@blocksuite/icons": "2.1.69", + "@blocksuite/icons": "2.1.70", "@capacitor/app": "^6.0.1", "@capacitor/browser": "^6.0.3", "@dnd-kit/core": "^6.1.0", diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx index 7da6cb59e..61f251d2d 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx @@ -11,11 +11,7 @@ import { useBlockSuiteMetaHelper } from '@affine/core/components/hooks/affine/us import { useEnableCloud } from '@affine/core/components/hooks/affine/use-enable-cloud'; import { useExportPage } from '@affine/core/components/hooks/affine/use-export-page'; import { useDocMetaHelper } from '@affine/core/components/hooks/use-block-suite-page-meta'; -import { - Export, - MoveToTrash, - Snapshot, -} from '@affine/core/components/page-list'; +import { Export, MoveToTrash } from '@affine/core/components/page-list'; import { IsFavoriteIcon } from '@affine/core/components/pure/icons'; import { useDetailPageHeaderResponsive } from '@affine/core/desktop/pages/workspace/detail-page/use-header-responsive'; import { WorkspaceDialogService } from '@affine/core/modules/dialogs'; @@ -44,7 +40,6 @@ import { TocIcon, } from '@blocksuite/icons/rc'; import { - FeatureFlagService, useLiveData, useService, useServiceOptional, @@ -84,10 +79,6 @@ export const PageHeaderMenuButton = ({ const primaryMode = useLiveData(editorService.editor.doc.primaryMode$); const workbench = useService(WorkbenchService).workbench; - const featureFlagService = useService(FeatureFlagService); - const enableSnapshotImportExport = useLiveData( - featureFlagService.flags.enable_snapshot_import_export.$ - ); const openInAppService = useServiceOptional(OpenInAppService); const { favorite, toggleFavorite } = useFavorite(pageId); @@ -402,7 +393,6 @@ export const PageHeaderMenuButton = ({ {t['Import']()} - {enableSnapshotImportExport && } : , + label: t['Export to Snapshot'](), + async run() { + track.$.cmdk.editor.export({ + type: 'snapshot', + }); + + exportHandler('snapshot'); + }, + }) + ); + unsubs.push( registerAffineCommand({ id: `editor:${mode}-move-to-trash`, diff --git a/packages/frontend/core/src/components/page-list/operation-menu-items/export.tsx b/packages/frontend/core/src/components/page-list/operation-menu-items/export.tsx index b1250f91e..279e46b64 100644 --- a/packages/frontend/core/src/components/page-list/operation-menu-items/export.tsx +++ b/packages/frontend/core/src/components/page-list/operation-menu-items/export.tsx @@ -6,6 +6,7 @@ import { ExportToHtmlIcon, ExportToMarkdownIcon, ExportToPngIcon, + PageIcon, PrinterIcon, } from '@blocksuite/icons/rc'; import type { ReactNode } from 'react'; @@ -22,7 +23,9 @@ interface ExportMenuItemProps { } interface ExportProps { - exportHandler: (type: 'pdf' | 'html' | 'png' | 'markdown') => void; + exportHandler: ( + type: 'pdf' | 'html' | 'png' | 'markdown' | 'snapshot' + ) => void; pageMode?: 'page' | 'edgeless'; className?: string; } @@ -94,6 +97,13 @@ export const ExportMenuItems = ({ icon={} label={t['Export to Markdown']()} /> + exportHandler('snapshot')} + className={className} + type="snapshot" + icon={} + label={t['Export to Snapshot']()} + /> ); }; diff --git a/packages/frontend/core/src/components/page-list/operation-menu-items/index.ts b/packages/frontend/core/src/components/page-list/operation-menu-items/index.ts index 713386ab9..472153ef7 100644 --- a/packages/frontend/core/src/components/page-list/operation-menu-items/index.ts +++ b/packages/frontend/core/src/components/page-list/operation-menu-items/index.ts @@ -2,4 +2,3 @@ export * from './disable-public-sharing'; export * from './export'; // export * from './MoveTo'; export * from './move-to-trash'; -export * from './snapshot'; diff --git a/packages/frontend/core/src/components/page-list/operation-menu-items/snapshot.tsx b/packages/frontend/core/src/components/page-list/operation-menu-items/snapshot.tsx deleted file mode 100644 index c10238863..000000000 --- a/packages/frontend/core/src/components/page-list/operation-menu-items/snapshot.tsx +++ /dev/null @@ -1,223 +0,0 @@ -import { MenuItem, MenuSeparator, MenuSub, notify } from '@affine/component'; -import { WorkbenchService } from '@affine/core/modules/workbench'; -import { useI18n } from '@affine/i18n'; -import track from '@affine/track'; -import { openFileOrFiles, ZipTransformer } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; -import { ExportIcon, ImportIcon, ToneIcon } from '@blocksuite/icons/rc'; -import { - FeatureFlagService, - useService, - WorkspaceService, -} from '@toeverything/infra'; -import { type ReactNode, useCallback } from 'react'; - -import { useExportPage } from '../../hooks/affine/use-export-page'; -import { useAsyncCallback } from '../../hooks/affine-async-hooks'; -import { transitionStyle } from './index.css'; - -interface SnapshotMenuItemsProps { - snapshotActionHandler: (action: 'import' | 'export' | 'disable') => void; - className?: string; -} - -interface SnapshotMenuItemProps { - onSelect: () => void; - className?: string; - type: T; - icon: ReactNode; - label: string; -} - -interface SnapshotProps { - className?: string; -} - -export function SnapshotMenuItem({ - onSelect, - className, - type, - icon, - label, -}: SnapshotMenuItemProps) { - return ( - - {label} - - ); -} - -export const DisableSnapshotMenuItems = ({ - snapshotActionHandler, - className = transitionStyle, -}: SnapshotMenuItemsProps) => { - const t = useI18n(); - return ( - snapshotActionHandler('disable')} - className={className} - type="disable" - icon={} - label={t['Disable Snapshot']()} - /> - ); -}; - -export const SnapshotMenuItems = ({ - snapshotActionHandler, - className = transitionStyle, -}: SnapshotMenuItemsProps) => { - const t = useI18n(); - return ( - <> - snapshotActionHandler('import')} - className={className} - type="import" - icon={} - label={t['Import']()} - /> - snapshotActionHandler('export')} - className={className} - type="export" - icon={} - label={t['Export']()} - /> - - ); -}; - -export const Snapshot = ({ className }: SnapshotProps) => { - const t = useI18n(); - const workspace = useService(WorkspaceService).workspace; - const docCollection = workspace.docCollection; - const workbench = useService(WorkbenchService).workbench; - const exportHandler = useExportPage(); - const featureFlagService = useService(FeatureFlagService); - - const importSnapshot = useCallback(async () => { - try { - const file = await openFileOrFiles({ acceptType: 'Zip' }); - if (!file) return null; - - track.$.header.snapshot.import({ - type: 'snapshot', - status: 'importing', - }); - - const importedDocs = ( - await ZipTransformer.importDocs(docCollection, file) - ).filter(doc => doc !== undefined); - if (importedDocs.length === 0) { - notify.error({ - title: 'Import Snapshot Failed', - message: 'No valid documents found in the imported file.', - }); - return null; - } - - notify.success({ - title: 'Imported Snapshot Successfully', - message: `Imported ${importedDocs.length} doc(s)`, - }); - track.$.header.snapshot.import({ - type: 'snapshot', - status: 'success', - result: { - docCount: importedDocs.length, - }, - }); - return importedDocs; - } catch (error) { - console.error('Error importing snapshot:', error); - notify.error({ - title: 'Import Snapshot Failed', - message: 'Failed to import snapshot. Please try again.', - }); - track.$.header.snapshot.import({ - type: 'snapshot', - status: 'failed', - error: error instanceof Error ? error.message : undefined, - }); - return null; - } - }, [docCollection]); - - const openImportedDocs = useCallback( - (importedDocs: Doc[]) => { - if (importedDocs.length > 1) { - workbench.openAll(); - } else if (importedDocs[0]?.id) { - workbench.openDoc(importedDocs[0].id); - } - }, - [workbench] - ); - - const handleImportSnapshot = useAsyncCallback(async () => { - const importedDocs = await importSnapshot(); - if (importedDocs) { - openImportedDocs(importedDocs); - track.$.header.docOptions.import(); - track.$.header.actions.createDoc({ - control: 'import', - }); - } - }, [importSnapshot, openImportedDocs]); - - const disableSnapshotActionOption = useCallback(() => { - featureFlagService.flags.enable_snapshot_import_export.set(false); - }, [featureFlagService]); - - const snapshotActionHandler = useCallback( - (action: 'import' | 'export' | 'disable') => { - switch (action) { - case 'import': - return handleImportSnapshot(); - case 'export': - track.$.header.snapshot.export({ - type: 'snapshot', - }); - return exportHandler('snapshot'); - case 'disable': - return disableSnapshotActionOption(); - } - }, - [handleImportSnapshot, exportHandler, disableSnapshotActionOption] - ); - - const items = ( - <> - - - - - ); - - return ( - , - 'data-testid': 'snapshot-menu', - }} - subOptions={{}} - > - {t['Snapshot']()} - - ); -}; diff --git a/packages/frontend/core/src/desktop/dialogs/import/index.tsx b/packages/frontend/core/src/desktop/dialogs/import/index.tsx index 2311061b5..68d6718fc 100644 --- a/packages/frontend/core/src/desktop/dialogs/import/index.tsx +++ b/packages/frontend/core/src/desktop/dialogs/import/index.tsx @@ -8,6 +8,7 @@ import { UrlService } from '@affine/core/modules/url'; import { useI18n } from '@affine/i18n'; import track from '@affine/track'; import { + HtmlTransformer, MarkdownTransformer, NotionHtmlTransformer, openFileOrFiles, @@ -15,24 +16,22 @@ import { } from '@blocksuite/affine/blocks'; import type { DocCollection } from '@blocksuite/affine/store'; import { + ExportToHtmlIcon, ExportToMarkdownIcon, HelpIcon, NotionIcon, + PageIcon, + ZipIcon, } from '@blocksuite/icons/rc'; -import { - FeatureFlagService, - useLiveData, - useService, - WorkspaceService, -} from '@toeverything/infra'; +import { useService, WorkspaceService } from '@toeverything/infra'; import { cssVar } from '@toeverything/theme'; import { cssVarV2 } from '@toeverything/theme/v2'; import { type ReactElement, useCallback, useState } from 'react'; import * as style from './styles.css'; -type ImportType = 'markdown' | 'markdownZip' | 'notion' | 'snapshot'; -type AcceptType = 'Markdown' | 'Zip'; +type ImportType = 'markdown' | 'markdownZip' | 'notion' | 'snapshot' | 'html'; +type AcceptType = 'Markdown' | 'Zip' | 'Html'; type Status = 'idle' | 'importing' | 'success' | 'error'; type ImportResult = { docIds: string[]; @@ -68,14 +67,31 @@ const importOptions = [ key: 'markdownZip', label: 'com.affine.import.markdown-with-media-files', prefixIcon: ( - + ), + suffixIcon: ( + + ), + suffixTooltip: 'com.affine.import.markdown-with-media-files.tooltip', + testId: 'editor-option-menu-import-markdown-with-media', + type: 'markdownZip' as ImportType, + }, + { + key: 'html', + label: 'com.affine.import.html-files', + prefixIcon: ( + ), - testId: 'editor-option-menu-import-markdown-with-media', - type: 'markdownZip' as ImportType, + suffixIcon: ( + + ), + suffixTooltip: 'com.affine.import.html-files.tooltip', + testId: 'editor-option-menu-import-html', + type: 'html' as ImportType, }, { key: 'notion', @@ -88,6 +104,15 @@ const importOptions = [ testId: 'editor-option-menu-import-notion', type: 'notion' as ImportType, }, + { + key: 'snapshot', + label: 'com.affine.import.snapshot', + prefixIcon: ( + + ), + testId: 'editor-option-menu-import-snapshot', + type: 'snapshot' as ImportType, + }, ]; const importConfigs: Record = { @@ -128,6 +153,28 @@ const importConfigs: Record = { }; }, }, + html: { + fileOptions: { acceptType: 'Html', multiple: true }, + importFunction: async (docCollection, files) => { + if (!Array.isArray(files)) { + throw new Error('Expected an array of files for html files import'); + } + const docIds: string[] = []; + for (const file of files) { + const text = await file.text(); + const fileName = file.name.split('.').slice(0, -1).join('.'); + const docId = await HtmlTransformer.importHTMLToDoc({ + collection: docCollection, + html: text, + fileName, + }); + if (docId) docIds.push(docId); + } + return { + docIds, + }; + }, + }, notion: { fileOptions: { acceptType: 'Zip', multiple: false }, importFunction: async (docCollection, file) => { @@ -200,10 +247,6 @@ const ImportOptions = ({ onImport: (type: ImportType) => void; }) => { const t = useI18n(); - const featureFlagService = useService(FeatureFlagService); - const enableSnapshotImportExport = useLiveData( - featureFlagService.flags.enable_snapshot_import_export.$ - ); return ( <> @@ -232,14 +275,6 @@ const ImportOptions = ({ ) )} - {enableSnapshotImportExport && ( -
- {t['Import']()}{' '} - onImport('snapshot')}> - {t['Snapshot']()}. - -
- )}
{t['com.affine.import.modal.tip']()}{' '} { const channel = BUILD_CONFIG.appBuildType; const appIcon = appIconMap[channel]; const appName = appNames[channel]; - const { urlService, featureFlagService } = useServices({ + const { urlService } = useServices({ UrlService, - FeatureFlagService, }); - const enableSnapshotImportExport = useLiveData( - featureFlagService.flags.enable_snapshot_import_export.$ - ); const onSwitchAutoCheck = useCallback( (checked: boolean) => { @@ -65,13 +57,6 @@ export const AboutAffine = () => { [updateSettings] ); - const onSwitchSnapshotImportExport = useCallback( - (checked: boolean) => { - featureFlagService.flags.enable_snapshot_import_export.set(checked); - }, - [featureFlagService] - ); - return ( <> { {t['com.affine.aboutAFFiNE.contact.community']()} - - -
diff --git a/packages/frontend/i18n/src/i18n-completenesses.json b/packages/frontend/i18n/src/i18n-completenesses.json index 556eeb9ab..3ce64b034 100644 --- a/packages/frontend/i18n/src/i18n-completenesses.json +++ b/packages/frontend/i18n/src/i18n-completenesses.json @@ -1,21 +1,21 @@ { - "ar": 76, + "ar": 75, "ca": 5, "da": 6, "de": 28, "el-GR": 0, "en": 100, "es-AR": 14, - "es-CL": 16, + "es-CL": 15, "es": 14, "fr": 67, "hi": 2, "it-IT": 1, "it": 1, "ja": 100, - "ko": 80, + "ko": 79, "pl": 0, - "pt-BR": 87, + "pt-BR": 86, "ru": 74, "sv-SE": 4, "ur": 3, diff --git a/packages/frontend/i18n/src/resources/en.json b/packages/frontend/i18n/src/resources/en.json index 42865d009..00ea9cb88 100644 --- a/packages/frontend/i18n/src/resources/en.json +++ b/packages/frontend/i18n/src/resources/en.json @@ -526,8 +526,11 @@ "com.affine.import-template.dialog.errorLoad": "Failed to load template, please try again.", "com.affine.import_file": "Support Markdown/Notion", "com.affine.import.affine-workspace-data": "AFFiNE workspace data", + "com.affine.import.html-files": "HTML", + "com.affine.import.html-files.tooltip": "This is an experimental feature that is not perfect and may cause your data to be missing after import.", "com.affine.import.markdown-files": "Markdown files (.md)", "com.affine.import.markdown-with-media-files": "Markdown with media files (.zip)", + "com.affine.import.markdown-with-media-files.tooltip": "Please upload a markdown zip file with attachments, experimental function, there may be data loss.", "com.affine.import.modal.tip": "If you'd like to request support for additional file types, feel free to let us know on", "com.affine.import.notion": "Notion", "com.affine.import.notion.tooltip": "Import your Notion data. Supported import formats: HTML with subpages.", diff --git a/packages/frontend/i18n/src/resources/zh-Hans.json b/packages/frontend/i18n/src/resources/zh-Hans.json index 8f848b519..71491885a 100644 --- a/packages/frontend/i18n/src/resources/zh-Hans.json +++ b/packages/frontend/i18n/src/resources/zh-Hans.json @@ -526,8 +526,11 @@ "com.affine.import-template.dialog.errorLoad": "读取模版失败,请重试。", "com.affine.import_file": "支持 Markdown/Notion", "com.affine.import.affine-workspace-data": "AFFiNE 工作区数据", + "com.affine.import.html-files": "HTML", + "com.affine.import.html-files.tooltip": "这是一个实验性功能,可能不完全完美,导入后可能会导致数据丢失。", "com.affine.import.markdown-files": "Markdown 文件 (.md)", "com.affine.import.markdown-with-media-files": "Markdown 文件(带媒体文件) (.zip)", + "com.affine.import.markdown-with-media-files.tooltip": "请上传带有附件的 Markdown 压缩包,这是一个实验性功能,可能不完全完美,导入后可能会导致数据丢失。", "com.affine.import.modal.tip": "如果您希望请求支持其他文件类型,请随时告诉我们", "com.affine.import.notion": "Notion", "com.affine.import.notion.tooltip": "导入您的 Notion 数据。支持导入格式:HTML 带子页面。", diff --git a/packages/frontend/i18n/src/resources/zh-Hant.json b/packages/frontend/i18n/src/resources/zh-Hant.json index 9a89506bd..01c718c77 100644 --- a/packages/frontend/i18n/src/resources/zh-Hant.json +++ b/packages/frontend/i18n/src/resources/zh-Hant.json @@ -526,8 +526,11 @@ "com.affine.import-template.dialog.errorLoad": "加載模板失敗,請重試。", "com.affine.import_file": "支援 Markdown/Notion", "com.affine.import.affine-workspace-data": "AFFiNE 工作區數據", + "com.affine.import.html-files": "HTML", + "com.affine.import.html-files.tooltip": "這是一個實驗性功能,可能不完全完美,導入後可能會導致數據丟失。", "com.affine.import.markdown-files": "Markdown 文件 (.md)", "com.affine.import.markdown-with-media-files": "Markdown 文件(帶媒體文件) (.zip)", + "com.affine.import.markdown-with-media-files.tooltip": "請上傳帶有附件的 Markdown 壓縮包,這是一個實驗性功能,可能不完全完美,導入後可能會導致數據丟失。", "com.affine.import.modal.tip": "如果您希望請求支持其他文件類型,請隨時告訴我們", "com.affine.import.notion": "Notion", "com.affine.import.notion.tooltip": "導入您的 Notion 數據。支持導入格式:HTML 帶子頁面。", diff --git a/packages/frontend/track/src/events.ts b/packages/frontend/track/src/events.ts index 9b963bb49..61e092e44 100644 --- a/packages/frontend/track/src/events.ts +++ b/packages/frontend/track/src/events.ts @@ -236,7 +236,7 @@ const PageEvents = { $: ['open', 'close', 'switchPageMode', 'viewPlans'], }, importModal: { - $: ['open', 'import'], + $: ['open', 'import', 'createDoc'], }, paywall: { storage: ['viewPlans'], diff --git a/yarn.lock b/yarn.lock index f1b605df5..7d39fed4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -223,7 +223,7 @@ __metadata: "@affine/core": "workspace:*" "@affine/i18n": "workspace:*" "@blocksuite/affine": "npm:0.17.32" - "@blocksuite/icons": "npm:^2.1.69" + "@blocksuite/icons": "npm:^2.1.70" "@capacitor/android": "npm:^6.1.2" "@capacitor/cli": "npm:^6.1.2" "@capacitor/core": "npm:^6.1.2" @@ -327,7 +327,7 @@ __metadata: "@atlaskit/pragmatic-drag-and-drop": "npm:^1.2.1" "@atlaskit/pragmatic-drag-and-drop-hitbox": "npm:^1.0.3" "@blocksuite/affine": "npm:0.17.32" - "@blocksuite/icons": "npm:2.1.69" + "@blocksuite/icons": "npm:2.1.70" "@chromatic-com/storybook": "npm:^3.0.0" "@emotion/react": "npm:^11.11.4" "@emotion/styled": "npm:^11.11.5" @@ -382,7 +382,7 @@ __metadata: zod: "npm:^3.22.4" peerDependencies: "@blocksuite/affine": "*" - "@blocksuite/icons": 2.1.67 + "@blocksuite/icons": 2.1.68 languageName: unknown linkType: soft @@ -410,7 +410,7 @@ __metadata: "@affine/templates": "workspace:*" "@affine/track": "workspace:*" "@blocksuite/affine": "npm:0.17.32" - "@blocksuite/icons": "npm:2.1.69" + "@blocksuite/icons": "npm:2.1.70" "@capacitor/app": "npm:^6.0.1" "@capacitor/browser": "npm:^6.0.3" "@dnd-kit/core": "npm:^6.1.0" @@ -622,7 +622,7 @@ __metadata: "@affine/core": "workspace:*" "@affine/i18n": "workspace:*" "@blocksuite/affine": "npm:0.17.32" - "@blocksuite/icons": "npm:^2.1.69" + "@blocksuite/icons": "npm:^2.1.70" "@capacitor/app": "npm:^6.0.1" "@capacitor/browser": "npm:^6.0.3" "@capacitor/cli": "npm:^6.1.2" @@ -648,7 +648,7 @@ __metadata: "@affine/core": "workspace:*" "@affine/i18n": "workspace:*" "@blocksuite/affine": "npm:0.17.32" - "@blocksuite/icons": "npm:^2.1.69" + "@blocksuite/icons": "npm:^2.1.70" "@sentry/react": "npm:^8.0.0" "@types/react": "npm:^18.2.75" "@types/react-dom": "npm:^18.2.24" @@ -2815,23 +2815,7 @@ __metadata: languageName: node linkType: hard -"@blocksuite/icons@npm:2.1.69": - version: 2.1.69 - resolution: "@blocksuite/icons@npm:2.1.69" - peerDependencies: - "@types/react": ^18.0.25 - lit: ^3.1.1 - react: ^18.2.0 - peerDependenciesMeta: - lit: - optional: true - react: - optional: true - checksum: 10/c2d8e7d72bb950fbaa6de8fd6c67d354932c32c72932c9c6f1132fbde6f2fb865a767ab17035ee3c83fe779b05b09a0d71506c623b17e5f7d1eb7c4bce61df02 - languageName: node - linkType: hard - -"@blocksuite/icons@npm:^2.1.68, @blocksuite/icons@npm:^2.1.69": +"@blocksuite/icons@npm:2.1.70, @blocksuite/icons@npm:^2.1.68, @blocksuite/icons@npm:^2.1.70": version: 2.1.70 resolution: "@blocksuite/icons@npm:2.1.70" peerDependencies: