diff --git a/libs/components/layout/src/settings-sidebar/Settings/use-setting-flags.ts b/libs/components/layout/src/settings-sidebar/Settings/use-setting-flags.ts index 2cab66e792..e0a7fb697c 100644 --- a/libs/components/layout/src/settings-sidebar/Settings/use-setting-flags.ts +++ b/libs/components/layout/src/settings-sidebar/Settings/use-setting-flags.ts @@ -7,6 +7,7 @@ export const useSettingFlags = () => { const booleanExportHtml = useFlag('BooleanExportHtml', false); const booleanExportPdf = useFlag('BooleanExportPdf', false); const booleanExportMarkdown = useFlag('BooleanExportMarkdown', false); + const booleanClearWorkspace = useFlag('BooleanClearWorkspace', true); return { booleanFullWidthChecked, @@ -15,6 +16,7 @@ export const useSettingFlags = () => { booleanExportHtml, booleanExportPdf, booleanExportMarkdown, + booleanClearWorkspace, }; }; diff --git a/libs/components/layout/src/settings-sidebar/Settings/use-settings.ts b/libs/components/layout/src/settings-sidebar/Settings/use-settings.ts index b40b723978..250511822d 100644 --- a/libs/components/layout/src/settings-sidebar/Settings/use-settings.ts +++ b/libs/components/layout/src/settings-sidebar/Settings/use-settings.ts @@ -10,6 +10,7 @@ import { exportWorkspace, useWorkspaceAndPageId, useReadingMode, + clearWorkspace, } from './util'; interface BaseSettingItem { @@ -134,6 +135,12 @@ export const useSettings = (): SettingItem[] => { onClick: () => exportWorkspace(), flag: 'booleanExportWorkspace', }, + { + type: 'button', + name: 'Clear Workspace', + onClick: () => clearWorkspace(workspaceId), + flag: 'booleanClearWorkspace', + }, ]; return filterSettings(settings, settingFlags); diff --git a/libs/components/layout/src/settings-sidebar/Settings/util/handle-export.ts b/libs/components/layout/src/settings-sidebar/Settings/util/handle-export.ts index 37888237bc..a7c779f2b0 100644 --- a/libs/components/layout/src/settings-sidebar/Settings/util/handle-export.ts +++ b/libs/components/layout/src/settings-sidebar/Settings/util/handle-export.ts @@ -40,3 +40,12 @@ export const exportMarkdown = async ({ const htmlContent = await clipboardParse.page2html(); fileExporter.exportMarkdown(title, htmlContent); }; + +export const clearWorkspace = async ({ + workspaceId, + rootBlockId, + title, +}: ExportHandlerProps) => { + //@ts-ignore + client.inspector().clear(); +}; diff --git a/libs/components/layout/src/settings-sidebar/Settings/util/index.ts b/libs/components/layout/src/settings-sidebar/Settings/util/index.ts index 3b947bdd90..0068aad56b 100644 --- a/libs/components/layout/src/settings-sidebar/Settings/util/index.ts +++ b/libs/components/layout/src/settings-sidebar/Settings/util/index.ts @@ -1,6 +1,10 @@ export { duplicatePage } from './duplicate-page'; export { exportHtml, exportMarkdown } from './handle-export'; export { getPageTitle, usePageLastUpdated } from './get-page-info'; -export { importWorkspace, exportWorkspace } from './inspector-workspace'; +export { + importWorkspace, + exportWorkspace, + clearWorkspace, +} from './inspector-workspace'; export { useWorkspaceAndPageId } from './use-workspace-page'; export { useReadingMode } from './use-reading-mode';