Files
Trilium/apps/client/src/widgets/view_widgets/table_view.ts

57 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-06-25 11:03:43 +03:00
import froca from "../../services/froca.js";
import renderTable from "./table_view/renderer.js";
2025-06-25 16:18:34 +03:00
import type { StateInfo } from "./table_view/storage.js";
2025-06-25 10:31:41 +03:00
import ViewMode, { ViewModeArgs } from "./view_mode";
const TPL = /*html*/`
<div class="table-view">
2025-06-25 10:40:04 +03:00
<style>
.table-view {
overflow: hidden;
position: relative;
height: 100%;
user-select: none;
padding: 10px;
}
2025-06-25 10:49:33 +03:00
.table-view-container {
height: 100%;
}
2025-06-25 10:40:04 +03:00
</style>
2025-06-25 10:49:33 +03:00
<div class="table-view-container">
<p>Table view goes here.</p>
</div>
2025-06-25 10:31:41 +03:00
</div>
`;
2025-06-25 16:18:34 +03:00
export default class TableView extends ViewMode<StateInfo> {
2025-06-25 10:31:41 +03:00
private $root: JQuery<HTMLElement>;
2025-06-25 10:49:33 +03:00
private $container: JQuery<HTMLElement>;
private args: ViewModeArgs;
2025-06-25 10:31:41 +03:00
constructor(args: ViewModeArgs) {
2025-06-25 16:18:34 +03:00
super(args, "table");
2025-06-25 10:31:41 +03:00
this.$root = $(TPL);
2025-06-25 10:49:33 +03:00
this.$container = this.$root.find(".table-view-container");
this.args = args;
2025-06-25 10:31:41 +03:00
args.$parent.append(this.$root);
}
2025-06-25 10:40:04 +03:00
get isFullHeight(): boolean {
return true;
}
2025-06-25 10:31:41 +03:00
async renderList() {
const { noteIds, parentNote } = this.args;
const notes = await froca.getNotes(noteIds);
2025-06-25 11:03:43 +03:00
2025-06-25 10:49:33 +03:00
this.$container.empty();
2025-06-25 16:18:34 +03:00
renderTable(this.$container[0], parentNote, notes, this.viewStorage);
2025-06-25 10:31:41 +03:00
return this.$root;
}
}