feat(frontend): add former name display, referral discount type, and refunds to bookings
Update frontend types, stores, and components to support name history display and new API fields. - Add previousFirstName/previousLastName to User type and BookingUser type - Add referral discount_source type and refunds array to Booking type - Create nameDisplay.ts utility for rendering '(formerly ...)' labels - Create booking.ts utility for booking-related helpers - Update 25+ admin, payments, today, and account components to display former names on booking cards, modals, appointment views, and user lists Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
import { Skeleton } from '$lib/components/ui/skeleton';
|
||||
import { Button } from '$lib/components/ui/button';
|
||||
import { formatDuration } from '$lib/utils/format';
|
||||
import { formatUserName } from '$lib/utils/nameDisplay';
|
||||
import { SvelteDate } from 'svelte/reactivity';
|
||||
import BookingModal from '$lib/components/admin/BookingModal.svelte';
|
||||
|
||||
@@ -18,7 +19,7 @@
|
||||
start_time: string;
|
||||
status: string;
|
||||
duration_minutes: number;
|
||||
user?: { full_name: string };
|
||||
user?: { full_name: string; previous_first_name?: string | null; previous_last_name?: string | null };
|
||||
services: BookingService[];
|
||||
};
|
||||
type TimeBlocker = {
|
||||
@@ -554,7 +555,7 @@
|
||||
{#if !hasOverlap}
|
||||
<button
|
||||
type="button"
|
||||
aria-label="View booking for {b.user?.full_name || 'Guest'}"
|
||||
aria-label="View booking for {formatUserName(b.user?.full_name || 'Guest', b.user?.previous_first_name, b.user?.previous_last_name)}"
|
||||
class="absolute inset-x-0.5 z-10 cursor-pointer overflow-hidden rounded border px-1.5 py-0.5 text-left text-xs transition-shadow hover:shadow-md focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-blue-500"
|
||||
style="top: {topOffset}px; height: {heightPx}px; {bookingStyle(
|
||||
b.status
|
||||
@@ -570,7 +571,7 @@
|
||||
style="background:{dotColor(b.status)}"
|
||||
></div>
|
||||
<span class="truncate font-medium"
|
||||
>{b.user?.full_name || 'Guest'}</span
|
||||
>{formatUserName(b.user?.full_name || 'Guest', b.user?.previous_first_name, b.user?.previous_last_name)}</span
|
||||
>
|
||||
</div>
|
||||
{#if heightPx > 36}
|
||||
|
||||
Reference in New Issue
Block a user