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': {