From 2d2a8bd675109667a9b5aa3a5ac30671aff16fd3 Mon Sep 17 00:00:00 2001 From: Michel Weststrate Date: Thu, 17 Sep 2020 04:02:25 -0700 Subject: [PATCH] Introduce dark theme Summary: Adds support for switching dark mode on the fly. Also added the option to apply certain settings without restarting Flipper, as that isn't needed in all cases. Reviewed By: cekkaewnumchai Differential Revision: D23625854 fbshipit-source-id: 82175ba10524daf1b48a65feec8c610460df9418 --- desktop/app/src/chrome/SettingsSheet.tsx | 42 ++++++++++++++++++++---- desktop/app/src/init.tsx | 18 ++++++++++ desktop/app/src/reducers/settings.tsx | 2 ++ desktop/app/src/store.tsx | 4 +-- desktop/package.json | 2 +- desktop/static/empy.css | 12 +++++++ desktop/static/index.dev.html | 2 +- desktop/static/index.html | 2 +- desktop/themes/dark.less | 4 +++ 9 files changed, 76 insertions(+), 12 deletions(-) create mode 100644 desktop/static/empy.css create mode 100644 desktop/themes/dark.less diff --git a/desktop/app/src/chrome/SettingsSheet.tsx b/desktop/app/src/chrome/SettingsSheet.tsx index 71377b680..9b8fe10a4 100644 --- a/desktop/app/src/chrome/SettingsSheet.tsx +++ b/desktop/app/src/chrome/SettingsSheet.tsx @@ -81,6 +81,13 @@ class SettingsSheet extends Component { }); }; + applyChangesWithoutRestart = async () => { + this.props.updateSettings(this.state.updatedSettings); + this.props.updateLauncherSettings(this.state.updatedLauncherSettings); + await flush(); + this.props.onHide(); + }; + render() { const { enableAndroid, @@ -90,8 +97,14 @@ class SettingsSheet extends Component { enablePrefetching, idbPath, reactNative, + enableSandy, + darkMode, } = this.state.updatedSettings; + const settingsPristine = + isEqual(this.props.settings, this.state.updatedSettings) && + isEqual(this.props.launcherSettings, this.state.updatedLauncherSettings); + return ( Settings @@ -195,6 +208,20 @@ class SettingsSheet extends Component { }); }} /> + {enableSandy && ( + { + this.setState((prevState) => ({ + updatedSettings: { + ...prevState.updatedSettings, + darkMode: enabled, + }, + })); + }} + /> + )} { Cancel +