mirror of
https://github.com/immich-app/immich
synced 2025-11-14 17:36:12 +00:00
fix(web): persisted store (#18385)
* fix(web): persisted store * fix: translation * fix: test * fix: test * revert i18n changes * fix blank locale
This commit is contained in:
parent
6b4d5e3beb
commit
daf1bee7ac
7 changed files with 64 additions and 40 deletions
|
|
@ -1,3 +1,4 @@
|
|||
import { locale } from '$lib/stores/preferences.store';
|
||||
import { parseUtcDate } from '$lib/utils/date-time';
|
||||
import { formatGroupTitle } from '$lib/utils/timeline-util';
|
||||
import { DateTime } from 'luxon';
|
||||
|
|
@ -16,48 +17,63 @@ describe('formatGroupTitle', () => {
|
|||
|
||||
it('formats today', () => {
|
||||
const date = parseUtcDate('2024-07-27T01:00:00Z');
|
||||
expect(formatGroupTitle(date.setLocale('en'))).toBe('today');
|
||||
expect(formatGroupTitle(date.setLocale('es'))).toBe('hoy');
|
||||
locale.set('en');
|
||||
expect(formatGroupTitle(date)).toBe('today');
|
||||
locale.set('es');
|
||||
expect(formatGroupTitle(date)).toBe('hoy');
|
||||
});
|
||||
|
||||
it('formats yesterday', () => {
|
||||
const date = parseUtcDate('2024-07-26T23:59:59Z');
|
||||
expect(formatGroupTitle(date.setLocale('en'))).toBe('yesterday');
|
||||
expect(formatGroupTitle(date.setLocale('fr'))).toBe('hier');
|
||||
locale.set('en');
|
||||
expect(formatGroupTitle(date)).toBe('yesterday');
|
||||
locale.set('fr');
|
||||
expect(formatGroupTitle(date)).toBe('hier');
|
||||
});
|
||||
|
||||
it('formats last week', () => {
|
||||
const date = parseUtcDate('2024-07-21T00:00:00Z');
|
||||
expect(formatGroupTitle(date.setLocale('en'))).toBe('Sunday');
|
||||
expect(formatGroupTitle(date.setLocale('ar-SA'))).toBe('الأحد');
|
||||
locale.set('en');
|
||||
expect(formatGroupTitle(date)).toBe('Sunday');
|
||||
locale.set('ar-SA');
|
||||
expect(formatGroupTitle(date)).toBe('الأحد');
|
||||
});
|
||||
|
||||
it('formats date 7 days ago', () => {
|
||||
const date = parseUtcDate('2024-07-20T00:00:00Z');
|
||||
expect(formatGroupTitle(date.setLocale('en'))).toBe('Sat, Jul 20');
|
||||
expect(formatGroupTitle(date.setLocale('de'))).toBe('Sa., 20. Juli');
|
||||
locale.set('en');
|
||||
expect(formatGroupTitle(date)).toBe('Sat, Jul 20');
|
||||
locale.set('de');
|
||||
expect(formatGroupTitle(date)).toBe('Sa., 20. Juli');
|
||||
});
|
||||
|
||||
it('formats date this year', () => {
|
||||
const date = parseUtcDate('2020-01-01T00:00:00Z');
|
||||
expect(formatGroupTitle(date.setLocale('en'))).toBe('Wed, Jan 1, 2020');
|
||||
expect(formatGroupTitle(date.setLocale('ja'))).toBe('2020年1月1日(水)');
|
||||
locale.set('en');
|
||||
expect(formatGroupTitle(date)).toBe('Wed, Jan 1, 2020');
|
||||
locale.set('ja');
|
||||
expect(formatGroupTitle(date)).toBe('2020年1月1日(水)');
|
||||
});
|
||||
|
||||
it('formats future date', () => {
|
||||
const tomorrow = parseUtcDate('2024-07-28T00:00:00Z');
|
||||
expect(formatGroupTitle(tomorrow.setLocale('en'))).toBe('Sun, Jul 28');
|
||||
locale.set('en');
|
||||
expect(formatGroupTitle(tomorrow)).toBe('Sun, Jul 28');
|
||||
|
||||
const nextMonth = parseUtcDate('2024-08-28T00:00:00Z');
|
||||
expect(formatGroupTitle(nextMonth.setLocale('en'))).toBe('Wed, Aug 28');
|
||||
locale.set('en');
|
||||
expect(formatGroupTitle(nextMonth)).toBe('Wed, Aug 28');
|
||||
|
||||
const nextYear = parseUtcDate('2025-01-10T12:00:00Z');
|
||||
expect(formatGroupTitle(nextYear.setLocale('en'))).toBe('Fri, Jan 10, 2025');
|
||||
locale.set('en');
|
||||
expect(formatGroupTitle(nextYear)).toBe('Fri, Jan 10, 2025');
|
||||
});
|
||||
|
||||
it('returns "Invalid DateTime" when date is invalid', () => {
|
||||
const date = DateTime.invalid('test');
|
||||
expect(formatGroupTitle(date.setLocale('en'))).toBe('Invalid DateTime');
|
||||
expect(formatGroupTitle(date.setLocale('es'))).toBe('Invalid DateTime');
|
||||
locale.set('en');
|
||||
expect(formatGroupTitle(date)).toBe('Invalid DateTime');
|
||||
locale.set('es');
|
||||
expect(formatGroupTitle(date)).toBe('Invalid DateTime');
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -62,12 +62,12 @@ export function formatGroupTitle(_date: DateTime): string {
|
|||
|
||||
// Today
|
||||
if (today.hasSame(date, 'day')) {
|
||||
return date.toRelativeCalendar();
|
||||
return date.toRelativeCalendar({ locale: get(locale) });
|
||||
}
|
||||
|
||||
// Yesterday
|
||||
if (today.minus({ days: 1 }).hasSame(date, 'day')) {
|
||||
return date.toRelativeCalendar();
|
||||
return date.toRelativeCalendar({ locale: get(locale) });
|
||||
}
|
||||
|
||||
// Last week
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue