This commit is contained in:
2026-02-27 22:59:00 +01:00
parent 5895974af2
commit de77f0fe64
2 changed files with 54 additions and 1 deletions
+25
View File
@@ -55,6 +55,28 @@ export default function Router({
})); }));
}; };
const setTags = (tags: Record<string, any>) => {
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 ( return (
<TaskView <TaskView
key={entity.id} key={entity.id}
@@ -62,6 +84,9 @@ export default function Router({
setTasks={setTasks} setTasks={setTasks}
createTask={createTask} createTask={createTask}
tags={entity.tags} tags={entity.tags}
statuses={entity.config.statuses}
setTags={setTags}
setStatuses={setStatuses}
/> />
); );
} }
+29 -1
View File
@@ -1,19 +1,28 @@
"use client"; "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 { Color } from "@/lib/ui/color";
import BoardView from "./board/BoardView"; import BoardView from "./board/BoardView";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs";
import { TableView } from "./table/TableView"; import { TableView } from "./table/TableView";
import EditView from "./edit/EditView";
export type TaskViewProps = { export type TaskViewProps = {
tags: Record<TagId, Tag>; tags: Record<TagId, Tag>;
tasks: Record<TaskId, Task>; tasks: Record<TaskId, Task>;
statuses: Status[];
/** Update entire tasks record */ /** Update entire tasks record */
setTasks: (tasks: Record<TaskId, Task>) => void; setTasks: (tasks: Record<TaskId, Task>) => void;
/** Update tags */
setTags: (tags: Record<TagId, Tag>) => void;
/** Update statuses */
setStatuses: (statuses: Status[]) => void;
/** Create a new task with a status */ /** Create a new task with a status */
createTask: (statusId: string) => void; createTask: (statusId: string) => void;
}; };
@@ -21,7 +30,10 @@ export type TaskViewProps = {
export default function TaskView({ export default function TaskView({
tags, tags,
tasks, tasks,
statuses,
setTasks, setTasks,
setTags,
setStatuses,
createTask, createTask,
}: TaskViewProps) { }: TaskViewProps) {
return ( return (
@@ -30,6 +42,7 @@ export default function TaskView({
<TabsList className="mb-4"> <TabsList className="mb-4">
<TabsTrigger value="board">Board</TabsTrigger> <TabsTrigger value="board">Board</TabsTrigger>
<TabsTrigger value="table">Table</TabsTrigger> <TabsTrigger value="table">Table</TabsTrigger>
<TabsTrigger value="edit">Edit</TabsTrigger>
</TabsList> </TabsList>
<TabsContent value="board" className="mt-0"> <TabsContent value="board" className="mt-0">
@@ -38,6 +51,9 @@ export default function TaskView({
setTasks={setTasks} setTasks={setTasks}
createTask={createTask} createTask={createTask}
tags={tags} tags={tags}
setTags={setTags}
setStatuses={setStatuses}
statuses={statuses}
/> />
</TabsContent> </TabsContent>
@@ -47,6 +63,18 @@ export default function TaskView({
setTasks={setTasks} setTasks={setTasks}
createTask={createTask} createTask={createTask}
tags={tags} tags={tags}
setTags={setTags}
setStatuses={setStatuses}
statuses={statuses}
/>
</TabsContent>
<TabsContent value="edit" className="mt-0">
<EditView
tags={tags}
statuses={statuses}
setTags={setTags}
setStatuses={setStatuses}
/> />
</TabsContent> </TabsContent>
</Tabs> </Tabs>