diff --git a/src/app/features/room/ScheduleMessageModal.tsx b/src/app/features/room/ScheduleMessageModal.tsx index 253eac0a6..3874d3ce6 100644 --- a/src/app/features/room/ScheduleMessageModal.tsx +++ b/src/app/features/room/ScheduleMessageModal.tsx @@ -21,7 +21,13 @@ import { useMatrixClient } from '../../hooks/useMatrixClient'; import { stopPropagation } from '../../utils/keyboard'; import { scheduleMessage } from '../../utils/scheduledMessages'; import { useModalStyle } from '../../hooks/useModalStyle'; -import { toLocalDate, toLocalTime, parseLocalDateTime, pickerInputStyle } from '../../utils/datetimeInput'; +import { + toLocalDate, + toLocalTime, + parseLocalDateTime, + pickerInputStyle, + formatFriendlyDateTime, +} from '../../utils/datetimeInput'; interface ScheduleMessageModalProps { roomId: string; @@ -47,25 +53,6 @@ function formatRelativeTime(ms: number): string { return 'in less than a minute'; } -function formatSendAt(sendAt: Date): string { - const now = new Date(); - const isToday = - sendAt.getFullYear() === now.getFullYear() && - sendAt.getMonth() === now.getMonth() && - sendAt.getDate() === now.getDate(); - const tomorrow = new Date(now); - tomorrow.setDate(tomorrow.getDate() + 1); - const isTomorrow = - sendAt.getFullYear() === tomorrow.getFullYear() && - sendAt.getMonth() === tomorrow.getMonth() && - sendAt.getDate() === tomorrow.getDate(); - - const timeStr = sendAt.toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit' }); - if (isToday) return `Today at ${timeStr}`; - if (isTomorrow) return `Tomorrow at ${timeStr}`; - return `${sendAt.toLocaleDateString()} at ${timeStr}`; -} - export function ScheduleMessageModal({ roomId, initialBody, @@ -112,7 +99,10 @@ export function ScheduleMessageModal({ setPreview(null); return; } - setPreview({ label: formatSendAt(sendAt), relative: formatRelativeTime(diffMs) }); + setPreview({ + label: formatFriendlyDateTime(sendAt.getTime()), + relative: formatRelativeTime(diffMs), + }); }, [getSendAt]); useEffect(() => {