From 715996aceb4d4dc96410464f60727b98a289be08 Mon Sep 17 00:00:00 2001 From: Josh Kingsley Date: Thu, 30 Oct 2025 13:25:02 +0200 Subject: refactor(web): move selection code --- web/src/components/app/index.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'web/src/components/app/index.ts') diff --git a/web/src/components/app/index.ts b/web/src/components/app/index.ts index c30249f..aa7c738 100644 --- a/web/src/components/app/index.ts +++ b/web/src/components/app/index.ts @@ -1,22 +1,21 @@ import defaultDoc from "../../defaultDoc"; import NotiveElement, { customElement } from "../../element"; -import { Selection } from "../../selection"; import { Doc } from "../../types"; import ntvGrid, { NotiveGridElement } from "../grid"; import renderGrid from "../grid/renderGrid"; +import { GridSelection } from "../grid/selection"; import ntvToolbar from "../toolbar"; import "./index.css"; @customElement("ntv-app") export class NotiveAppElement extends NotiveElement { doc: Doc = defaultDoc(); - #selection?: Selection; - get selection() { - return this.#selection; - } + #selectedGridId?: string; + #selection?: GridSelection; - set selection(selection: Selection | undefined) { + setSelection(gridId: string, selection: GridSelection) { + this.#selectedGridId = gridId; this.#selection = selection; this.#updateGridSelections(); } @@ -24,7 +23,7 @@ export class NotiveAppElement extends NotiveElement { #updateGridSelections() { this.querySelectorAll("ntv-grid").forEach((grid) => { grid.selection = - this.#selection?.gridId === grid.grid?.id ? this.#selection : undefined; + this.#selectedGridId === grid.grid?.id ? this.#selection : undefined; }); } @@ -37,7 +36,7 @@ export class NotiveAppElement extends NotiveElement { grid: renderGrid(grid), dataset: { gridId: grid.id }, ongridselectionchange: (event) => { - this.selection = event.selection; + this.setSelection(grid.id, event.selection); }, oncellchange: (event) => { console.log(event); @@ -47,3 +46,5 @@ export class NotiveAppElement extends NotiveElement { ); } } + +export default NotiveAppElement.makeFactory(); -- cgit v1.2.3