import { setupHorizontalScrollViaWheel } from "../../widget_utils";
import ViewMode, { ViewModeArgs } from "../view_mode";
import { getBoardData } from "./data";
const TPL = /*html*/`
`;
export interface StateInfo {
};
export default class BoardView extends ViewMode {
private $root: JQuery;
private $container: JQuery;
constructor(args: ViewModeArgs) {
super(args, "board");
this.$root = $(TPL);
setupHorizontalScrollViaWheel(this.$root);
this.$container = this.$root.find(".board-view-container");
args.$parent.append(this.$root);
}
async renderList(): Promise | undefined> {
this.$container.empty();
this.renderBoard(this.$container[0]);
return this.$root;
}
private async renderBoard(el: HTMLElement) {
const data = await getBoardData(this.noteIds, "status");
for (const column of data.byColumn.keys()) {
const columnNotes = data.byColumn.get(column);
if (!columnNotes) {
continue;
}
const $columnEl = $("")
.addClass("board-column")
.append($("
").text(column));
for (const note of columnNotes) {
const $iconEl = $("")
.addClass("icon")
.addClass(note.getIcon());
const $noteEl = $("")
.addClass("board-note")
.text(note.title); // Assuming FNote has a title property
$noteEl.prepend($iconEl);
$columnEl.append($noteEl);
}
$(el).append($columnEl);
}
}
}