From e2e3cd2bbd41b368e72d16346a171ccd9ef0f139 Mon Sep 17 00:00:00 2001 From: rajat-ht Date: Fri, 23 May 2025 16:30:59 +0530 Subject: [PATCH] chore: code refactor --- .../components/EditorSelectionModal.vue | 158 ++++++------------ 1 file changed, 54 insertions(+), 104 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue index 84c49d35e..8ef65549e 100644 --- a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue +++ b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue @@ -6,97 +6,55 @@ interface Feature { featureName: string; } -const featureColumns: Feature[][] = [ - [ - { - iconUrl: '/icons/icon-public.svg', - featureName: 'Diagram stored in URL', - }, - { - iconUrl: '/icons/icon-terminal.svg', - featureName: 'Code editor', - }, - { - iconUrl: '/icons/icon-whiteboard.svg', - featureName: 'Whiteboard', - }, - ], - [ - { - iconUrl: '/icons/icon-folder.svg', - featureName: 'Storage', - }, - { - iconUrl: '/icons/icon-terminal.svg', - featureName: 'Code editor', - }, - { - iconUrl: '/icons/icon-ai-diagram.svg', - featureName: 'AI diagram generator', - }, - { - iconUrl: '/icons/icon-whiteboard.svg', - featureName: 'Whiteboard', - }, - { - iconUrl: '/icons/icon-group.svg', - featureName: 'Teams', - }, - { - iconUrl: '/icons/icon-groups.svg', - featureName: 'Multi-user editing', - }, - { - iconUrl: '/icons/icon-ai-repair.svg', - featureName: 'AI diagram repair', - }, - { - iconUrl: '/icons/icon-version-history.svg', - featureName: 'Version history', - }, - { - iconUrl: '/icons/icon-comment.svg', - featureName: 'Comments', - }, - { - iconUrl: '/icons/icon-presentation.svg', - featureName: 'Presentations', - }, - { - iconUrl: '/icons/icon-plugins.svg', - featureName: 'Advanced Plugins', - }, - ], - [ - { - iconUrl: '/icons/icon-public.svg', - featureName: 'Diagram stored in URL', - }, - { - iconUrl: '/icons/icon-terminal.svg', - featureName: 'Code editor', - }, - { - iconUrl: '/icons/icon-open-source.svg', - featureName: 'Open source', - }, - { - iconUrl: '/icons/icon-version-history.svg', - featureName: 'Version history', - }, - ], -]; +interface EditorColumn { + title: string; + description: string; + redirectUrl: string; + features: Feature[]; +} -const columnTitles = ['Playground', 'Free', 'Open Source']; -const columnDescriptions = [ - 'Basic features, no login', - 'Advanced features, free account', - 'Code only, no login', -]; -const redirectUrl = [ - 'https://www.mermaidchart.com/play?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=playground', - 'https://www.mermaidchart.com/app/sign-up?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=mermaid_chart', - 'https://mermaid.live/edit', +const editorColumns: EditorColumn[] = [ + { + title: 'Playground', + description: 'Basic features, no login', + redirectUrl: + 'https://www.mermaidchart.com/play?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=playground', + features: [ + { iconUrl: '/icons/icon-public.svg', featureName: 'Diagram stored in URL' }, + { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, + { iconUrl: '/icons/icon-whiteboard.svg', featureName: 'Whiteboard' }, + ], + }, + { + title: 'Free', + description: 'Advanced features, free account', + redirectUrl: + 'https://www.mermaidchart.com/app/sign-up?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=mermaid_chart', + features: [ + { iconUrl: '/icons/icon-folder.svg', featureName: 'Storage' }, + { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, + { iconUrl: '/icons/icon-ai-diagram.svg', featureName: 'AI diagram generator' }, + { iconUrl: '/icons/icon-whiteboard.svg', featureName: 'Whiteboard' }, + { iconUrl: '/icons/icon-group.svg', featureName: 'Teams' }, + { iconUrl: '/icons/icon-groups.svg', featureName: 'Multi-user editing' }, + { iconUrl: '/icons/icon-ai-repair.svg', featureName: 'AI diagram repair' }, + { iconUrl: '/icons/icon-version-history.svg', featureName: 'Version history' }, + { iconUrl: '/icons/icon-comment.svg', featureName: 'Comments' }, + { iconUrl: '/icons/icon-presentation.svg', featureName: 'Presentations' }, + { iconUrl: '/icons/icon-plugins.svg', featureName: 'Advanced Plugins' }, + ], + }, + { + title: 'Open Source', + description: 'Code only, no login', + redirectUrl: 'https://mermaid.live/edit', + features: [ + { iconUrl: '/icons/icon-public.svg', featureName: 'Diagram stored in URL' }, + { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, + { iconUrl: '/icons/icon-open-source.svg', featureName: 'Open source' }, + { iconUrl: '/icons/icon-version-history.svg', featureName: 'Version history' }, + ], + }, ]; const isVisible = ref(false); @@ -129,7 +87,7 @@ onUnmounted(() => { >
{

- {{ columnTitles[index] }} + {{ column.title }}

- {{ columnDescriptions[index] }} + {{ column.description }}

Start free -
+
- -