Update custome translations to i18n and various improvements
This commit is contained in:
@@ -48,13 +48,11 @@ const DaySchedule: React.FC<DayScheduleProps> = ({
|
||||
<div className="flex items-center justify-between">
|
||||
<div className="flex items-center gap-2">
|
||||
<CardTitle className="text-lg">
|
||||
{day.isTemplate ? t.regularPlan : t.dayNumber.replace('{{number}}', String(dayIndex + 1))}
|
||||
{day.isTemplate ? t('regularPlan') : t('deviatingPlan')}
|
||||
</CardTitle>
|
||||
{day.isTemplate && (
|
||||
<Badge variant="secondary" className="text-xs">
|
||||
{t.day} 1
|
||||
</Badge>
|
||||
)}
|
||||
<Badge variant="secondary" className="text-xs">
|
||||
{t('day')} {dayIndex + 1}
|
||||
</Badge>
|
||||
</div>
|
||||
<div className="flex gap-2">
|
||||
{canAddDay && (
|
||||
@@ -62,7 +60,7 @@ const DaySchedule: React.FC<DayScheduleProps> = ({
|
||||
onClick={() => onAddDay(day.id)}
|
||||
size="sm"
|
||||
variant="outline"
|
||||
title={t.cloneDay}
|
||||
title={t('cloneDay')}
|
||||
>
|
||||
<Copy className="h-4 w-4" />
|
||||
</Button>
|
||||
@@ -73,7 +71,7 @@ const DaySchedule: React.FC<DayScheduleProps> = ({
|
||||
size="sm"
|
||||
variant="outline"
|
||||
className="border-destructive text-destructive hover:bg-destructive hover:text-destructive-foreground"
|
||||
title={t.removeDay}
|
||||
title={t('removeDay')}
|
||||
>
|
||||
<Trash2 className="h-4 w-4" />
|
||||
</Button>
|
||||
@@ -84,41 +82,49 @@ const DaySchedule: React.FC<DayScheduleProps> = ({
|
||||
<CardContent className="space-y-3">
|
||||
{/* Dose table header */}
|
||||
<div className="grid grid-cols-[120px_1fr_auto] gap-3 text-sm font-medium text-muted-foreground">
|
||||
<div>{t.time}</div>
|
||||
<div>{t.ldx} (mg)</div>
|
||||
<div>{t('time')}</div>
|
||||
<div>{t('ldx')} (mg)</div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
{/* Dose rows */}
|
||||
{day.doses.map((dose) => (
|
||||
<div key={dose.id} className="grid grid-cols-[120px_1fr_auto] gap-3 items-center">
|
||||
<FormTimeInput
|
||||
value={dose.time}
|
||||
onChange={(value) => onUpdateDose(day.id, dose.id, 'time', value)}
|
||||
required={true}
|
||||
errorMessage={t.errorTimeRequired}
|
||||
/>
|
||||
<FormNumericInput
|
||||
value={dose.ldx}
|
||||
onChange={(value) => onUpdateDose(day.id, dose.id, 'ldx', value)}
|
||||
increment={doseIncrement}
|
||||
min={0}
|
||||
unit="mg"
|
||||
required={true}
|
||||
errorMessage={t.errorNumberRequired}
|
||||
/>
|
||||
<Button
|
||||
onClick={() => onRemoveDose(day.id, dose.id)}
|
||||
size="sm"
|
||||
variant="ghost"
|
||||
disabled={day.isTemplate && day.doses.length === 1}
|
||||
className="h-9 w-9 p-0"
|
||||
title={t.removeDose}
|
||||
>
|
||||
<Trash2 className="h-4 w-4" />
|
||||
</Button>
|
||||
</div>
|
||||
))}
|
||||
{day.doses.map((dose) => {
|
||||
// Check for duplicate times
|
||||
const duplicateTimeCount = day.doses.filter(d => d.time === dose.time).length;
|
||||
const hasDuplicateTime = duplicateTimeCount > 1;
|
||||
|
||||
return (
|
||||
<div key={dose.id} className="grid grid-cols-[120px_1fr_auto] gap-3 items-center">
|
||||
<FormTimeInput
|
||||
value={dose.time}
|
||||
onChange={(value) => onUpdateDose(day.id, dose.id, 'time', value)}
|
||||
required={true}
|
||||
warning={hasDuplicateTime}
|
||||
errorMessage={t('errorTimeRequired')}
|
||||
warningMessage={t('warningDuplicateTime')}
|
||||
/>
|
||||
<FormNumericInput
|
||||
value={dose.ldx}
|
||||
onChange={(value) => onUpdateDose(day.id, dose.id, 'ldx', value)}
|
||||
increment={doseIncrement}
|
||||
min={0}
|
||||
unit="mg"
|
||||
required={true}
|
||||
errorMessage={t('errorNumberRequired')}
|
||||
/>
|
||||
<Button
|
||||
onClick={() => onRemoveDose(day.id, dose.id)}
|
||||
size="sm"
|
||||
variant="ghost"
|
||||
disabled={day.isTemplate && day.doses.length === 1}
|
||||
className="h-9 w-9 p-0"
|
||||
title={t('removeDose')}
|
||||
>
|
||||
<Trash2 className="h-4 w-4" />
|
||||
</Button>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
|
||||
{/* Add dose button */}
|
||||
{day.doses.length < 5 && (
|
||||
@@ -129,7 +135,7 @@ const DaySchedule: React.FC<DayScheduleProps> = ({
|
||||
className="w-full mt-2"
|
||||
>
|
||||
<Plus className="h-4 w-4 mr-2" />
|
||||
{t.addDose}
|
||||
{t('addDose')}
|
||||
</Button>
|
||||
)}
|
||||
</CardContent>
|
||||
@@ -144,7 +150,7 @@ const DaySchedule: React.FC<DayScheduleProps> = ({
|
||||
className="w-full"
|
||||
>
|
||||
<Plus className="h-4 w-4 mr-2" />
|
||||
{t.addDay}
|
||||
{t('addDay')}
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user