diff --git a/apps/api/src/routers/day-entry.ts b/apps/api/src/routers/day-entry.ts index 60fd73b..ad30b95 100644 --- a/apps/api/src/routers/day-entry.ts +++ b/apps/api/src/routers/day-entry.ts @@ -209,6 +209,37 @@ export const dayEntryRouter = router({ return result; }), + /** + * Einzelnen ToDo-Titel korrigieren (z. B. Tippfehler) — auch noch in der + * Reflexion. Erlaubt, solange das ToDo der eigenen Person gehört und vom + * heutigen Berlin-Tag ist (gleiche Editierbarkeits-Regel wie die Reflexion). + */ + editTodoTitle: protectedProcedure + .input(DayEntrySchemas.editTodoTitleInput) + .mutation(async ({ ctx, input }) => { + const rows = await ctx.db + .select() + .from(todo) + .where(and(eq(todo.id, input.todoId), eq(todo.userId, ctx.user.id))) + .limit(1); + const existing = rows[0]; + if (!existing) { + throw new TRPCError({ code: 'NOT_FOUND', message: 'ToDo nicht gefunden.' }); + } + if (existing.date !== todayIso(new Date())) { + throw new TRPCError({ + code: 'BAD_REQUEST', + message: 'ToDos eines Vortags können nicht mehr bearbeitet werden.', + }); + } + const [updated] = await ctx.db + .update(todo) + .set({ title: input.title }) + .where(eq(todo.id, input.todoId)) + .returning(); + return updated; + }), + /** * Abend-Reflexion. Setzt Ampel + Trend, optional Blocker. */ diff --git a/apps/web/src/routes/reflexion.tsx b/apps/web/src/routes/reflexion.tsx index dcdd923..6898c60 100644 --- a/apps/web/src/routes/reflexion.tsx +++ b/apps/web/src/routes/reflexion.tsx @@ -7,7 +7,7 @@ import { Button } from '../components/ui/Button'; import { SkeletonCard } from '../components/ui/SkeletonCard'; import { toast } from 'sonner'; import { clsx } from 'clsx'; -import { Check, X, Minus, TrendingUp, TrendingDown, ArrowRight } from 'lucide-react'; +import { Check, X, Minus, TrendingUp, TrendingDown, ArrowRight, Pencil } from 'lucide-react'; type Ampel = 'green' | 'amber' | 'red'; type Trend = 'besser' | 'gleich' | 'schlechter'; @@ -128,7 +128,7 @@ function ReflectForm({ const status = todoStates[t.id]?.status ?? 'open'; return (