From 59c5ecd4fc165c5e77771d68c8eb095f4e79e112 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Mon, 5 Jul 2021 16:19:03 +0200 Subject: [PATCH 1/4] Use Components.svelte instead of exporting from EditorToolbar.svelte --- ts/editor/Components.svelte | 22 ++++++++++++++++++++++ ts/editor/EditorToolbar.svelte | 6 +----- ts/editor/index.ts | 1 + 3 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 ts/editor/Components.svelte diff --git a/ts/editor/Components.svelte b/ts/editor/Components.svelte new file mode 100644 index 000000000..92465eefa --- /dev/null +++ b/ts/editor/Components.svelte @@ -0,0 +1,22 @@ + + diff --git a/ts/editor/EditorToolbar.svelte b/ts/editor/EditorToolbar.svelte index 8056001e7..bc6afd477 100644 --- a/ts/editor/EditorToolbar.svelte +++ b/ts/editor/EditorToolbar.svelte @@ -15,17 +15,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html resetAllState(false); } - /* Export components */ + /* Our dynamic components */ import AddonButtons from "./AddonButtons.svelte"; import PreviewButton from "./PreviewButton.svelte"; - import LabelButton from "components/LabelButton.svelte"; - import IconButton from "components/IconButton.svelte"; export const editorToolbar = { AddonButtons, PreviewButton, - LabelButton, - IconButton, }; diff --git a/ts/editor/index.ts b/ts/editor/index.ts index af7341f5f..57ac34154 100644 --- a/ts/editor/index.ts +++ b/ts/editor/index.ts @@ -26,6 +26,7 @@ export { setNoteId, getNoteId } from "./note-id"; export { saveNow } from "./change-timer"; export { wrap, wrapIntoText } from "./wrap"; export { editorToolbar } from "./toolbar"; +export { components } from "./Components.svelte"; declare global { interface Selection { From 9cc0d0a01c4b9bb8d1877c6e65c088761c44f2e1 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Mon, 5 Jul 2021 17:17:58 +0200 Subject: [PATCH 2/4] Fix issues with sometimes cause assignment of wrong position value --- ts/components/ButtonGroup.svelte | 22 ++++++++++++---------- ts/components/registration.ts | 7 +++++-- ts/editor/Components.svelte | 3 ++- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/ts/components/ButtonGroup.svelte b/ts/components/ButtonGroup.svelte index 53d834d30..6e2ef5989 100644 --- a/ts/components/ButtonGroup.svelte +++ b/ts/components/ButtonGroup.svelte @@ -41,15 +41,17 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html makeInterface(makeRegistration); $: for (const [index, item] of $items.entries()) { - if ($items.length === 1) { - item.position.set(ButtonPosition.Standalone); - } else if (index === 0) { - item.position.set(ButtonPosition.Leftmost); - } else if (index === $items.length - 1) { - item.position.set(ButtonPosition.Rightmost); - } else { - item.position.set(ButtonPosition.Center); - } + item.position.update(() => { + if ($items.length === 1) { + return ButtonPosition.Standalone; + } else if (index === 0) { + return ButtonPosition.Leftmost; + } else if (index === $items.length - 1) { + return ButtonPosition.Rightmost; + } else { + return ButtonPosition.Center; + } + }); } setContext(buttonGroupKey, registerComponent); @@ -99,7 +101,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html role="group" > - {#each $dynamicItems as item} + {#each $dynamicItems as item (item[0].id)} diff --git a/ts/components/registration.ts b/ts/components/registration.ts index 5b03b5f02..0ee6fa226 100644 --- a/ts/components/registration.ts +++ b/ts/components/registration.ts @@ -50,8 +50,11 @@ export function makeInterface( index: number = registrations.length, registration = makeRegistration() ): T { - registrations.splice(index, 0, registration); - items.set(registrations); + items.update((registrations) => { + registrations.splice(index, 0, registration); + return registrations; + }); + return registration; } diff --git a/ts/editor/Components.svelte b/ts/editor/Components.svelte index 92465eefa..c324f1255 100644 --- a/ts/editor/Components.svelte +++ b/ts/editor/Components.svelte @@ -10,6 +10,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import WithState from "components/WithState.svelte"; import * as contextKeys from "components/context-keys"; + import * as editorContextKeys from "./context-keys"; export const components = { IconButton, @@ -17,6 +18,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html WithShortcut, WithContext, WithState, - contextKeys, + contextKeys: { ...contextKeys, ...editorContextKeys }, }; From adfe6597a59658564e6f2d757e39d0e6df4a63da Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Mon, 5 Jul 2021 18:15:03 +0200 Subject: [PATCH 3/4] disabledKey => fieldFocusedKey --- ts/components/IconButton.svelte | 1 - ts/components/LabelButton.svelte | 10 +++------- ts/components/SelectButton.svelte | 10 +++------- ts/components/context-keys.ts | 1 - ts/editor/ClozeButton.svelte | 26 +++++++++++--------------- ts/editor/NoteTypeButtons.svelte | 2 -- ts/editor/OnlyEditable.svelte | 7 +++---- ts/editor/PreviewButton.svelte | 1 - ts/editor/TemplateButtons.svelte | 27 ++++++++++++--------------- ts/editor/codable.ts | 4 ++-- ts/editor/context-keys.ts | 1 + ts/editor/editable.ts | 4 ++-- ts/editor/focus-handlers.ts | 6 +++--- ts/editor/index.ts | 6 +++--- ts/editor/toolbar.ts | 26 +++++--------------------- 15 files changed, 48 insertions(+), 84 deletions(-) diff --git a/ts/components/IconButton.svelte b/ts/components/IconButton.svelte index d64bdded0..300a551eb 100644 --- a/ts/components/IconButton.svelte +++ b/ts/components/IconButton.svelte @@ -14,7 +14,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html export let tooltip: string | undefined = undefined; export let active = false; export let disabled = false; - export const disables = false; /* unused */ export let tabbable = false; export let iconSize: number = 75; diff --git a/ts/components/LabelButton.svelte b/ts/components/LabelButton.svelte index 2a7326d68..3a26df785 100644 --- a/ts/components/LabelButton.svelte +++ b/ts/components/LabelButton.svelte @@ -3,9 +3,8 @@ Copyright: Ankitects Pty Ltd and contributors License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html --> - - - - {@html ellipseIcon} - - - + + + {@html ellipseIcon} + + diff --git a/ts/editor/NoteTypeButtons.svelte b/ts/editor/NoteTypeButtons.svelte index 4017464bd..ce4f6fc70 100644 --- a/ts/editor/NoteTypeButtons.svelte +++ b/ts/editor/NoteTypeButtons.svelte @@ -17,7 +17,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html bridgeCommand("fields")} > @@ -28,7 +27,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html bridgeCommand("cards")} on:mount={createShortcut} diff --git a/ts/editor/OnlyEditable.svelte b/ts/editor/OnlyEditable.svelte index 1dac48d73..25d08beb7 100644 --- a/ts/editor/OnlyEditable.svelte +++ b/ts/editor/OnlyEditable.svelte @@ -4,12 +4,11 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html --> - + - + diff --git a/ts/editor/PreviewButton.svelte b/ts/editor/PreviewButton.svelte index 6f1f0a198..f5edfa4e0 100644 --- a/ts/editor/PreviewButton.svelte +++ b/ts/editor/PreviewButton.svelte @@ -13,7 +13,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html bridgeCommand("preview")} on:mount={createShortcut} > diff --git a/ts/editor/TemplateButtons.svelte b/ts/editor/TemplateButtons.svelte index 693a7b4b7..245e41a13 100644 --- a/ts/editor/TemplateButtons.svelte +++ b/ts/editor/TemplateButtons.svelte @@ -5,8 +5,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html