Skip to content

Commit 8c0054f

Browse files
Jakob Schlanstedtwerererer
authored andcommitted
refactor(note-create): replace enum with optional fields
1 parent 3327bb0 commit 8c0054f

File tree

15 files changed

+46
-54
lines changed

15 files changed

+46
-54
lines changed

apps/client/src/components/entrypoints.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import froca from "../services/froca.js";
1111
import linkService from "../services/link.js";
1212
import { t } from "../services/i18n.js";
1313
import { CreateChildrenResponse, SqlExecuteResponse } from "@triliumnext/commons";
14-
import noteCreateService, { CreateNoteIntoInboxOpts, CreateNoteTarget } from "../services/note_create.js";
14+
import noteCreateService, { CreateNoteIntoInboxOpts } from "../services/note_create.js";
1515

1616
export default class Entrypoints extends Component {
1717
constructor() {
@@ -26,7 +26,7 @@ export default class Entrypoints extends Component {
2626

2727
async createNoteIntoInboxCommand() {
2828
await noteCreateService.createNote(
29-
{ target: CreateNoteTarget.IntoInbox } as CreateNoteIntoInboxOpts
29+
{ target: "into" } as CreateNoteIntoInboxOpts
3030
);
3131
}
3232

apps/client/src/components/main_tree_executors.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import appContext, { type EventData } from "./app_context.js";
2-
import noteCreateService, { CreateNoteTarget, CreateNoteIntoUrlOpts, CreateNoteAfterUrlOpts } from "../services/note_create.js";
2+
import noteCreateService, { CreateNoteIntoUrlOpts, CreateNoteAfterUrlOpts } from "../services/note_create.js";
33
import treeService from "../services/tree.js";
44
import hoistedNoteService from "../services/hoisted_note.js";
55
import Component from "./component.js";
@@ -50,7 +50,7 @@ export default class MainTreeExecutors extends Component {
5050

5151
await noteCreateService.createNote(
5252
{
53-
target: CreateNoteTarget.IntoNoteURL,
53+
target: "into",
5454
parentNoteUrl: activeNoteContext.notePath,
5555
isProtected: activeNoteContext.note.isProtected,
5656
saveSelection: false,
@@ -79,7 +79,7 @@ export default class MainTreeExecutors extends Component {
7979

8080
await noteCreateService.createNote(
8181
{
82-
target: CreateNoteTarget.AfterNoteURL,
82+
target: "after",
8383
parentNoteUrl: parentNotePath,
8484
targetBranchId: node.data.branchId,
8585
isProtected: isProtected,

apps/client/src/components/root_command_executor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import froca from "../services/froca.js";
99
import utils from "../services/utils.js";
1010
import LlmChatPanel from "../widgets/llm_chat_panel.js";
1111
import toastService from "../services/toast.js";
12-
import noteCreateService, { CreateNoteIntoUrlOpts, CreateNoteTarget } from "../services/note_create.js";
12+
import noteCreateService, { CreateNoteIntoUrlOpts } from "../services/note_create.js";
1313

1414
export default class RootCommandExecutor extends Component {
1515
editReadOnlyNoteCommand() {
@@ -235,7 +235,7 @@ export default class RootCommandExecutor extends Component {
235235

236236
const result = await noteCreateService.createNote(
237237
{
238-
target: CreateNoteTarget.IntoNoteURL,
238+
target: "into",
239239
title: "New AI Chat",
240240
type: "aiChat",
241241
content: JSON.stringify({

apps/client/src/menus/tree_context_menu.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import treeService from "../services/tree.js";
22
import froca from "../services/froca.js";
33
import clipboard from "../services/clipboard.js";
4-
import noteCreateService, { CreateNoteAfterUrlOpts, CreateNoteIntoUrlOpts, CreateNoteTarget } from "../services/note_create.js";
4+
import noteCreateService, { CreateNoteAfterUrlOpts, CreateNoteIntoUrlOpts } from "../services/note_create.js";
55
import contextMenu, { type MenuCommandItem, type MenuItem } from "./context_menu.js";
66
import appContext, { type ContextMenuCommandData, type FilteredCommandNames } from "../components/app_context.js";
77
import noteTypesService from "../services/note_types.js";
@@ -276,7 +276,7 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree
276276

277277
noteCreateService.createNote(
278278
{
279-
target: CreateNoteTarget.AfterNoteURL,
279+
target: "after",
280280
parentNoteUrl: parentNotePath,
281281
targetBranchId: this.node.data.branchId,
282282
type: type,
@@ -290,7 +290,7 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree
290290

291291
noteCreateService.createNote(
292292
{
293-
target: CreateNoteTarget.IntoNoteURL,
293+
target: "into",
294294
parentNoteUrl: parentNotePath,
295295
type: type,
296296
isProtected: this.node.data.isProtected,

apps/client/src/services/note_autocomplete.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import server from "./server.js";
22
import appContext from "../components/app_context.js";
3-
import noteCreateService, { CreateNoteIntoUrlOpts, CreateNoteTarget, CreateNoteIntoInboxOpts } from "./note_create.js";
3+
import noteCreateService, { CreateNoteIntoUrlOpts, CreateNoteIntoInboxOpts } from "./note_create.js";
44
import froca from "./froca.js";
55
import { t } from "./i18n.js";
66
import commandRegistry from "./command_registry.js";
@@ -483,7 +483,7 @@ function initNoteAutocomplete($el: JQuery<HTMLElement>, options?: Options) {
483483
case SuggestionAction.CreateNoteIntoInbox: {
484484
const { note } = await noteCreateService.createNote(
485485
{
486-
target: CreateNoteTarget.IntoInbox,
486+
target: "inbox",
487487
title: suggestion.noteTitle,
488488
activate: true,
489489
promptForType: true,
@@ -503,7 +503,7 @@ function initNoteAutocomplete($el: JQuery<HTMLElement>, options?: Options) {
503503
case SuggestionAction.CreateAndLinkNoteIntoInbox: {
504504
const { note } = await noteCreateService.createNote(
505505
{
506-
target: CreateNoteTarget.IntoInbox,
506+
target: "inbox",
507507
title: suggestion.noteTitle,
508508
activate: false,
509509
promptForType: true,
@@ -523,7 +523,7 @@ function initNoteAutocomplete($el: JQuery<HTMLElement>, options?: Options) {
523523
case SuggestionAction.CreateNoteIntoPath: {
524524
const { note } = await noteCreateService.createNote(
525525
{
526-
target: CreateNoteTarget.IntoNoteURL,
526+
target: "into",
527527
parentNoteUrl: suggestion.parentNoteId,
528528
title: suggestion.noteTitle,
529529
activate: true,
@@ -544,7 +544,7 @@ function initNoteAutocomplete($el: JQuery<HTMLElement>, options?: Options) {
544544
case SuggestionAction.CreateAndLinkNoteIntoPath: {
545545
const { note } = await noteCreateService.createNote(
546546
{
547-
target: CreateNoteTarget.IntoNoteURL,
547+
target: "into",
548548
parentNoteUrl: suggestion.parentNoteId,
549549
title: suggestion.noteTitle,
550550
activate: false,

apps/client/src/services/note_create.ts

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ type PromptingRule = {
6363
* Combine with `&` to ensure valid logical combinations.
6464
*/
6565
export type CreateNoteOpts = {
66-
target: CreateNoteTarget;
66+
target: "into" | "after" | "before" | "inbox";
6767
isProtected?: boolean;
6868
saveSelection?: boolean;
6969
title?: string | null;
@@ -99,13 +99,6 @@ type NeverDefineParentNoteUrlRule = {
9999
};
100100
export type CreateNoteIntoInboxOpts = CreateNoteOpts & NeverDefineParentNoteUrlRule;
101101

102-
export enum CreateNoteTarget {
103-
IntoNoteURL,
104-
AfterNoteURL,
105-
BeforeNoteURL,
106-
IntoInbox,
107-
}
108-
109102
interface Response {
110103
// TODO: Deduplicate with server once we have client/server architecture.
111104
note: FNote;
@@ -136,16 +129,16 @@ async function createNote(
136129
}
137130

138131
switch (resolvedOptions.target) {
139-
case CreateNoteTarget.IntoNoteURL:
132+
case "into":
140133
return await createNoteAtNote("into", {...options} as CreateNoteAtUrlOpts);
141134

142-
case CreateNoteTarget.BeforeNoteURL:
135+
case "before":
143136
return await createNoteAtNote("before", resolvedOptions as CreateNoteBeforeUrlOpts);
144137

145-
case CreateNoteTarget.AfterNoteURL:
138+
case "after":
146139
return await createNoteAtNote("after", resolvedOptions as CreateNoteAfterUrlOpts);
147140

148-
case CreateNoteTarget.IntoInbox:
141+
case "inbox":
149142
return await createNoteIntoInbox(resolvedOptions as CreateNoteIntoInboxOpts);
150143

151144
default: {
@@ -176,7 +169,7 @@ async function promptForType(
176169
resolvedOptions = resolvedOptions as CreateNoteIntoUrlOpts;
177170
resolvedOptions = {
178171
...resolvedOptions,
179-
target: CreateNoteTarget.IntoNoteURL,
172+
target: "into",
180173
parentNoteUrl: notePath,
181174
} as CreateNoteIntoUrlOpts;
182175
}

apps/client/src/widgets/collections/board/api.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import branches from "../../../services/branches";
66
import { executeBulkActions } from "../../../services/bulk_action";
77
import froca from "../../../services/froca";
88
import { t } from "../../../services/i18n";
9-
import note_create, { CreateNoteIntoUrlOpts, CreateNoteTarget } from "../../../services/note_create.js";
9+
import note_create, { CreateNoteIntoUrlOpts } from "../../../services/note_create.js";
1010
import server from "../../../services/server";
1111
import { ColumnMap } from "./data";
1212

@@ -29,7 +29,7 @@ export default class BoardApi {
2929

3030
// Create a new note as a child of the parent note
3131
const { note: newNote, branch: newBranch } = await note_create.createNote({
32-
target: CreateNoteTarget.IntoNoteURL,
32+
target: "into",
3333
parentNoteUrl: parentNotePath,
3434
activate: false,
3535
title,
@@ -131,7 +131,7 @@ export default class BoardApi {
131131
async insertRowAtPosition(
132132
column: string,
133133
relativeToBranchId: string,
134-
direction: CreateNoteTarget.BeforeNoteURL | CreateNoteTarget.AfterNoteURL
134+
direction: "before" | "after"
135135
) {
136136
const { note, branch } = await note_create.createNote(
137137
{

apps/client/src/widgets/collections/board/context_menu.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import attributes from "../../../services/attributes";
55
import branches from "../../../services/branches";
66
import dialog from "../../../services/dialog";
77
import { t } from "../../../services/i18n";
8-
import { CreateNoteTarget } from "../../../services/note_create";
98
import Api from "./api";
109

1110
export function openColumnContextMenu(api: Api, event: ContextMenuEvent, column: string) {
@@ -60,15 +59,15 @@ export function openNoteContextMenu(api: Api, event: ContextMenuEvent, note: FNo
6059
handler: () => api.insertRowAtPosition(
6160
column,
6261
branchId,
63-
CreateNoteTarget.BeforeNoteURL)
62+
"before")
6463
},
6564
{
6665
title: t("board_view.insert-below"),
6766
uiIcon: "bx bx-empty",
6867
handler: () => api.insertRowAtPosition(
6968
column,
7069
branchId,
71-
CreateNoteTarget.AfterNoteURL)
70+
"after")
7271
},
7372
{ kind: "separator" },
7473
{

apps/client/src/widgets/collections/table/context_menu.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import froca from "../../../services/froca.js";
88
import branches from "../../../services/branches.js";
99
import Component from "../../../components/component.js";
1010
import { RefObject } from "preact";
11-
import { CreateNoteAfterUrlOpts, CreateNoteBeforeUrlOpts, CreateNoteTarget } from "../../../services/note_create.js";
11+
import { CreateNoteAfterUrlOpts, CreateNoteBeforeUrlOpts } from "../../../services/note_create.js";
1212

1313
export function useContextMenu(parentNote: FNote, parentComponent: Component | null | undefined, tabulator: RefObject<Tabulator>): Partial<EventCallBackMethods> {
1414
const events: Partial<EventCallBackMethods> = {};
@@ -183,7 +183,7 @@ export function showRowContextMenu(parentComponent: Component, e: MouseEvent, ro
183183
handler: () => parentComponent?.triggerCommand("addNewRow", {
184184
parentNotePath: parentNoteId,
185185
customOpts: {
186-
target: CreateNoteTarget.BeforeNoteURL,
186+
target: "before",
187187
targetBranchId: rowData.branchId,
188188
} as CreateNoteBeforeUrlOpts
189189
})
@@ -197,7 +197,7 @@ export function showRowContextMenu(parentComponent: Component, e: MouseEvent, ro
197197
parentComponent?.triggerCommand("addNewRow", {
198198
parentNotePath: note?.noteId,
199199
customOpts: {
200-
target: CreateNoteTarget.AfterNoteURL,
200+
target: "after",
201201
targetBranchId: branchId,
202202
} as CreateNoteAfterUrlOpts
203203
});
@@ -210,7 +210,7 @@ export function showRowContextMenu(parentComponent: Component, e: MouseEvent, ro
210210
handler: () => parentComponent?.triggerCommand("addNewRow", {
211211
parentNotePath: parentNoteId,
212212
customOpts: {
213-
target: CreateNoteTarget.AfterNoteURL,
213+
target: "after",
214214
targetBranchId: rowData.branchId,
215215
} as CreateNoteAfterUrlOpts
216216
})

apps/client/src/widgets/collections/table/row_editing.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { EventCallBackMethods, RowComponent, Tabulator } from "tabulator-tables";
22
import { CommandListenerData } from "../../../components/app_context";
3-
import note_create, { CreateNoteOpts, CreateNoteIntoUrlOpts as CreateNoteIntoUrlOpts, CreateNoteTarget } from "../../../services/note_create";
3+
import note_create, { CreateNoteOpts, CreateNoteIntoUrlOpts as CreateNoteIntoUrlOpts } from "../../../services/note_create";
44
import { useLegacyImperativeHandlers } from "../../react/hooks";
55
import { RefObject } from "preact";
66
import { setAttribute, setLabel } from "../../../services/attributes";

0 commit comments

Comments
 (0)