diff --git a/qt/aqt/browser/browser.py b/qt/aqt/browser/browser.py
index 260746514..11488dd03 100644
--- a/qt/aqt/browser/browser.py
+++ b/qt/aqt/browser/browser.py
@@ -601,6 +601,7 @@ class Browser(QMainWindow):
def add_preview_button(editor: Editor) -> None:
editor._links["preview"] = lambda _editor: self.onTogglePreview()
+ gui_hooks.editor_did_init.remove(add_preview_button)
gui_hooks.editor_did_init.append(add_preview_button)
self.editor = aqt.editor.Editor(
@@ -609,7 +610,6 @@ class Browser(QMainWindow):
self,
editor_mode=aqt.editor.EditorMode.BROWSER,
)
- gui_hooks.editor_did_init.remove(add_preview_button)
@ensure_editor_saved
def on_all_or_selected_rows_changed(self) -> None:
diff --git a/ts/routes/editor/BrowserEditor.svelte b/ts/routes/editor/BrowserEditor.svelte
deleted file mode 100644
index 84aef7f99..000000000
--- a/ts/routes/editor/BrowserEditor.svelte
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/ts/routes/editor/NoteCreator.svelte b/ts/routes/editor/NoteCreator.svelte
deleted file mode 100644
index f4c205757..000000000
--- a/ts/routes/editor/NoteCreator.svelte
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/ts/routes/editor/NoteEditor.svelte b/ts/routes/editor/NoteEditor.svelte
index 027ad2e35..68f91f49e 100644
--- a/ts/routes/editor/NoteEditor.svelte
+++ b/ts/routes/editor/NoteEditor.svelte
@@ -13,6 +13,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import FieldState from "./FieldState.svelte";
import LabelContainer from "./LabelContainer.svelte";
import LabelName from "./LabelName.svelte";
+ import type { EditorMode } from "./types";
export interface NoteEditorAPI {
fields: EditorFieldAPI[];
@@ -188,6 +189,12 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
fonts = fs;
}
+ let stickies: boolean[] = [];
+
+ function setSticky(stckies: boolean[]): void {
+ stickies = stckies;
+ }
+
export function focusField(index: number | null): void {
tick().then(() => {
if (typeof index === "number") {
@@ -432,6 +439,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
} from "../image-occlusion/store";
import CollapseLabel from "./CollapseLabel.svelte";
import * as oldEditorAdapter from "./old-editor-adapter";
+ import StickyBadge from "./StickyBadge.svelte";
+ import ButtonGroupItem from "$lib/components/ButtonGroupItem.svelte";
+ import PreviewButton from "./PreviewButton.svelte";
$: isIOImageLoaded = false;
$: ioImageLoadedStore.set(isIOImageLoaded);
@@ -667,6 +677,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
setIsImageOcclusion,
setupMaskEditor,
saveOcclusions,
+ setSticky,
...oldEditorAdapter,
});
@@ -701,19 +712,32 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
setupLifecycleHooks(api);
$: tagAmount = $tags.length;
+
+ let noteEditor: HTMLDivElement;
+
+ export let uiResolve: (api: NoteEditorAPI) => void;
+ export let mode: EditorMode;
+
+ $: if (noteEditor) {
+ uiResolve(api as NoteEditorAPI);
+ console.log("svelte editor mode", mode);
+ }
-
+
-
+
+ {#if mode === "browse"}
+
+
+
+ {/if}
+
{#if hint}
@@ -795,13 +819,14 @@ the AddCards dialog) should be implemented in the user of this component.
{#if cols[index] === "dupe"}
{/if}
-
+ {#if mode === "add"}
+
+ {/if}
{#if plainTextDefaults[index]}
-
-
-
diff --git a/ts/routes/editor/base.ts b/ts/routes/editor/base.ts
index bfc4a9183..884b1c8a3 100644
--- a/ts/routes/editor/base.ts
+++ b/ts/routes/editor/base.ts
@@ -19,10 +19,7 @@ import LabelButton from "$lib/components/LabelButton.svelte";
import WithContext from "$lib/components/WithContext.svelte";
import WithState from "$lib/components/WithState.svelte";
-import BrowserEditor from "./BrowserEditor.svelte";
-import NoteCreator from "./NoteCreator.svelte";
-import * as editorContextKeys from "./NoteEditor.svelte";
-import ReviewerEditor from "./ReviewerEditor.svelte";
+import NoteEditor, * as editorContextKeys from "./NoteEditor.svelte";
declare global {
interface Selection {
@@ -56,33 +53,11 @@ export const components = {
export { editorToolbar } from "./editor-toolbar";
-async function setupBrowserEditor(): Promise {
- await setupI18n({ modules: editorModules });
- mount(BrowserEditor, { target: document.body, props: { uiResolve } });
-}
-
-async function setupNoteCreator(): Promise {
- await setupI18n({ modules: editorModules });
- mount(NoteCreator, { target: document.body, props: { uiResolve } });
-}
-
-async function setupReviewerEditor(): Promise {
- await setupI18n({ modules: editorModules });
- mount(ReviewerEditor, { target: document.body, props: { uiResolve } });
-}
-
export async function setupEditor(mode: EditorMode) {
- switch (mode) {
- case "add":
- await setupNoteCreator();
- break;
- case "browse":
- await setupBrowserEditor();
- break;
- case "review":
- await setupReviewerEditor();
- break;
- default:
- alert("unexpected editor type");
+ if (!["add", "browse", "review"].includes(mode)) {
+ alert("unexpected editor type");
+ return;
}
+ await setupI18n({ modules: editorModules });
+ mount(NoteEditor, { target: document.body, props: { uiResolve, mode } });
}