chore: release v1.5.0 (#67)

* chore: release v1.4.0

* feat: timezone-aware locale formatting

- Add TIMEZONE_TO_REGION map for 50+ timezones worldwide
- Combine app language with timezone region (e.g., en + Europe/Berlin → en-DE)
- Fix times displaying in wrong timezone (treated as UTC instead of local)
- Add parseLocalDateTime() to handle ISO strings without UTC conversion
- Users now get regional formatting (24h time, local date format) regardless of app language
- Swedish user with en-SE locale now gets yyyy-mm-dd format and 24h time
- German user with en-DE locale gets dd.mm.yyyy format and 24h time
- Add missing i18n translation key 'lastSent'
- Update all getSystemLocale() calls to pass app language parameter

* chore: release v1.5.0

* fix: timezone-independent test for CI (use 14:00 instead of 22:00)

* fix: make timezone test independent of server timezone
This commit is contained in:
Daniel Volz
2026-01-23 21:42:57 +01:00
committed by GitHub
parent 0a4f8c5948
commit 8e2fd0a761
26 changed files with 1830 additions and 108 deletions
+6 -6
View File
@@ -174,16 +174,16 @@ describe('getExpiryClass', () => {
expect(getExpiryClass(undefined, 30)).toBe('');
});
it('returns "expired" for past date', () => {
expect(getExpiryClass('2024-03-10', 30)).toBe('expired');
it('returns danger-text for past date', () => {
expect(getExpiryClass('2024-03-10', 30)).toBe('danger-text');
});
it('returns "expiring-soon" when within threshold', () => {
expect(getExpiryClass('2024-03-25', 30)).toBe('expiring-soon');
it('returns warning-text when within threshold', () => {
expect(getExpiryClass('2024-03-25', 30)).toBe('warning-text');
});
it('returns empty string when expiry is far away', () => {
expect(getExpiryClass('2024-06-15', 30)).toBe('');
it('returns success-text when expiry is far away', () => {
expect(getExpiryClass('2024-06-15', 30)).toBe('success-text');
});
});