improvement: appointment dialog UX improved.
This commit is contained in:
@@ -61,3 +61,22 @@ export function compareLocalDayStart(a: Date, b: Date): number {
|
||||
const tb = new Date(b.getFullYear(), b.getMonth(), b.getDate()).getTime();
|
||||
return ta - tb;
|
||||
}
|
||||
|
||||
export function parseTimeInputToMinutes(time: string): number {
|
||||
const [h, m] = time.split(':').map(Number);
|
||||
if (!Number.isFinite(h) || !Number.isFinite(m)) {
|
||||
return 0;
|
||||
}
|
||||
return h * 60 + m;
|
||||
}
|
||||
|
||||
export function minutesToTimeInput(minutes: number): string {
|
||||
const clamped = Math.max(0, Math.min(24 * 60 - 1, minutes));
|
||||
const h = Math.floor(clamped / 60);
|
||||
const m = clamped % 60;
|
||||
return `${String(h).padStart(2, '0')}:${String(m).padStart(2, '0')}`;
|
||||
}
|
||||
|
||||
export function adjustTimeInput(time: string, deltaMinutes: number): string {
|
||||
return minutesToTimeInput(parseTimeInputToMinutes(time) + deltaMinutes);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user