Update style improvements and minor fixes

This commit is contained in:
2025-11-29 18:45:30 +00:00
parent 19770a2a3c
commit 5865d9dbe5
7 changed files with 162 additions and 86 deletions

View File

@@ -36,69 +36,71 @@ const DeviationList = ({
</CardHeader>
<CardContent className="space-y-2">
{deviations.map((dev: any, index: number) => (
<div key={index} className="flex items-center gap-3 p-3 bg-card rounded-lg border flex-wrap">
<Select
value={String(dev.dayOffset || 0)}
onValueChange={val => onDeviationChange(index, 'dayOffset', parseInt(val, 10))}
>
<SelectTrigger className="w-28">
<SelectValue />
</SelectTrigger>
<SelectContent>
{[...Array(parseInt(simulationDays, 10) || 1).keys()].map(day => (
<SelectItem key={day} value={String(day)}>
{t.day} {day + 1}
</SelectItem>
))}
</SelectContent>
</Select>
<div key={index} className="relative flex items-start gap-3 p-3 bg-card rounded-lg border flex-wrap">
<div className="flex items-center gap-3 flex-1 flex-wrap">
<Select
value={String(dev.dayOffset || 0)}
onValueChange={val => onDeviationChange(index, 'dayOffset', parseInt(val, 10))}
>
<SelectTrigger className="w-28">
<SelectValue />
</SelectTrigger>
<SelectContent>
{[...Array(parseInt(simulationDays, 10) || 1).keys()].map(day => (
<SelectItem key={day} value={String(day)}>
{t.day} {day + 1}
</SelectItem>
))}
</SelectContent>
</Select>
<FormTimeInput
value={dev.time}
onChange={newTime => onDeviationChange(index, 'time', newTime)}
required={true}
errorMessage={t.timeRequired || 'Time is required'}
/>
<FormTimeInput
value={dev.time}
onChange={newTime => onDeviationChange(index, 'time', newTime)}
required={true}
errorMessage={t.timeRequired || 'Time is required'}
/>
<FormNumericInput
value={dev.dose}
onChange={newDose => onDeviationChange(index, 'dose', newDose)}
increment={doseIncrement}
min={0}
unit={t.mg}
required={true}
errorMessage={t.doseRequired || 'Dose is required'}
/>
<FormNumericInput
value={dev.dose}
onChange={newDose => onDeviationChange(index, 'dose', newDose)}
increment={doseIncrement}
min={0}
unit={t.mg}
required={true}
errorMessage={t.doseRequired || 'Dose is required'}
/>
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<div className="flex items-center gap-2">
<Switch
id={`add_dose_${index}`}
checked={dev.isAdditional}
onCheckedChange={checked => onDeviationChange(index, 'isAdditional', checked)}
/>
<Label htmlFor={`add_dose_${index}`} className="text-xs whitespace-nowrap">
{t.additional}
</Label>
</div>
</TooltipTrigger>
<TooltipContent>
<p>{t.additionalTooltip}</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
</div>
<Button
type="button"
variant="ghost"
variant="outline"
size="icon"
onClick={() => onRemoveDeviation(index)}
className="text-destructive hover:text-destructive"
className="absolute top-3 right-3 text-destructive hover:bg-destructive hover:text-destructive-foreground border-destructive/30"
>
<X className="h-4 w-4" />
</Button>
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<div className="flex items-center gap-2">
<Switch
id={`add_dose_${index}`}
checked={dev.isAdditional}
onCheckedChange={checked => onDeviationChange(index, 'isAdditional', checked)}
/>
<Label htmlFor={`add_dose_${index}`} className="text-xs whitespace-nowrap">
{t.additional}
</Label>
</div>
</TooltipTrigger>
<TooltipContent>
<p>{t.additionalTooltip}</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
</div>
))}