diff --git a/webapp-next/src/components/current-duty/CurrentDutyView.tsx b/webapp-next/src/components/current-duty/CurrentDutyView.tsx index d8c8117..f043eb6 100644 --- a/webapp-next/src/components/current-duty/CurrentDutyView.tsx +++ b/webapp-next/src/components/current-duty/CurrentDutyView.tsx @@ -29,6 +29,7 @@ import { CardHeader, CardTitle, } from "@/components/ui/card"; +import { Skeleton } from "@/components/ui/skeleton"; import type { DutyWithUser } from "@/types"; export interface CurrentDutyViewProps { @@ -164,14 +165,33 @@ export function CurrentDutyView({ onBack, openedFromPin = false }: CurrentDutyVi aria-live="polite" aria-label={t("loading")} > - -

{t("loading")}

- + + +
+ + +
+
+ +
+ + +
+ +
+ + +
+
+ + + +
); } @@ -244,11 +264,10 @@ export function CurrentDutyView({ onBack, openedFromPin = false }: CurrentDutyVi const endTime = formatHHMM(duty.end_at); const shiftStr = `${startDDMM} ${startTime} — ${endDDMM} ${endTime}`; const rem = remaining ?? getRemainingTime(duty.end_at); - const remainingStr = t("current_duty.remaining", { + const remainingValueStr = t("current_duty.remaining_value", { hours: String(rem.hours), minutes: String(rem.minutes), }); - const endsAtStr = t("current_duty.ends_at", { time: endTime }); const displayTz = typeof window !== "undefined" && @@ -280,21 +299,31 @@ export function CurrentDutyView({ onBack, openedFromPin = false }: CurrentDutyVi {t("current_duty.title")} - -

- {duty.full_name} -

-

- {shiftLabel} {shiftStr} -

+ +
+

+ {duty.full_name} +

+

+ {shiftLabel} {shiftStr} +

+
- {remainingStr} + + {t("current_duty.remaining_label")} + + + {remainingValueStr} +
-

{endsAtStr}

+
{hasContacts ? ( )} +