feat: toggle theme mode shortcut

This commit is contained in:
MayurSMahajan 2023-07-05 10:58:36 +05:30
parent e0ad364fa3
commit 793884427c
2 changed files with 24 additions and 0 deletions

View File

@ -50,6 +50,14 @@ class AppearanceSettingsCubit extends Cubit<AppearanceSettingsState> {
emit(state.copyWith(themeMode: themeMode));
}
/// Toggle the theme mode
void toggleThemeMode() {
final currentThemeMode = state.themeMode;
setThemeMode(
currentThemeMode == ThemeMode.light ? ThemeMode.dark : ThemeMode.light,
);
}
/// Update selected font in the user's settings and emit an updated state
/// with the font name.
void setFontFamily(String fontFamilyName) {

View File

@ -1,5 +1,6 @@
import 'dart:io';
import 'package:appflowy/workspace/application/appearance.dart';
import 'package:appflowy/workspace/application/home/home_setting_bloc.dart';
import 'package:flutter/material.dart';
import 'package:hotkey_manager/hotkey_manager.dart';
@ -25,6 +26,21 @@ class HomeHotKeys extends StatelessWidget {
.add(const HomeSettingEvent.collapseMenu());
},
);
final HotKey hotKeyForToggleThemeMode = HotKey(
KeyCode.keyL,
modifiers: [
Platform.isMacOS ? KeyModifier.meta : KeyModifier.control,
KeyModifier.shift,
],
scope: HotKeyScope.inapp,
);
hotKeyManager.register(
hotKeyForToggleThemeMode,
keyDownHandler: (_) {
context.read<AppearanceSettingsCubit>().toggleThemeMode();
},
);
return child;
}
}