From ab50ca9bbd84043b3895df66e7b2f2e3c6d030bf Mon Sep 17 00:00:00 2001 From: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com> Date: Thu, 16 Mar 2023 04:12:56 -0700 Subject: [PATCH] Mobile: Add setting to enable/disable the markdown toolbar (#7929) --- .../components/NoteEditor/NoteEditor.tsx | 27 ++++++++++--------- .../app-mobile/components/screens/Note.tsx | 2 ++ packages/lib/models/Setting.ts | 11 ++++++++ 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/packages/app-mobile/components/NoteEditor/NoteEditor.tsx b/packages/app-mobile/components/NoteEditor/NoteEditor.tsx index 4779a5b465..209270f156 100644 --- a/packages/app-mobile/components/NoteEditor/NoteEditor.tsx +++ b/packages/app-mobile/components/NoteEditor/NoteEditor.tsx @@ -30,6 +30,7 @@ interface Props { initialSelection?: Selection; style: ViewStyle; contentStyle?: ViewStyle; + toolbarEnabled: boolean; onChange: ChangeEventHandler; onSelectionChange: SelectionChangeEventHandler; @@ -364,6 +365,19 @@ function NoteEditor(props: Props, ref: any) { console.error('NoteEditor: webview error'); }, []); + const toolbar = ; + // - `scrollEnabled` prevents iOS from scrolling the document (has no effect on Android) // when an editable region (e.g. a the full-screen NoteEditor) is focused. return ( @@ -401,18 +415,7 @@ function NoteEditor(props: Props, ref: any) { searchState={searchState} /> - + {props.toolbarEnabled ? toolbar : null} ); } diff --git a/packages/app-mobile/components/screens/Note.tsx b/packages/app-mobile/components/screens/Note.tsx index bf16e9fb14..7babfd6f41 100644 --- a/packages/app-mobile/components/screens/Note.tsx +++ b/packages/app-mobile/components/screens/Note.tsx @@ -1118,6 +1118,7 @@ class NoteScreenComponent extends BaseScreenComponent { bodyComponent = { themeId: state.settings.theme, editorFont: [state.settings['style.editor.fontFamily']], editorFontSize: state.settings['style.editor.fontSize'], + toolbarEnabled: state.settings['editor.mobile.toolbarEnabled'], ftsEnabled: state.settings['db.ftsEnabled'], sharedData: state.sharedData, showSideMenu: state.showSideMenu, diff --git a/packages/lib/models/Setting.ts b/packages/lib/models/Setting.ts index 34e125d248..740188131d 100644 --- a/packages/lib/models/Setting.ts +++ b/packages/lib/models/Setting.ts @@ -1050,6 +1050,17 @@ class Setting extends BaseModel { isGlobal: true, }, + 'editor.mobile.toolbarEnabled': { + value: true, + type: SettingItemType.Bool, + section: 'note', + public: true, + appTypes: [AppType.Mobile], + label: () => _('Enable the Markdown toolbar'), + storage: SettingStorage.File, + isGlobal: true, + }, + // Works around a bug in which additional space is visible beneath the toolbar on some devices. // See https://github.com/laurent22/joplin/pull/6823 'editor.mobile.removeSpaceBelowToolbar': {