Skip to content

Commit afa0e8e

Browse files
authored
use string instead of null for system setting (#2751)
1 parent 6d43ff0 commit afa0e8e

4 files changed

Lines changed: 15 additions & 15 deletions

File tree

src/lib/components/dark-mode-icon-button.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
} from '$lib/utilities/dark-mode';
1010
1111
const buttonText = $derived(
12-
$useDarkModePreference == null
12+
$useDarkModePreference == 'system'
1313
? translate('common.system-default')
1414
: $useDarkModePreference
1515
? translate('common.night')
1616
: translate('common.day'),
1717
);
1818
1919
const buttonIcon: IconName = $derived(
20-
$useDarkModePreference == null
20+
$useDarkModePreference == 'system'
2121
? 'system-window'
2222
: $useDarkModePreference
2323
? 'moon'

src/lib/components/dark-mode-navigation-button.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
} from '$lib/utilities/dark-mode';
99
1010
const buttonText = $derived(
11-
$useDarkModePreference == null
11+
$useDarkModePreference == 'system'
1212
? translate('common.system-default')
1313
: $useDarkModePreference
1414
? translate('common.night')
1515
: translate('common.day'),
1616
);
1717
1818
const buttonIcon: IconName = $derived(
19-
$useDarkModePreference == null
19+
$useDarkModePreference == 'system'
2020
? 'system-window'
2121
: $useDarkModePreference
2222
? 'moon'

src/lib/utilities/dark-mode/dark-mode.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@ describe('dark-mode utilities', () => {
2525
});
2626

2727
describe('useDarkMode', () => {
28-
it('should return true if prefers-color-scheme is dark and preference is null', () => {
28+
it('should return true if prefers-color-scheme is dark and preference is system', () => {
2929
matchMediaMock.mockReturnValue({ matches: true }); // prefers dark
30-
useDarkModePreference.set(null);
30+
useDarkModePreference.set('system');
3131
const value = get(useDarkMode);
3232
expect(value).toBe(true);
3333
});
3434

35-
it('should return false if prefers-color-scheme is not dark and preference is null', () => {
35+
it('should return false if prefers-color-scheme is not dark and preference is system', () => {
3636
matchMediaMock.mockReturnValue({ matches: false });
37-
useDarkModePreference.set(null);
37+
useDarkModePreference.set('system');
3838
const value = get(useDarkMode);
3939
expect(value).toBe(false);
4040
});
@@ -51,16 +51,16 @@ describe('dark-mode utilities', () => {
5151
});
5252

5353
describe('getNextDarkModePreference', () => {
54-
it('should return true if the current value is null', () => {
55-
expect(getNextDarkModePreference(null)).toBe(true);
54+
it('should return true if the current value is system', () => {
55+
expect(getNextDarkModePreference('system')).toBe(true);
5656
});
5757

5858
it('should return false if the current value is true', () => {
5959
expect(getNextDarkModePreference(true)).toBe(false);
6060
});
6161

62-
it('should return null if the current value is false', () => {
63-
expect(getNextDarkModePreference(false)).toBe(null);
62+
it('should return system if the current value is false', () => {
63+
expect(getNextDarkModePreference(false)).toBe('system');
6464
});
6565
});
6666

src/lib/utilities/dark-mode/dark-mode.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { derived } from 'svelte/store';
22

33
import { persistStore } from '$lib/stores/persist-store';
44

5-
type DarkModePreference = boolean | null;
5+
type DarkModePreference = boolean | 'system';
66

77
export const useDarkModePreference = persistStore<DarkModePreference>(
88
'dark mode',
@@ -13,7 +13,7 @@ export const useDarkModePreference = persistStore<DarkModePreference>(
1313
export const useDarkMode = derived(
1414
useDarkModePreference,
1515
($useDarkModePreference) => {
16-
if ($useDarkModePreference == null) {
16+
if ($useDarkModePreference == 'system') {
1717
return (
1818
window.matchMedia?.('(prefers-color-scheme: dark)')?.matches ?? false
1919
);
@@ -24,7 +24,7 @@ export const useDarkMode = derived(
2424
);
2525

2626
export const getNextDarkModePreference = (value: DarkModePreference) =>
27-
value == null ? true : value == true ? false : null;
27+
value == 'system' ? true : value == true ? false : 'system';
2828

2929
export const darkMode = (node: HTMLElement) => {
3030
useDarkMode.subscribe((value) => {

0 commit comments

Comments
 (0)