diff --git a/components/project/tasklist/task/task-item.tsx b/components/project/tasklist/task/task-item.tsx index 53ff18c..09230dd 100644 --- a/components/project/tasklist/task/task-item.tsx +++ b/components/project/tasklist/task/task-item.tsx @@ -29,6 +29,7 @@ import { cn } from "@/lib/utils"; import { toDateStringWithDay, toStartOfDay } from "@/lib/utils/date"; import { useTRPC } from "@/trpc/client"; import { Checkbox } from "../../../ui/checkbox"; +import { CommentsSection } from "../../comment/comments-section"; import { DateTimePicker } from "../../events/date-time-picker"; import { AssignToUser } from "../../shared/assign-to-user"; import { UserBadge } from "../../shared/user-badge"; @@ -389,6 +390,8 @@ export const TaskItem = ({ ) : null} + + diff --git a/components/project/tasklist/tasklist-header.tsx b/components/project/tasklist/tasklist-header.tsx index 6c4b549..43fd451 100644 --- a/components/project/tasklist/tasklist-header.tsx +++ b/components/project/tasklist/tasklist-header.tsx @@ -12,7 +12,7 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; -import type { TaskList } from "@/drizzle/types"; +import { type TaskList, TaskListStatus } from "@/drizzle/types"; import { useTaskLists } from "@/hooks/use-tasklist"; export const TaskListHeader = ({ @@ -76,17 +76,21 @@ export const TaskListHeader = ({ updateTaskList.mutateAsync({ id: taskList.id, status: - taskList.status === "active" ? "archived" : "active", + taskList.status === TaskListStatus.ACTIVE + ? TaskListStatus.ARCHIVED + : TaskListStatus.ACTIVE, }), { - loading: "Updating list...", - success: "List updated.", - error: "Failed to update list.", + loading: "Updating status...", + success: "Status updated.", + error: "Failed to update status.", }, ); }} > - {taskList.status === "active" ? "Archive" : "Unarchive"} + {taskList.status === TaskListStatus.ACTIVE + ? "Archive" + : "Unarchive"} diff --git a/trpc/routers/projects.ts b/trpc/routers/projects.ts index 1e8ad18..6908901 100644 --- a/trpc/routers/projects.ts +++ b/trpc/routers/projects.ts @@ -101,13 +101,13 @@ export const projectsRouter = createTRPCRouter({ .or( z.object({ id: z.number(), - dueDate: z.date().nullable(), + status: z.enum(["active", "archived"]), }), ) .or( z.object({ id: z.number(), - status: z.enum(["active", "archived"]), + dueDate: z.date().nullable(), }), ), ) diff --git a/trpc/routers/tasks.ts b/trpc/routers/tasks.ts index d0cf863..5f36496 100644 --- a/trpc/routers/tasks.ts +++ b/trpc/routers/tasks.ts @@ -1,5 +1,5 @@ -import { and, asc, desc, eq, or } from "drizzle-orm"; import { TRPCError } from "@trpc/server"; +import { and, asc, desc, eq, or } from "drizzle-orm"; import { z } from "zod"; import { task, taskList } from "@/drizzle/schema"; import { TaskListStatus, TaskStatus } from "@/drizzle/types"; @@ -141,20 +141,20 @@ export const tasksRouter = createTRPCRouter({ .or( z.object({ id: z.number(), - dueDate: z - .string() - .nullable() + status: z + .nativeEnum(TaskListStatus) .optional() - .transform((val) => (val?.trim()?.length ? new Date(val) : null)), + .default(TaskListStatus.ACTIVE), }), ) .or( z.object({ id: z.number(), - status: z - .nativeEnum(TaskListStatus) + dueDate: z + .string() + .nullable() .optional() - .default(TaskListStatus.ACTIVE), + .transform((val) => (val?.trim()?.length ? new Date(val) : null)), }), ), ) @@ -383,34 +383,34 @@ export const tasksRouter = createTRPCRouter({ .or( z.object({ id: z.number(), - dueDate: z - .string() - .nullable() - .transform((val) => (val ? new Date(val) : null)), + description: z.string(), }), ) .or( z.object({ id: z.number(), - description: z.string(), + assignedToUser: z.string().nullable(), }), ) .or( z.object({ id: z.number(), - assignedToUser: z.string().nullable(), + position: z.number(), }), ) .or( z.object({ id: z.number(), - position: z.number(), + taskListId: z.number(), }), ) .or( z.object({ id: z.number(), - taskListId: z.number(), + dueDate: z + .string() + .nullable() + .transform((val) => (val ? new Date(val) : null)), }), ), )