fix(materialisation): show correct status for idle state after successful run
continuous-integration/drone/push Build is passing Details

- 'Up to date' badge now shows when status is idle with last_success_at
- 'Not yet run' badge only shows when status is idle AND last_run_at is null
- Success details section now shows for both completed and idle-after-success states
- Fixes issue where successful materialisation showed 'Not yet run' after transitioning from 'completed' to 'idle' status
master
Guillermo Pages 1 month ago
parent 8e64360fe2
commit 52b3d38088

@ -148,7 +148,7 @@ export default function MaterialisationStatusPanel({ clubId }: MaterialisationSt
</div> </div>
{/* Status badge */} {/* Status badge */}
{status.status === 'completed' && !isRateLimited && ( {(status.status === 'completed' || (status.status === 'idle' && status.last_success_at)) && !isRateLimited && (
<div className="flex items-center space-x-2 text-green-600"> <div className="flex items-center space-x-2 text-green-600">
<CheckCircle className="w-5 h-5" /> <CheckCircle className="w-5 h-5" />
<span className="font-semibold">Up to date</span> <span className="font-semibold">Up to date</span>
@ -176,7 +176,7 @@ export default function MaterialisationStatusPanel({ clubId }: MaterialisationSt
</div> </div>
)} )}
{status.status === 'idle' && ( {status.status === 'idle' && !status.last_run_at && (
<div className="flex items-center space-x-2 text-slate-500"> <div className="flex items-center space-x-2 text-slate-500">
<AlertTriangle className="w-5 h-5" /> <AlertTriangle className="w-5 h-5" />
<span className="font-semibold">Not yet run</span> <span className="font-semibold">Not yet run</span>
@ -194,11 +194,11 @@ export default function MaterialisationStatusPanel({ clubId }: MaterialisationSt
)} )}
{/* Success state */} {/* Success state */}
{status.status === 'completed' && status.last_success_at && !isRateLimited && ( {(status.status === 'completed' || (status.status === 'idle' && status.last_success_at)) && !isRateLimited && (
<div className="space-y-2"> <div className="space-y-2">
<div className="text-sm text-slate-700"> <div className="text-sm text-slate-700">
<span className="font-semibold">Last generated:</span>{' '} <span className="font-semibold">Last generated:</span>{' '}
{formatTimestamp(status.last_success_at)} {formatTimestamp(status.last_success_at!)}
</div> </div>
{status.slots_generated !== null && ( {status.slots_generated !== null && (
<div className="text-sm text-slate-700"> <div className="text-sm text-slate-700">

Loading…
Cancel
Save