|
@@ -35,9 +35,11 @@ export default class AppContainer extends Container {
|
|
|
|
|
|
|
|
this.state = {
|
|
this.state = {
|
|
|
editorMode: null,
|
|
editorMode: null,
|
|
|
|
|
+ isDeviceSmallThanMd: null,
|
|
|
preferDarkModeByMediaQuery: false,
|
|
preferDarkModeByMediaQuery: false,
|
|
|
preferDarkModeByUser: localStorage.preferDarkModeByUser === 'true',
|
|
preferDarkModeByUser: localStorage.preferDarkModeByUser === 'true',
|
|
|
preferDrawerModeByUser: localStorage.preferDrawerModeByUser === 'true',
|
|
preferDrawerModeByUser: localStorage.preferDrawerModeByUser === 'true',
|
|
|
|
|
+ isDrawerMode: null,
|
|
|
isDrawerOpened: false,
|
|
isDrawerOpened: false,
|
|
|
|
|
|
|
|
isPageCreateModalShown: false,
|
|
isPageCreateModalShown: false,
|
|
@@ -113,10 +115,31 @@ export default class AppContainer extends Container {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
init() {
|
|
init() {
|
|
|
|
|
+ this.initDeviceSize();
|
|
|
this.initColorScheme();
|
|
this.initColorScheme();
|
|
|
this.initPlugins();
|
|
this.initPlugins();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ initDeviceSize() {
|
|
|
|
|
+ const mdOrAvobeHandler = async(mql) => {
|
|
|
|
|
+ let isDeviceSmallThanMd;
|
|
|
|
|
+
|
|
|
|
|
+ // sm -> md
|
|
|
|
|
+ if (mql.matches) {
|
|
|
|
|
+ isDeviceSmallThanMd = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ // md -> sm
|
|
|
|
|
+ else {
|
|
|
|
|
+ isDeviceSmallThanMd = true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ this.setState({ isDeviceSmallThanMd });
|
|
|
|
|
+ this.updateDrawerMode(isDeviceSmallThanMd, this.state.preferDrawerModeByUser);
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ this.addBreakpointListener('md', mdOrAvobeHandler, true);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
async initColorScheme() {
|
|
async initColorScheme() {
|
|
|
const switchStateByMediaQuery = async(mql) => {
|
|
const switchStateByMediaQuery = async(mql) => {
|
|
|
const preferDarkMode = mql.matches;
|
|
const preferDarkMode = mql.matches;
|
|
@@ -388,12 +411,18 @@ export default class AppContainer extends Container {
|
|
|
*/
|
|
*/
|
|
|
async setDrawerModePreference(preferDrawerMode) {
|
|
async setDrawerModePreference(preferDrawerMode) {
|
|
|
this.setState({ preferDrawerModeByUser: preferDrawerMode });
|
|
this.setState({ preferDrawerModeByUser: preferDrawerMode });
|
|
|
|
|
+ this.updateDrawerMode(this.state.isDeviceSmallThanMd, preferDrawerMode);
|
|
|
|
|
|
|
|
// store settings to localStorage
|
|
// store settings to localStorage
|
|
|
const { localStorage } = window;
|
|
const { localStorage } = window;
|
|
|
localStorage.preferDrawerModeByUser = preferDrawerMode;
|
|
localStorage.preferDrawerModeByUser = preferDrawerMode;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ updateDrawerMode(isDeviceSmallThanMd, preferDrawerModeByUser) {
|
|
|
|
|
+ const isDrawerMode = isDeviceSmallThanMd || preferDrawerModeByUser;
|
|
|
|
|
+ this.setState({ isDrawerMode });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* Set color scheme preference by user
|
|
* Set color scheme preference by user
|
|
|
* @param {boolean} isDarkMode
|
|
* @param {boolean} isDarkMode
|