fix(web): timeline group date formatting (#11392)

* fix(web): timeline group date formatting

* add isValid check

* remove duplicate type
This commit is contained in:
Michel Heusschen 2024-07-29 16:42:55 +02:00 committed by GitHub
parent 0237f9baa3
commit 7445dad0dd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 59 additions and 6 deletions

View file

@ -1,7 +1,7 @@
import { locale } from '$lib/stores/preferences.store';
import type { AssetResponseDto } from '@immich/sdk';
import { groupBy, sortBy } from 'lodash-es';
import { DateTime, Interval } from 'luxon';
import { DateTime } from 'luxon';
import { get } from 'svelte/store';
export const fromLocalDateTime = (localDateTime: string) =>
@ -14,21 +14,25 @@ export const groupDateFormat: Intl.DateTimeFormatOptions = {
year: 'numeric',
};
export function formatGroupTitle(date: DateTime): string {
export function formatGroupTitle(_date: DateTime): string {
if (!_date.isValid) {
return _date.toString();
}
const date = _date as DateTime<true>;
const today = DateTime.now().startOf('day');
// Today
if (today.hasSame(date, 'day')) {
return 'Today';
return date.toRelativeCalendar();
}
// Yesterday
if (Interval.fromDateTimes(date, today).length('days') == 1) {
return 'Yesterday';
if (today.minus({ days: 1 }).hasSame(date, 'day')) {
return date.toRelativeCalendar();
}
// Last week
if (Interval.fromDateTimes(date, today).length('weeks') < 1) {
if (date >= today.minus({ days: 6 })) {
return date.toLocaleString({ weekday: 'long' });
}