diff --git a/ivette/src/dome/src/renderer/table/arrays.ts b/ivette/src/dome/src/renderer/table/arrays.ts index cade711487035d5799102b860ddec55d7c29dc77..9cdd951fea21a471484280fa4d62552d108c6049 100644 --- a/ivette/src/dome/src/renderer/table/arrays.ts +++ b/ivette/src/dome/src/renderer/table/arrays.ts @@ -88,6 +88,10 @@ export class MapModel<Key, Row> // Consolidated order (computed on demand) private order?: SORT<Key, Row>; + // -------------------------------------------------------------------------- + // --- Rebuild Array + // -------------------------------------------------------------------------- + // Lazily compute order protected sorter(): SORT<Key, Row> { let current = this.order; diff --git a/ivette/src/dome/src/renderer/table/models.ts b/ivette/src/dome/src/renderer/table/models.ts index 78bad99218c8ede24ff5dde5fc13e1bd1b292245..c6f38e21a31348ee17133fec06bd39204376a204 100644 --- a/ivette/src/dome/src/renderer/table/models.ts +++ b/ivette/src/dome/src/renderer/table/models.ts @@ -127,6 +127,10 @@ export abstract class Model<Key, Row> { private clients = new Map<number, Watcher>(); private clientsId = 0; + constructor() { + this.reload = this.reload.bind(this); + } + /** Shall return the number of rows to be currently displayed in the table. Negative values are considered as zero. @@ -187,7 +191,10 @@ export abstract class Model<Key, Row> { } } - /** Re-render all views. */ + /** + Re-render all views. + Bound to this. + */ reload() { this.clients.forEach(({ reload }) => reload && reload()); } /** diff --git a/ivette/src/dome/src/renderer/table/views.tsx b/ivette/src/dome/src/renderer/table/views.tsx index cfb3ce310a03b6f7e3bc17275e99f364379d987d..a6e9252d71964c5288102aff9f25a8829f3c7ba4 100644 --- a/ivette/src/dome/src/renderer/table/views.tsx +++ b/ivette/src/dome/src/renderer/table/views.tsx @@ -37,7 +37,7 @@ const SVG = SVGraw as (props: { id: string, size?: number }) => JSX.Element; // -------------------------------------------------------------------------- /** Cell data renderer. */ -export type Renderer<Cell> = (data?: Cell) => null | JSX.Element; +export type Renderer<Cell> = (data: Cell) => null | JSX.Element; /** Associates, for each field `{ fd: Cell }` in `Row`, a renderer