duration formatting

This commit is contained in:
2025-10-17 00:34:43 +01:00
parent 98807e2485
commit 1d55d2643d
+21 -5
View File
@@ -628,6 +628,22 @@
return allSlots; return allSlots;
} }
function formatDuration(minutes: number): string {
const hours = Math.floor(minutes / 60);
const remainingMinutes = minutes % 60;
if (hours === 0) {
return `${remainingMinutes} minutes`;
} else if (remainingMinutes === 0) {
return `${hours} ${hours === 1 ? 'hour' : 'hours'}`;
} else {
return `${hours} ${hours === 1 ? 'hour' : 'hours'} ${remainingMinutes} minutes`;
}
}
// Use the formatted duration everywhere
const formattedTotalDuration = $derived(formatDuration(getTotalDuration()));
function nextStep() { function nextStep() {
if (currentStep < 4) { if (currentStep < 4) {
currentStep++; currentStep++;
@@ -764,8 +780,8 @@
{/each} {/each}
<Separator class="my-2" /> <Separator class="my-2" />
<div class="flex justify-between text-sm font-semibold"> <div class="flex justify-between text-sm font-semibold">
<span>Total Duration:</span> <span>Estimated Duration:</span>
<span>{getTotalDuration()} minutes</span> <span>{formattedTotalDuration}</span>
</div> </div>
<div class="flex justify-between text-sm font-semibold"> <div class="flex justify-between text-sm font-semibold">
<span>Total Cost:</span> <span>Total Cost:</span>
@@ -787,7 +803,7 @@
<Card.Header> <Card.Header>
<Card.Title>Choose Date & Time</Card.Title> <Card.Title>Choose Date & Time</Card.Title>
<Card.Description> <Card.Description>
{selectedServices.map((s) => s.name).join(', ')}{getTotalDuration()} minutes total • £{getTotalPrice()} {selectedServices.map((s) => s.name).join(', ')}{formattedTotalDuration} total • £{getTotalPrice()}
</Card.Description> </Card.Description>
</Card.Header> </Card.Header>
<Card.Content class="p-0"> <Card.Content class="p-0">
@@ -934,8 +950,8 @@
<span class="font-medium">{selectedTime}</span> <span class="font-medium">{selectedTime}</span>
</div> </div>
<div class="flex justify-between"> <div class="flex justify-between">
<span>Total Duration:</span> <span>Estimated Duration:</span>
<span class="font-medium">{getTotalDuration()} minutes</span> <span class="font-medium">{formattedTotalDuration}</span>
</div> </div>
<Separator class="my-2" /> <Separator class="my-2" />
<div class="flex justify-between font-semibold"> <div class="flex justify-between font-semibold">