feat(timeline): add pulse animation for in-flight drag mutations

Allocation bars that have active optimistic overrides (post-drag,
awaiting server confirmation) now pulse subtly via animate-pulse.
The pending set is derived from the existing optimisticAllocations
map keys, requiring no additional state.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-09 13:28:46 +02:00
parent 7a5e98e2e9
commit 1df208dbcc
386 changed files with 657 additions and 81650 deletions
+3 -4
View File
@@ -9,6 +9,7 @@ import {
AllocationStatus,
PermissionKey,
SystemRole,
toIsoDateOrNull,
} from "@capakraken/shared";
import type { WeekdayAvailability } from "@capakraken/shared";
import { TRPCError } from "@trpc/server";
@@ -269,9 +270,7 @@ const createStaffingCaller = createCallerFactory(staffingRouter);
// ─── Helpers ────────────────────────────────────────────────────────────────
function fmtDate(d: Date | null | undefined): string | null {
return d ? d.toISOString().slice(0, 10) : null;
}
const fmtDate = toIsoDateOrNull;
class AssistantVisibleError extends Error {
constructor(message: string) {
@@ -301,7 +300,7 @@ function formatHolidayCalendarEntry(entry: {
}) {
return {
id: entry.id,
date: fmtDate(entry.date),
date: toIsoDateOrNull(entry.date),
name: entry.name,
isRecurringAnnual: entry.isRecurringAnnual ?? false,
source: entry.source ?? null,