[dart] Upgrade to Dart 2.12 and its null-safety features

This commit is contained in:
2021-03-30 18:54:31 +02:00
parent 0e8e894056
commit 291fc9111b
5 changed files with 39 additions and 42 deletions

View File

@@ -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)));
}