Implement ticket reply functionality

Backend:
- POST /:id/comment endpoint accepting {body, internal?, creator_id?}
- internal=false → Correspond (public reply), internal=true → Comment
- Runs scrip engine on the new transaction so notifications fire
- CommentSchema zod validation

Frontend:
- sendComment() API function in lib/api.ts
- Send button wired with onClick, sending spinner, disabled state
- Error display below reply box, clears on new typing
- Refreshes transaction list after successful send
- Reply/Internal note mode passed as internal flag
This commit is contained in:
Gjermund Høsøien Wiggen
2026-06-07 23:28:46 +02:00
parent 04b4e28d21
commit 08b52426b0
4 changed files with 90 additions and 5 deletions

View File

@@ -14,3 +14,9 @@ export const UpdateTicketSchema = z.object({
status: z.string().min(1).optional(),
owner_id: z.string().uuid().optional(),
});
export const CommentSchema = z.object({
body: z.string().min(1),
creator_id: z.string().optional().default('00000000-0000-0000-0000-000000000000'),
internal: z.boolean().optional().default(false),
});