From 7ea37b9eb96283cea64b01e2ae8bc844a63c618e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 6 Jul 2025 11:13:17 +0300 Subject: [PATCH] feat(views/geomap): create empty view type --- .../client/src/services/note_list_renderer.ts | 8 +++++-- .../widgets/view_widgets/geo_view/index.ts | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 apps/client/src/widgets/view_widgets/geo_view/index.ts diff --git a/apps/client/src/services/note_list_renderer.ts b/apps/client/src/services/note_list_renderer.ts index 3219d8d92..122ba9745 100644 --- a/apps/client/src/services/note_list_renderer.ts +++ b/apps/client/src/services/note_list_renderer.ts @@ -1,11 +1,12 @@ import type FNote from "../entities/fnote.js"; import CalendarView from "../widgets/view_widgets/calendar_view.js"; +import GeoView from "../widgets/view_widgets/geo_view/index.js"; import ListOrGridView from "../widgets/view_widgets/list_or_grid_view.js"; import TableView from "../widgets/view_widgets/table_view/index.js"; import type { ViewModeArgs } from "../widgets/view_widgets/view_mode.js"; import type ViewMode from "../widgets/view_widgets/view_mode.js"; -export type ViewTypeOptions = "list" | "grid" | "calendar" | "table"; +export type ViewTypeOptions = "list" | "grid" | "calendar" | "table" | "geoMap"; export default class NoteListRenderer { @@ -26,6 +27,9 @@ export default class NoteListRenderer { case "table": this.viewMode = new TableView(args); break; + case "geoMap": + this.viewMode = new GeoView(args); + break; default: this.viewMode = null; } @@ -34,7 +38,7 @@ export default class NoteListRenderer { #getViewType(parentNote: FNote): ViewTypeOptions { const viewType = parentNote.getLabelValue("viewType"); - if (!["list", "grid", "calendar", "table"].includes(viewType || "")) { + if (!["list", "grid", "calendar", "table", "geoMap"].includes(viewType || "")) { // when not explicitly set, decide based on the note type return parentNote.type === "search" ? "list" : "grid"; } else { diff --git a/apps/client/src/widgets/view_widgets/geo_view/index.ts b/apps/client/src/widgets/view_widgets/geo_view/index.ts new file mode 100644 index 000000000..03f88e6fa --- /dev/null +++ b/apps/client/src/widgets/view_widgets/geo_view/index.ts @@ -0,0 +1,23 @@ +import ViewMode, { ViewModeArgs } from "../view_mode.js"; + +const TPL = /*html*/` +
+ Geo View is not implemented yet. +
`; + +export default class GeoView extends ViewMode<{}> { + + private $root: JQuery; + + constructor(args: ViewModeArgs) { + super(args, "geoMap"); + this.$root = $(TPL); + args.$parent.append(this.$root); + } + + async renderList() { + console.log("Rendered"); + return this.$root; + } + +}