Browse Source

safe mode

David `Deltakosh` Catuhe 5 years ago
parent
commit
6eee8afa85

+ 4 - 0
Playground/src/components/commandBarComponent.tsx

@@ -52,20 +52,24 @@ export class CommandBarComponent extends React.Component<ICommandBarComponentPro
                     {
                         label: "Safe mode",
                         storeKey: "safe-mode",
+                        defaultValue: false,
                         onCheck: () => {}
                     },                     
                     {
                         label: "CTRL+S to save",
                         storeKey: "ctrl-s-to-save",
+                        defaultValue: true,
                         onCheck: () => {}
                     }, 
                     {
                         label: "editor",
                         storeKey: "editor",
+                        defaultValue: true,
                         onCheck: (value) => {this.props.globalState.onEditorDisplayChangedObservable.notifyObservers(value)}
                     }, {
                         label: "minimap",
                         storeKey: "minimap",
+                        defaultValue: true,
                         onCheck: (value) => {this.props.globalState.onMinimapChangedObservable.notifyObservers(value)}
                     }, {
                         label: "fullscreen",

+ 4 - 3
Playground/src/components/commandDropdownComponent.tsx

@@ -6,7 +6,8 @@ interface ICommandDropdownComponentProps {
     globalState: GlobalState;
     icon: string; 
     tooltip: string;
-    items: {label: string, onClick?: () => void, onCheck?: (value: boolean) => void, storeKey?: string}[]
+    items: {label: string, onClick?: () => void, onCheck?: (value: boolean) => void, storeKey?: string, 
+        defaultValue?: boolean;}[]
 }
 
 export class CommandDropdownComponent extends React.Component<ICommandDropdownComponentProps, {isExpanded: boolean}> {    
@@ -37,7 +38,7 @@ export class CommandDropdownComponent extends React.Component<ICommandDropdownCo
                                         return (
                                             <div className="command-dropdown-label" key={m.label} onClick={() => {
                                                 if (! m.onClick) {
-                                                    let newValue = !Utilities.ReadBoolFromStore(m.storeKey!);
+                                                    let newValue = !Utilities.ReadBoolFromStore(m.storeKey!, m.defaultValue || false);
                                                     Utilities.StoreBoolFromStore(m.storeKey!, newValue);
                                                     this.forceUpdate();
                                                     m.onCheck!(newValue);
@@ -57,7 +58,7 @@ export class CommandDropdownComponent extends React.Component<ICommandDropdownCo
                                                             this.forceUpdate();
                                                             m.onCheck!(evt.target.checked);
                                                         }}
-                                                        checked={Utilities.ReadBoolFromStore(m.storeKey!)}/>
+                                                        checked={Utilities.ReadBoolFromStore(m.storeKey!, m.defaultValue || false)}/>
                                                 }
                                             </div>
                                         )

+ 2 - 2
Playground/src/playground.tsx

@@ -39,12 +39,12 @@ export class Playground extends React.Component<IPlaygroundProps, {errorMessage:
        this.monacoRef = React.createRef();
        this.renderingRef = React.createRef();
 
-       let defaultDesktop = Utilities.ReadBoolFromStore("editor") ? EditionMode.Desktop : EditionMode.RenderingOnly;
+       let defaultDesktop = Utilities.ReadBoolFromStore("editor", true) ? EditionMode.Desktop : EditionMode.RenderingOnly;
 
        this.state = {errorMessage: "", mode: window.innerWidth < this._globalState.MobileSizeTrigger ? this._globalState.mobileDefaultMode : defaultDesktop};
 
        window.addEventListener("resize", () => {
-            let defaultDesktop = Utilities.ReadBoolFromStore("editor") ? EditionMode.Desktop : EditionMode.RenderingOnly;
+            let defaultDesktop = Utilities.ReadBoolFromStore("editor", true) ? EditionMode.Desktop : EditionMode.RenderingOnly;
            this.setState({mode: window.innerWidth < this._globalState.MobileSizeTrigger ? this._globalState.mobileDefaultMode : defaultDesktop});
        });
 

+ 3 - 3
Playground/src/tools/monacoManager.ts

@@ -26,7 +26,7 @@ export class MonacoManager {
 
     public constructor(public globalState: GlobalState) {
         window.addEventListener('beforeunload', (evt) => {
-            if (Utilities.ReadBoolFromStore("safe-mode")) {
+            if (Utilities.ReadBoolFromStore("safe-mode", false)) {
                 var message = 'Are you sure you want to leave. You have unsaved work.';
                 evt.preventDefault();
                 evt.returnValue = message;
@@ -107,7 +107,7 @@ export class MonacoManager {
     }
 
     private _checkSafeMode(message: string) {
-        if (Utilities.ReadBoolFromStore("safe-mode")) {
+        if (Utilities.ReadBoolFromStore("safe-mode", false)) {
             return window.confirm(message);
         }
 
@@ -143,7 +143,7 @@ export class MonacoManager {
             showFoldingControls: "always",
             renderIndentGuides: true,
             minimap: {
-                enabled: Utilities.ReadBoolFromStore("minimap")
+                enabled: Utilities.ReadBoolFromStore("minimap", true)
             }
         };      
 

+ 1 - 1
Playground/src/tools/shortcutManager.ts

@@ -32,7 +32,7 @@ export class ShortcutManager {
                 (e.keyCode === 83)
             ) {
                 e.preventDefault();
-                if (!Utilities.ReadBoolFromStore("ctrl-s-to-save")) {
+                if (!Utilities.ReadBoolFromStore("ctrl-s-to-save", true)) {
                     return;
                 }
                 this.globalState.onSaveRequiredObservable.notifyObservers();

+ 5 - 1
Playground/src/tools/utilities.ts

@@ -23,7 +23,11 @@ export class Utilities {
         return query;
     }
 
-    public static ReadBoolFromStore(key: string): boolean {
+    public static ReadBoolFromStore(key: string, defaultValue: boolean): boolean {
+        if (localStorage.getItem(key) === null) {
+            return defaultValue;
+        }
+
         return localStorage.getItem(key) === "true";
     }