Yuki Takei 6 лет назад
Родитель
Сommit
9fdaf6a023
2 измененных файлов с 20 добавлено и 0 удалено
  1. 15 0
      src/client/js/components/Navbar/PersonalDropdown.jsx
  2. 5 0
      src/client/js/services/AppContainer.js

+ 15 - 0
src/client/js/components/Navbar/PersonalDropdown.jsx

@@ -37,6 +37,21 @@ const PersonalDropdown = (props) => {
         <a className="dropdown-item" href={`/user/${user.username}#user-draft-list`}><i className="icon-fw icon-docs"></i>{ t('List Drafts') }</a>
         <a className="dropdown-item" href={`/user/${user.username}#user-draft-list`}><i className="icon-fw icon-docs"></i>{ t('List Drafts') }</a>
         <a className="dropdown-item" href="/trash"><i className="icon-fw icon-trash"></i>{ t('Deleted Pages') }</a>
         <a className="dropdown-item" href="/trash"><i className="icon-fw icon-trash"></i>{ t('Deleted Pages') }</a>
         <div className="dropdown-divider"></div>
         <div className="dropdown-divider"></div>
+        <div>
+          Light
+          <div className="custom-control custom-switch checkbox-secondary">
+            <input
+              className="custom-control-input"
+              type="checkbox"
+              checked={appContainer.state.isDarkMode}
+              onChange={(e) => {
+                appContainer.changeColorScheme(e.target.checked);
+              }}
+            />
+          </div>
+          Dark
+        </div>
+        <div className="dropdown-divider"></div>
         <a className="dropdown-item" type="button" onClick={logoutHandler}><i className="icon-fw icon-power"></i>{ t('Sign out') }</a>
         <a className="dropdown-item" type="button" onClick={logoutHandler}><i className="icon-fw icon-power"></i>{ t('Sign out') }</a>
       </div>
       </div>
     </>
     </>

+ 5 - 0
src/client/js/services/AppContainer.js

@@ -31,6 +31,7 @@ export default class AppContainer extends Container {
 
 
     this.state = {
     this.state = {
       editorMode: null,
       editorMode: null,
+      isDarkMode: false,
     };
     };
 
 
     const body = document.querySelector('body');
     const body = document.querySelector('body');
@@ -340,6 +341,10 @@ export default class AppContainer extends Container {
     targetComponent.launchDrawioModal(beginLineNumber, endLineNumber);
     targetComponent.launchDrawioModal(beginLineNumber, endLineNumber);
   }
   }
 
 
+  changeColorScheme(isDarkMode) {
+    this.setState({ isDarkMode });
+  }
+
   async apiGet(path, params) {
   async apiGet(path, params) {
     return this.apiRequest('get', path, { params });
     return this.apiRequest('get', path, { params });
   }
   }