diff --git a/src/components/Router.tsx b/src/components/Router.tsx index 10f39cb..d2c1107 100644 --- a/src/components/Router.tsx +++ b/src/components/Router.tsx @@ -55,6 +55,28 @@ export default function Router({ })); }; + const setTags = (tags: Record) => { + updateEntity(entityId, (e) => ({ + ...e, + tags: e.type === "todo" ? tags : {}, + })); + }; + + const setStatuses = (statuses: any[]) => { + updateEntity(entityId, (e) => { + if (e.type === "todo") { + return { + ...e, + config: { + ...e.config, + statuses, + }, + }; + } + return e; + }); + }; + return ( ); } diff --git a/src/components/view/TaskView.tsx b/src/components/view/TaskView.tsx index a632b76..5eb6b0a 100644 --- a/src/components/view/TaskView.tsx +++ b/src/components/view/TaskView.tsx @@ -1,19 +1,28 @@ "use client"; -import { Tag, TagId, Task, TaskId } from "@/lib/types"; +import { Tag, TagId, Task, TaskId, Status } from "@/lib/types"; import { Color } from "@/lib/ui/color"; import BoardView from "./board/BoardView"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs"; import { TableView } from "./table/TableView"; +import EditView from "./edit/EditView"; export type TaskViewProps = { tags: Record; tasks: Record; + statuses: Status[]; + /** Update entire tasks record */ setTasks: (tasks: Record) => void; + /** Update tags */ + setTags: (tags: Record) => void; + + /** Update statuses */ + setStatuses: (statuses: Status[]) => void; + /** Create a new task with a status */ createTask: (statusId: string) => void; }; @@ -21,7 +30,10 @@ export type TaskViewProps = { export default function TaskView({ tags, tasks, + statuses, setTasks, + setTags, + setStatuses, createTask, }: TaskViewProps) { return ( @@ -30,6 +42,7 @@ export default function TaskView({ Board Table + Edit @@ -38,6 +51,9 @@ export default function TaskView({ setTasks={setTasks} createTask={createTask} tags={tags} + setTags={setTags} + setStatuses={setStatuses} + statuses={statuses} /> @@ -47,6 +63,18 @@ export default function TaskView({ setTasks={setTasks} createTask={createTask} tags={tags} + setTags={setTags} + setStatuses={setStatuses} + statuses={statuses} + /> + + + +