diff --git a/ApiCore-Frontend/src/app/(app)/queens/[id]/queen-edit-card.tsx b/ApiCore-Frontend/src/app/(app)/queens/[id]/queen-edit-card.tsx index 15a98fa..5d284fe 100644 --- a/ApiCore-Frontend/src/app/(app)/queens/[id]/queen-edit-card.tsx +++ b/ApiCore-Frontend/src/app/(app)/queens/[id]/queen-edit-card.tsx @@ -4,6 +4,7 @@ import { FormEvent, useState } from "react"; import { Crown } from "lucide-react"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import { fetchQueens, updateQueen } from "@/lib/queens/api"; +import { suggestMarkingColorForYear } from "@/lib/queens/marking-color"; import { Queen, QueenStatus } from "@/lib/queens/types"; import { QUEEN_STATUSES, QUEEN_STATUS_LABELS } from "@/lib/queens/labels"; import { statusTone } from "@/lib/status-tone"; @@ -28,12 +29,23 @@ import { export function QueenEditCard({ queen }: { queen: Queen }) { const queryClient = useQueryClient(); + const [hatchYear, setHatchYear] = useState(queen.hatchYear?.toString() ?? ""); const [breed, setBreed] = useState(queen.breed ?? ""); const [origin, setOrigin] = useState(queen.origin ?? ""); + const [markingColor, setMarkingColor] = useState(queen.markingColor ?? ""); + const [markingNumber, setMarkingNumber] = useState(queen.markingNumber ?? ""); const [motherQueenId, setMotherQueenId] = useState(queen.motherQueenId ?? ""); const [notes, setNotes] = useState(queen.notes ?? ""); const [status, setStatus] = useState(queen.status); + function handleHatchYearChange(value: string) { + setHatchYear(value); + const year = Number(value); + if (!markingColor && value && Number.isInteger(year)) { + setMarkingColor(suggestMarkingColorForYear(year)); + } + } + const { data: queens } = useQuery({ queryKey: ["queens"], queryFn: () => fetchQueens(), @@ -43,8 +55,11 @@ export function QueenEditCard({ queen }: { queen: Queen }) { const mutation = useMutation({ mutationFn: () => updateQueen(queen.id, { + hatchYear: hatchYear ? Number(hatchYear) : undefined, breed: breed || undefined, origin: origin || undefined, + markingColor: markingColor || undefined, + markingNumber: markingNumber || undefined, motherQueenId: motherQueenId || undefined, notes: notes || undefined, status, @@ -76,6 +91,16 @@ export function QueenEditCard({ queen }: { queen: Queen }) {
+
+ + handleHatchYearChange(event.target.value)} + /> +
setOrigin(event.target.value)} />
+
+ + setMarkingColor(event.target.value)} + /> +
+
+ + setMarkingNumber(event.target.value)} + /> +
handleHatchYearChange(event.target.value)} + /> +
setOrigin(event.target.value)} />
+
+ + setMarkingColor(event.target.value)} + /> +

+ Wird nach internationaler Konvention aus dem Schlupfjahr vorgeschlagen, kann + aber angepasst werden. +

+
+
+ + setMarkingNumber(event.target.value)} + /> +