implement creating and listing tasks

This commit is contained in:
marlon-erler
2024-07-24 13:31:28 +02:00
parent 5164e891f6
commit 14212da988
8 changed files with 277 additions and 171 deletions
+25 -2
View File
@@ -6,6 +6,8 @@ import BoardViewModel, {
import { BoardSettingsModal } from "../Modals/boardSettingsModal";
import { BoardViewToggleButton } from "../Components/boardViewToggleButton";
import { TaskSettingsModal } from "../Modals/taskSettingsModal";
import { TaskViewModelToEntry } from "../Components/taskEntry";
import { translations } from "../translations";
export function BoardPage(boardViewModel: BoardViewModel) {
@@ -16,12 +18,32 @@ export function BoardPage(boardViewModel: BoardViewModel) {
() => {
switch (boardViewModel.selectedPage.value) {
default: {
return <div></div>;
return (
<div
class="grid gap"
style="grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr))"
children:append={[
boardViewModel.taskViewModels,
TaskViewModelToEntry,
]}
></div>
);
}
}
}
);
const taskSettingsModal = React.createProxyState(
[boardViewModel.selectedTaskViewModel],
() => {
if (boardViewModel.selectedTaskViewModel.value == undefined) {
return <div></div>;
} else {
return TaskSettingsModal(boardViewModel.selectedTaskViewModel.value);
}
}
);
return (
<div class="pane">
<div class="toolbar">
@@ -72,7 +94,7 @@ export function BoardPage(boardViewModel: BoardViewModel) {
<button
class="ghost"
aria-label={translations.chatPage.task.createTaskButtonAudioLabel}
on:click={boardViewModel.showNewTaskModal}
on:click={boardViewModel.createTask}
>
<span class="icon">add</span>
</button>
@@ -81,6 +103,7 @@ export function BoardPage(boardViewModel: BoardViewModel) {
<div class="content" children:set={mainContent}></div>
{BoardSettingsModal(boardViewModel)}
<div children:set={taskSettingsModal}></div>
</div>
);
}
+2 -2
View File
@@ -2,8 +2,8 @@ import "./taskPage.css";
import * as React from "bloatless-react";
import { BoardInfoToEntry } from "../Components/boardEntry";
import { BoardPage } from "./boardPage";
import { BoardViewModelToEntry } from "../Components/boardEntry";
import TaskPageViewModel from "../../ViewModel/Pages/taskPageViewModel";
import { translations } from "../translations";
@@ -77,7 +77,7 @@ export function TaskPage(taskPageViewModel: TaskPageViewModel) {
style="grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr))"
children:append={[
taskPageViewModel.boardViewModels,
BoardInfoToEntry,
BoardViewModelToEntry,
]}
></div>
</div>