import { BoardStatusGridPage } from "./boardStatusGridPage"; import { BoardKanbanPage } from "./boardKanbanPage"; import { ViewController } from "../viewController"; import { TaskSettingsModal } from "../Modals/taskSettingsModal"; import { SearchModal } from "../Modals/searchModal"; import { BoardSettingsModal } from "../Modals/boardSettingsModal"; import { TaskViewModelToEntry } from "../Components/taskEntry"; import { BoardViewToggleButton } from "../Components/boardViewToggleButton"; import * as React from "../../react"; import BoardViewModel, { BoardPageTypes, } from "../../ViewModel/Pages/boardViewModel"; import CoreViewModel from "../../ViewModel/Global/coreViewModel"; import * as Utility from "../../Model/Utility/utility"; export function BoardPage( coreViewModel: CoreViewModel, boardViewModel: BoardViewModel, ) { boardViewModel.loadData(); // main content const persistenceId = boardViewModel.boardInfo.fileId; const pages = ViewController.boardPages.setState(persistenceId, () => React.createProxyState([boardViewModel.selectedPage], () => { switch (boardViewModel.selectedPage.value) { case BoardPageTypes.Kanban: { return BoardKanbanPage(coreViewModel, boardViewModel); } case BoardPageTypes.StatusGrid: { return BoardStatusGridPage(coreViewModel, boardViewModel); } default: { return (
); } } }), ); const wrapper = (
); Utility.implementPinchZoom(wrapper, boardViewModel.pinchToZoomData); // task modal const taskSettingsModal = React.createProxyState( [boardViewModel.selectedTaskViewModel], () => { if (boardViewModel.selectedTaskViewModel.value == undefined) { return
; } else { ViewController.setFocusWithDelay(); return TaskSettingsModal( coreViewModel, boardViewModel.selectedTaskViewModel.value, ); } }, ); return (
{BoardViewToggleButton( coreViewModel.translations.chatPage.task .listViewButtonAudioLabel, "view_list", BoardPageTypes.List, boardViewModel, )} {BoardViewToggleButton( coreViewModel.translations.chatPage.task .kanbanViewButtonAudioLabel, "view_kanban", BoardPageTypes.Kanban, boardViewModel, )} {BoardViewToggleButton( coreViewModel.translations.chatPage.task .statusViewButtonAudioLabel, "grid_view", BoardPageTypes.StatusGrid, boardViewModel, )}
{wrapper} {BoardSettingsModal(coreViewModel, boardViewModel)} {SearchModal( coreViewModel, boardViewModel.searchViewModel, coreViewModel.translations.chatPage.task.filterTasksHeadline, boardViewModel.isPresentingFilterModal, )}
); }