From 9d74ea296c72e96c2805264e5d50ac6299d35dba Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 18 May 2022 19:39:39 +0200 Subject: [PATCH] Refactor into using a map for icon classes --- src/js/easymde.js | 78 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 25 deletions(-) diff --git a/src/js/easymde.js b/src/js/easymde.js index b380f90..204b198 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -1439,62 +1439,90 @@ function wordCount(data) { return count; } +var iconClassMap = { + toggleBold: 'fa fa-bold', + toggleItalic: 'fa fa-italic', + toggleStrikethrough: 'fa fa-strikethrough', + toggleHeading: 'fa fa-header fa-heading', + toggleHeadingSmaller: 'fa fa-header fa-heading header-smaller', + toggleHeadingBigger: 'fa fa-header fa-heading header-bigger', + toggleHeading1: 'fa fa-header fa-heading header-1', + toggleHeading2: 'fa fa-header fa-heading header-2', + toggleHeading3: 'fa fa-header fa-heading header-3', + toggleCodeBlock: 'fa fa-code', + toggleBlockquote: 'fa fa-quote-left', + toggleOrderedList: 'fa fa-list-ol', + toggleUnorderedList: 'fa fa-list-ul', + cleanBlock: 'fa fa-eraser', + drawLink: 'fa fa-link', + drawImage: 'fa fa-image', + drawUploadedImage: 'fa fa-image', + drawTable: 'fa fa-table', + drawHorizontalRule: 'fa fa-minus', + togglePreview: 'fa fa-eye', + toggleSideBySide: 'fa fa-columns', + toggleFullScreen: 'fa fa-arrows-alt', + guide: 'fa fa-question-circle', + undo: 'fa fa-undo', + redo: 'fa fa-repeat fa-redo' +}; + var toolbarBuiltInButtons = { 'bold': { name: 'bold', action: toggleBold, - className: 'fa fa-bold', + className: iconClassMap.toggleBold, title: 'Bold', default: true, }, 'italic': { name: 'italic', action: toggleItalic, - className: 'fa fa-italic', + className: iconClassMap.toggleItalic, title: 'Italic', default: true, }, 'strikethrough': { name: 'strikethrough', action: toggleStrikethrough, - className: 'fa fa-strikethrough', + className: iconClassMap.toggleStrikethrough, title: 'Strikethrough', }, 'heading': { name: 'heading', action: toggleHeadingSmaller, - className: 'fa fa-header fa-heading', + className: iconClassMap.toggleHeading, title: 'Heading', default: true, }, 'heading-smaller': { name: 'heading-smaller', action: toggleHeadingSmaller, - className: 'fa fa-header fa-heading header-smaller', + className: iconClassMap.toggleHeadingSmaller, title: 'Smaller Heading', }, 'heading-bigger': { name: 'heading-bigger', action: toggleHeadingBigger, - className: 'fa fa-header fa-heading header-bigger', + className: iconClassMap.toggleHeadingBigger, title: 'Bigger Heading', }, 'heading-1': { name: 'heading-1', action: toggleHeading1, - className: 'fa fa-header fa-heading header-1', + className: iconClassMap.toggleHeading1, title: 'Big Heading', }, 'heading-2': { name: 'heading-2', action: toggleHeading2, - className: 'fa fa-header fa-heading header-2', + className: iconClassMap.toggleHeading2, title: 'Medium Heading', }, 'heading-3': { name: 'heading-3', action: toggleHeading3, - className: 'fa fa-header fa-heading header-3', + className: iconClassMap.toggleHeading3, title: 'Small Heading', }, 'separator-1': { @@ -1503,34 +1531,34 @@ var toolbarBuiltInButtons = { 'code': { name: 'code', action: toggleCodeBlock, - className: 'fa fa-code', + className: iconClassMap.toggleCodeBlock, title: 'Code', }, 'quote': { name: 'quote', action: toggleBlockquote, - className: 'fa fa-quote-left', + className: iconClassMap.toggleBlockquote, title: 'Quote', default: true, }, 'unordered-list': { name: 'unordered-list', action: toggleUnorderedList, - className: 'fa fa-list-ul', + className: iconClassMap.toggleUnorderedList, title: 'Generic List', default: true, }, 'ordered-list': { name: 'ordered-list', action: toggleOrderedList, - className: 'fa fa-list-ol', + className: iconClassMap.toggleOrderedList, title: 'Numbered List', default: true, }, 'clean-block': { name: 'clean-block', action: cleanBlock, - className: 'fa fa-eraser', + className: iconClassMap.cleanBlock, title: 'Clean block', }, 'separator-2': { @@ -1539,33 +1567,33 @@ var toolbarBuiltInButtons = { 'link': { name: 'link', action: drawLink, - className: 'fa fa-link', + className: iconClassMap.drawLink, title: 'Create Link', default: true, }, 'image': { name: 'image', action: drawImage, - className: 'fa fa-image', + className: iconClassMap.drawImage, title: 'Insert Image', default: true, }, 'upload-image': { name: 'upload-image', action: drawUploadedImage, - className: 'fa fa-image', + className: iconClassMap.drawUploadedImage, title: 'Import an image', }, 'table': { name: 'table', action: drawTable, - className: 'fa fa-table', + className: iconClassMap.drawTable, title: 'Insert Table', }, 'horizontal-rule': { name: 'horizontal-rule', action: drawHorizontalRule, - className: 'fa fa-minus', + className: iconClassMap.drawHorizontalRule, title: 'Insert Horizontal Line', }, 'separator-3': { @@ -1574,7 +1602,7 @@ var toolbarBuiltInButtons = { 'preview': { name: 'preview', action: togglePreview, - className: 'fa fa-eye', + className: iconClassMap.togglePreview, noDisable: true, title: 'Toggle Preview', default: true, @@ -1582,7 +1610,7 @@ var toolbarBuiltInButtons = { 'side-by-side': { name: 'side-by-side', action: toggleSideBySide, - className: 'fa fa-columns', + className: iconClassMap.toggleSideBySide, noDisable: true, noMobile: true, title: 'Toggle Side by Side', @@ -1591,7 +1619,7 @@ var toolbarBuiltInButtons = { 'fullscreen': { name: 'fullscreen', action: toggleFullScreen, - className: 'fa fa-arrows-alt', + className: iconClassMap.toggleFullScreen, noDisable: true, noMobile: true, title: 'Toggle Fullscreen', @@ -1603,7 +1631,7 @@ var toolbarBuiltInButtons = { 'guide': { name: 'guide', action: 'https://www.markdownguide.org/basic-syntax/', - className: 'fa fa-question-circle', + className: iconClassMap.guide, noDisable: true, title: 'Markdown Guide', default: true, @@ -1614,14 +1642,14 @@ var toolbarBuiltInButtons = { 'undo': { name: 'undo', action: undo, - className: 'fa fa-undo', + className: iconClassMap.undo, noDisable: true, title: 'Undo', }, 'redo': { name: 'redo', action: redo, - className: 'fa fa-repeat fa-redo', + className: iconClassMap.redo, noDisable: true, title: 'Redo', },