[dart] Upgrade to Dart 2.12 and its null-safety features
This commit is contained in:
@@ -2,22 +2,19 @@ import 'dart:html' show window, querySelector;
|
||||
|
||||
final localStorage = window.localStorage;
|
||||
|
||||
Future<void> setTheme([String theme]) async {
|
||||
final currentTheme = theme ?? localStorage['theme'] ??
|
||||
() {
|
||||
final devicePrefersDark =
|
||||
window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
return devicePrefersDark ? 'nord' : 'light';
|
||||
}();
|
||||
localStorage['theme'] = currentTheme;
|
||||
querySelector('body')
|
||||
Future<void> setTheme([String? theme]) async {
|
||||
theme ??= localStorage['theem'] ??
|
||||
(window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||
? 'dark'
|
||||
: 'light');
|
||||
localStorage['theme'] = theme;
|
||||
querySelector('body')!
|
||||
..classes.clear()
|
||||
..classes.add(currentTheme);
|
||||
..classes.add(theme);
|
||||
}
|
||||
|
||||
void enableThemeChanger() {
|
||||
final themes = <String>['light', 'dark', 'nord', 'black'];
|
||||
themes.forEach((theme) =>
|
||||
querySelector('#${theme}Btn').onClick.listen((_) => setTheme(theme))
|
||||
);
|
||||
querySelector('#${theme}Btn')!.onClick.listen((_) => setTheme(theme)));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user