@xyo-network/react-shared 2.25.60 → 2.25.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/cjs/WebAppNavigationType.d.ts +1 -0
  2. package/dist/cjs/WebAppNavigationType.js +3 -0
  3. package/dist/cjs/WebAppNavigationType.js.map +1 -0
  4. package/dist/cjs/components/index.d.ts +0 -1
  5. package/dist/cjs/components/index.js +0 -1
  6. package/dist/cjs/components/index.js.map +1 -1
  7. package/dist/cjs/contexts/AppSettings/Context.d.ts +3 -0
  8. package/dist/cjs/contexts/AppSettings/Context.js.map +1 -1
  9. package/dist/cjs/contexts/AppSettings/Provider.d.ts +1 -1
  10. package/dist/cjs/contexts/AppSettings/Provider.js +9 -2
  11. package/dist/cjs/contexts/AppSettings/Provider.js.map +1 -1
  12. package/dist/cjs/contexts/AppSettings/Slug.d.ts +2 -1
  13. package/dist/cjs/contexts/AppSettings/Slug.js +1 -0
  14. package/dist/cjs/contexts/AppSettings/Slug.js.map +1 -1
  15. package/dist/cjs/contexts/AppSettings/Storage.d.ts +3 -0
  16. package/dist/cjs/contexts/AppSettings/Storage.js +6 -0
  17. package/dist/cjs/contexts/AppSettings/Storage.js.map +1 -1
  18. package/dist/cjs/contexts/AppSettings/appSettingDefault.js +1 -0
  19. package/dist/cjs/contexts/AppSettings/appSettingDefault.js.map +1 -1
  20. package/dist/cjs/contexts/index.d.ts +0 -1
  21. package/dist/cjs/contexts/index.js +0 -1
  22. package/dist/cjs/contexts/index.js.map +1 -1
  23. package/dist/esm/WebAppNavigationType.d.ts +1 -0
  24. package/dist/esm/WebAppNavigationType.js +2 -0
  25. package/dist/esm/WebAppNavigationType.js.map +1 -0
  26. package/dist/esm/components/index.d.ts +0 -1
  27. package/dist/esm/components/index.js +0 -1
  28. package/dist/esm/components/index.js.map +1 -1
  29. package/dist/esm/contexts/AppSettings/Context.d.ts +3 -0
  30. package/dist/esm/contexts/AppSettings/Context.js.map +1 -1
  31. package/dist/esm/contexts/AppSettings/Provider.d.ts +1 -1
  32. package/dist/esm/contexts/AppSettings/Provider.js +7 -0
  33. package/dist/esm/contexts/AppSettings/Provider.js.map +1 -1
  34. package/dist/esm/contexts/AppSettings/Slug.d.ts +2 -1
  35. package/dist/esm/contexts/AppSettings/Slug.js +1 -0
  36. package/dist/esm/contexts/AppSettings/Slug.js.map +1 -1
  37. package/dist/esm/contexts/AppSettings/Storage.d.ts +3 -0
  38. package/dist/esm/contexts/AppSettings/Storage.js +6 -0
  39. package/dist/esm/contexts/AppSettings/Storage.js.map +1 -1
  40. package/dist/esm/contexts/AppSettings/WebAppNavigationType.d.ts +1 -0
  41. package/dist/esm/contexts/AppSettings/WebAppNavigationType.js +2 -0
  42. package/dist/esm/contexts/AppSettings/WebAppNavigationType.js.map +1 -0
  43. package/dist/esm/contexts/AppSettings/appSettingDefault.js +1 -0
  44. package/dist/esm/contexts/AppSettings/appSettingDefault.js.map +1 -1
  45. package/dist/esm/contexts/index.d.ts +0 -1
  46. package/dist/esm/contexts/index.js +0 -1
  47. package/dist/esm/contexts/index.js.map +1 -1
  48. package/package.json +10 -10
  49. package/src/components/index.ts +0 -1
  50. package/src/contexts/index.ts +0 -1
  51. package/src/components/DarkModeIconButton.tsx +0 -19
  52. package/src/contexts/AppSettings/Context.ts +0 -12
  53. package/src/contexts/AppSettings/Provider.tsx +0 -40
  54. package/src/contexts/AppSettings/Slug.ts +0 -4
  55. package/src/contexts/AppSettings/Storage.ts +0 -25
  56. package/src/contexts/AppSettings/StorageBase.ts +0 -86
  57. package/src/contexts/AppSettings/appSettingDefault.ts +0 -8
  58. package/src/contexts/AppSettings/index.ts +0 -6
  59. package/src/contexts/AppSettings/useAppSettings.ts +0 -7
@@ -0,0 +1 @@
1
+ export declare type WebAppNavigationType = 'menu' | 'sidebar';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=WebAppNavigationType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebAppNavigationType.js","sourceRoot":"","sources":["../../src/WebAppNavigationType.ts"],"names":[],"mappings":""}
@@ -1,6 +1,5 @@
1
1
  export * from './Ampersand';
2
2
  export * from './BasicHero';
3
- export * from './DarkModeIconButton';
4
3
  export * from './ErrorBoundry';
5
4
  export * from './FullWidthCard';
6
5
  export * from './JsonRouteWrapper';
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./Ampersand"), exports);
5
5
  tslib_1.__exportStar(require("./BasicHero"), exports);
6
- tslib_1.__exportStar(require("./DarkModeIconButton"), exports);
7
6
  tslib_1.__exportStar(require("./ErrorBoundry"), exports);
8
7
  tslib_1.__exportStar(require("./FullWidthCard"), exports);
9
8
  tslib_1.__exportStar(require("./JsonRouteWrapper"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,sDAA2B;AAC3B,+DAAoC;AACpC,yDAA8B;AAC9B,0DAA+B;AAC/B,6DAAkC;AAClC,6DAAkC;AAClC,iDAAsB;AACtB,4DAAiC;AACjC,8DAAmC;AACnC,uDAA4B;AAC5B,sDAA2B;AAC3B,yDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,sDAA2B;AAC3B,yDAA8B;AAC9B,0DAA+B;AAC/B,6DAAkC;AAClC,6DAAkC;AAClC,iDAAsB;AACtB,4DAAiC;AACjC,8DAAmC;AACnC,uDAA4B;AAC5B,sDAA2B;AAC3B,yDAA8B"}
@@ -1,8 +1,11 @@
1
1
  /// <reference types="react" />
2
+ import { WebAppNavigationType } from '../../WebAppNavigationType';
2
3
  export interface AppSettingsContextProps {
3
4
  darkMode?: boolean;
4
5
  developerMode?: boolean;
5
6
  enableDarkMode?: (value: boolean) => void;
6
7
  enableDeveloperMode?: (value: boolean) => void;
8
+ changeNavigationType?: (value: WebAppNavigationType) => void;
9
+ navigationType?: WebAppNavigationType;
7
10
  }
8
11
  export declare const AppSettingsContext: import("react").Context<AppSettingsContextProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Context.ts"],"names":[],"mappings":";;;AAAA,iCAAqC;AAErC,2DAAuD;AAS1C,QAAA,kBAAkB,GAAG,IAAA,qBAAa,EAA0B,IAAA,qCAAiB,GAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Context.ts"],"names":[],"mappings":";;;AAAA,iCAAqC;AAGrC,2DAAuD;AAW1C,QAAA,kBAAkB,GAAG,IAAA,qBAAa,EAA0B,IAAA,qCAAiB,GAAE,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { WithChildren } from '@xylabs/react-shared';
2
- import React, { ProviderProps } from 'react';
2
+ import { ProviderProps } from 'react';
3
3
  import { AppSettingsContextProps } from './Context';
4
4
  import { AppSettingsStorage } from './Storage';
5
5
  export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
@@ -10,6 +10,7 @@ const AppSettingsProvider = (_a) => {
10
10
  var { storage = new Storage_1.AppSettingsStorage(), value, children } = _a, props = tslib_1.__rest(_a, ["storage", "value", "children"]);
11
11
  const [developerMode, setDeveloperMode] = (0, react_1.useState)(storage.developerMode);
12
12
  const [darkMode, setDarkMode] = (0, react_1.useState)(storage.darkMode);
13
+ const [navigationType, setNaviagtionType] = (0, react_1.useState)(storage.navigationType);
13
14
  const enableDeveloperMode = (value) => {
14
15
  storage.developerMode = value;
15
16
  setDeveloperMode(storage.developerMode);
@@ -18,10 +19,16 @@ const AppSettingsProvider = (_a) => {
18
19
  storage.darkMode = value;
19
20
  setDarkMode(storage.darkMode);
20
21
  };
21
- return ((0, jsx_runtime_1.jsx)(Context_1.AppSettingsContext.Provider, Object.assign({ value: Object.assign({ darkMode,
22
+ const changeNavigationType = (value) => {
23
+ storage.navigationType = value;
24
+ setNaviagtionType(value);
25
+ };
26
+ return ((0, jsx_runtime_1.jsx)(Context_1.AppSettingsContext.Provider, Object.assign({ value: Object.assign({ changeNavigationType,
27
+ darkMode,
22
28
  developerMode,
23
29
  enableDarkMode,
24
- enableDeveloperMode }, value) }, props, { children: children })));
30
+ enableDeveloperMode,
31
+ navigationType }, value) }, props, { children: children })));
25
32
  };
26
33
  exports.AppSettingsProvider = AppSettingsProvider;
27
34
  //# sourceMappingURL=Provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":";;;;;AACA,iCAAsD;AAEtD,uCAAuE;AACvE,uCAA8C;AAMvC,MAAM,mBAAmB,GAAqD,CAAC,EAAiE,EAAE,EAAE;QAArE,EAAE,OAAO,GAAG,IAAI,4BAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,OAAY,EAAP,KAAK,sBAA/D,gCAAiE,CAAF;IACnJ,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACzE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE1D,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAE,EAAE;QAC7C,OAAO,CAAC,aAAa,GAAG,KAAK,CAAA;QAC7B,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,EAAE;QACxC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAA;QACxB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,OAAO,CACL,uBAAC,4BAAkB,CAAC,QAAQ,kBAC1B,KAAK,kBACH,QAAQ;YACR,aAAa;YACb,cAAc;YACd,mBAAmB,IAEhB,KAAK,KAEN,KAAK,cAER,QAAQ,IACmB,CAC/B,CAAA;AACH,CAAC,CAAA;AA7BY,QAAA,mBAAmB,uBA6B/B"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":";;;;;AACA,iCAA+C;AAG/C,uCAAuE;AACvE,uCAA8C;AAMvC,MAAM,mBAAmB,GAAqD,CAAC,EAAiE,EAAE,EAAE;QAArE,EAAE,OAAO,GAAG,IAAI,4BAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,OAAY,EAAP,KAAK,sBAA/D,gCAAiE,CAAF;IACnJ,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACzE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC1D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAE5E,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAE,EAAE;QAC7C,OAAO,CAAC,aAAa,GAAG,KAAK,CAAA;QAC7B,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,EAAE;QACxC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAA;QACxB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,oBAAoB,GAAG,CAAC,KAA2B,EAAE,EAAE;QAC3D,OAAO,CAAC,cAAc,GAAG,KAAK,CAAA;QAC9B,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC,CAAA;IAED,OAAO,CACL,uBAAC,4BAAkB,CAAC,QAAQ,kBAC1B,KAAK,kBACH,oBAAoB;YACpB,QAAQ;YACR,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,cAAc,IAEX,KAAK,KAEN,KAAK,cAER,QAAQ,IACmB,CAC/B,CAAA;AACH,CAAC,CAAA;AArCY,QAAA,mBAAmB,uBAqC/B"}
@@ -1,4 +1,5 @@
1
1
  export declare enum AppSettingSlug {
2
2
  DarkMode = "darkmode",
3
- Developer = "developer"
3
+ Developer = "developer",
4
+ NavigationType = "navgiationType"
4
5
  }
@@ -5,5 +5,6 @@ var AppSettingSlug;
5
5
  (function (AppSettingSlug) {
6
6
  AppSettingSlug["DarkMode"] = "darkmode";
7
7
  AppSettingSlug["Developer"] = "developer";
8
+ AppSettingSlug["NavigationType"] = "navgiationType";
8
9
  })(AppSettingSlug = exports.AppSettingSlug || (exports.AppSettingSlug = {}));
9
10
  //# sourceMappingURL=Slug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slug.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Slug.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;AACzB,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB"}
1
+ {"version":3,"file":"Slug.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Slug.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;IACvB,mDAAiC,CAAA;AACnC,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
@@ -1,3 +1,4 @@
1
+ import { WebAppNavigationType } from '../../WebAppNavigationType';
1
2
  import { AppSettingsStorageBase } from './StorageBase';
2
3
  export declare class AppSettingsStorage extends AppSettingsStorageBase {
3
4
  constructor(prefix?: string, defaults?: Record<string, unknown>);
@@ -5,4 +6,6 @@ export declare class AppSettingsStorage extends AppSettingsStorageBase {
5
6
  set darkMode(value: boolean);
6
7
  get developerMode(): boolean;
7
8
  set developerMode(value: boolean);
9
+ get navigationType(): WebAppNavigationType;
10
+ set navigationType(value: WebAppNavigationType);
8
11
  }
@@ -20,6 +20,12 @@ class AppSettingsStorage extends StorageBase_1.AppSettingsStorageBase {
20
20
  set developerMode(value) {
21
21
  this.setBoolean(Slug_1.AppSettingSlug.Developer, value);
22
22
  }
23
+ get navigationType() {
24
+ return this.getString(Slug_1.AppSettingSlug.NavigationType);
25
+ }
26
+ set navigationType(value) {
27
+ this.setString(Slug_1.AppSettingSlug.NavigationType, value);
28
+ }
23
29
  }
24
30
  exports.AppSettingsStorage = AppSettingsStorage;
25
31
  //# sourceMappingURL=Storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Storage.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AACvD,iCAAuC;AACvC,+CAAsD;AAEtD,MAAa,kBAAmB,SAAQ,oCAAsB;IAC5D,YAAY,MAAM,GAAG,aAAa,EAAE,QAAkC;QACpE,KAAK,CAAC,MAAM,kCAAO,IAAA,qCAAiB,GAAE,GAAK,QAAQ,EAAG,CAAA;IACxD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,qBAAc,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAc;QACzB,IAAI,CAAC,UAAU,CAAC,qBAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,qBAAc,CAAC,SAAS,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,aAAa,CAAC,KAAc;QAC9B,IAAI,CAAC,UAAU,CAAC,qBAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;CACF;AApBD,gDAoBC"}
1
+ {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Storage.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AACvD,iCAAuC;AACvC,+CAAsD;AAEtD,MAAa,kBAAmB,SAAQ,oCAAsB;IAC5D,YAAY,MAAM,GAAG,aAAa,EAAE,QAAkC;QACpE,KAAK,CAAC,MAAM,kCAAO,IAAA,qCAAiB,GAAE,GAAK,QAAQ,EAAG,CAAA;IACxD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,qBAAc,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAc;QACzB,IAAI,CAAC,UAAU,CAAC,qBAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,qBAAc,CAAC,SAAS,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,aAAa,CAAC,KAAc;QAC9B,IAAI,CAAC,UAAU,CAAC,qBAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAc,CAAC,cAAc,CAAyB,CAAA;IAC9E,CAAC;IAED,IAAI,cAAc,CAAC,KAA2B;QAC5C,IAAI,CAAC,SAAS,CAAC,qBAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACtD,CAAC;CACF;AA5BD,gDA4BC"}
@@ -6,6 +6,7 @@ const appSettingDefault = () => {
6
6
  return {
7
7
  [Slug_1.AppSettingSlug.DarkMode]: false,
8
8
  [Slug_1.AppSettingSlug.Developer]: false,
9
+ [Slug_1.AppSettingSlug.NavigationType]: 'menu',
9
10
  };
10
11
  };
11
12
  exports.appSettingDefault = appSettingDefault;
@@ -1 +1 @@
1
- {"version":3,"file":"appSettingDefault.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/appSettingDefault.ts"],"names":[],"mappings":";;;AAAA,iCAAuC;AAEhC,MAAM,iBAAiB,GAAG,GAA4B,EAAE;IAC7D,OAAO;QACL,CAAC,qBAAc,CAAC,QAAQ,CAAC,EAAE,KAAK;QAChC,CAAC,qBAAc,CAAC,SAAS,CAAC,EAAE,KAAK;KAClC,CAAA;AACH,CAAC,CAAA;AALY,QAAA,iBAAiB,qBAK7B"}
1
+ {"version":3,"file":"appSettingDefault.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/appSettingDefault.ts"],"names":[],"mappings":";;;AAAA,iCAAuC;AAEhC,MAAM,iBAAiB,GAAG,GAA4B,EAAE;IAC7D,OAAO;QACL,CAAC,qBAAc,CAAC,QAAQ,CAAC,EAAE,KAAK;QAChC,CAAC,qBAAc,CAAC,SAAS,CAAC,EAAE,KAAK;QACjC,CAAC,qBAAc,CAAC,cAAc,CAAC,EAAE,MAAM;KACxC,CAAA;AACH,CAAC,CAAA;AANY,QAAA,iBAAiB,qBAM7B"}
@@ -1,3 +1,2 @@
1
- export * from './AppSettings';
2
1
  export * from './contextEx';
3
2
  export * from './Pixel';
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./AppSettings"), exports);
5
4
  tslib_1.__exportStar(require("./contextEx"), exports);
6
5
  tslib_1.__exportStar(require("./Pixel"), exports);
7
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":";;;AAAA,wDAA6B;AAC7B,sDAA2B;AAC3B,kDAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,kDAAuB"}
@@ -0,0 +1 @@
1
+ export declare type WebAppNavigationType = 'menu' | 'sidebar';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WebAppNavigationType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebAppNavigationType.js","sourceRoot":"","sources":["../../src/WebAppNavigationType.ts"],"names":[],"mappings":""}
@@ -1,6 +1,5 @@
1
1
  export * from './Ampersand';
2
2
  export * from './BasicHero';
3
- export * from './DarkModeIconButton';
4
3
  export * from './ErrorBoundry';
5
4
  export * from './FullWidthCard';
6
5
  export * from './JsonRouteWrapper';
@@ -1,6 +1,5 @@
1
1
  export * from './Ampersand';
2
2
  export * from './BasicHero';
3
- export * from './DarkModeIconButton';
4
3
  export * from './ErrorBoundry';
5
4
  export * from './FullWidthCard';
6
5
  export * from './JsonRouteWrapper';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA"}
@@ -1,8 +1,11 @@
1
1
  /// <reference types="react" />
2
+ import { WebAppNavigationType } from '../../WebAppNavigationType';
2
3
  export interface AppSettingsContextProps {
3
4
  darkMode?: boolean;
4
5
  developerMode?: boolean;
5
6
  enableDarkMode?: (value: boolean) => void;
6
7
  enableDeveloperMode?: (value: boolean) => void;
8
+ changeNavigationType?: (value: WebAppNavigationType) => void;
9
+ navigationType?: WebAppNavigationType;
7
10
  }
8
11
  export declare const AppSettingsContext: import("react").Context<AppSettingsContextProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AASvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAA0B,iBAAiB,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAGrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAWvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAA0B,iBAAiB,EAAE,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { WithChildren } from '@xylabs/react-shared';
2
- import React, { ProviderProps } from 'react';
2
+ import { ProviderProps } from 'react';
3
3
  import { AppSettingsContextProps } from './Context';
4
4
  import { AppSettingsStorage } from './Storage';
5
5
  export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
@@ -5,6 +5,7 @@ import { AppSettingsStorage } from './Storage';
5
5
  export const AppSettingsProvider = ({ storage = new AppSettingsStorage(), value, children, ...props }) => {
6
6
  const [developerMode, setDeveloperMode] = useState(storage.developerMode);
7
7
  const [darkMode, setDarkMode] = useState(storage.darkMode);
8
+ const [navigationType, setNaviagtionType] = useState(storage.navigationType);
8
9
  const enableDeveloperMode = (value) => {
9
10
  storage.developerMode = value;
10
11
  setDeveloperMode(storage.developerMode);
@@ -13,11 +14,17 @@ export const AppSettingsProvider = ({ storage = new AppSettingsStorage(), value,
13
14
  storage.darkMode = value;
14
15
  setDarkMode(storage.darkMode);
15
16
  };
17
+ const changeNavigationType = (value) => {
18
+ storage.navigationType = value;
19
+ setNaviagtionType(value);
20
+ };
16
21
  return (_jsx(AppSettingsContext.Provider, { value: {
22
+ changeNavigationType,
17
23
  darkMode,
18
24
  developerMode,
19
25
  enableDarkMode,
20
26
  enableDeveloperMode,
27
+ navigationType,
21
28
  ...value,
22
29
  }, ...props, children: children }));
23
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":";AACA,OAAc,EAAiB,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEtD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAM9C,MAAM,CAAC,MAAM,mBAAmB,GAAqD,CAAC,EAAE,OAAO,GAAG,IAAI,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACzJ,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACzE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE1D,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAE,EAAE;QAC7C,OAAO,CAAC,aAAa,GAAG,KAAK,CAAA;QAC7B,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,EAAE;QACxC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAA;QACxB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAC1B,KAAK,EAAE;YACL,QAAQ;YACR,aAAa;YACb,cAAc;YACd,mBAAmB;YAEnB,GAAG,KAAK;SACT,KACG,KAAK,YAER,QAAQ,GACmB,CAC/B,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAiB,QAAQ,EAAE,MAAM,OAAO,CAAA;AAG/C,OAAO,EAAE,kBAAkB,EAA2B,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAM9C,MAAM,CAAC,MAAM,mBAAmB,GAAqD,CAAC,EAAE,OAAO,GAAG,IAAI,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACzJ,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACzE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC1D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAE5E,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAE,EAAE;QAC7C,OAAO,CAAC,aAAa,GAAG,KAAK,CAAA;QAC7B,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,EAAE;QACxC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAA;QACxB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,oBAAoB,GAAG,CAAC,KAA2B,EAAE,EAAE;QAC3D,OAAO,CAAC,cAAc,GAAG,KAAK,CAAA;QAC9B,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC,CAAA;IAED,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAC1B,KAAK,EAAE;YACL,oBAAoB;YACpB,QAAQ;YACR,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,cAAc;YAEd,GAAG,KAAK;SACT,KACG,KAAK,YAER,QAAQ,GACmB,CAC/B,CAAA;AACH,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export declare enum AppSettingSlug {
2
2
  DarkMode = "darkmode",
3
- Developer = "developer"
3
+ Developer = "developer",
4
+ NavigationType = "navgiationType"
4
5
  }
@@ -2,5 +2,6 @@ export var AppSettingSlug;
2
2
  (function (AppSettingSlug) {
3
3
  AppSettingSlug["DarkMode"] = "darkmode";
4
4
  AppSettingSlug["Developer"] = "developer";
5
+ AppSettingSlug["NavigationType"] = "navgiationType";
5
6
  })(AppSettingSlug || (AppSettingSlug = {}));
6
7
  //# sourceMappingURL=Slug.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slug.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Slug.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;AACzB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB"}
1
+ {"version":3,"file":"Slug.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Slug.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;IACvB,mDAAiC,CAAA;AACnC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
@@ -1,3 +1,4 @@
1
+ import { WebAppNavigationType } from '../../WebAppNavigationType';
1
2
  import { AppSettingsStorageBase } from './StorageBase';
2
3
  export declare class AppSettingsStorage extends AppSettingsStorageBase {
3
4
  constructor(prefix?: string, defaults?: Record<string, unknown>);
@@ -5,4 +6,6 @@ export declare class AppSettingsStorage extends AppSettingsStorageBase {
5
6
  set darkMode(value: boolean);
6
7
  get developerMode(): boolean;
7
8
  set developerMode(value: boolean);
9
+ get navigationType(): WebAppNavigationType;
10
+ set navigationType(value: WebAppNavigationType);
8
11
  }
@@ -17,5 +17,11 @@ export class AppSettingsStorage extends AppSettingsStorageBase {
17
17
  set developerMode(value) {
18
18
  this.setBoolean(AppSettingSlug.Developer, value);
19
19
  }
20
+ get navigationType() {
21
+ return this.getString(AppSettingSlug.NavigationType);
22
+ }
23
+ set navigationType(value) {
24
+ this.setString(AppSettingSlug.NavigationType, value);
25
+ }
20
26
  }
21
27
  //# sourceMappingURL=Storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,MAAM,OAAO,kBAAmB,SAAQ,sBAAsB;IAC5D,YAAY,MAAM,GAAG,aAAa,EAAE,QAAkC;QACpE,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,iBAAiB,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAc;QACzB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,aAAa,CAAC,KAAc;QAC9B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,MAAM,OAAO,kBAAmB,SAAQ,sBAAsB;IAC5D,YAAY,MAAM,GAAG,aAAa,EAAE,QAAkC;QACpE,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,iBAAiB,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,QAAQ,CAAC,KAAc;QACzB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,aAAa,CAAC,KAAc;QAC9B,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,CAAyB,CAAA;IAC9E,CAAC;IAED,IAAI,cAAc,CAAC,KAA2B;QAC5C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACtD,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export declare type WebAppNavigationType = 'menu' | 'sidebar';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WebAppNavigationType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebAppNavigationType.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/WebAppNavigationType.ts"],"names":[],"mappings":""}
@@ -3,6 +3,7 @@ export const appSettingDefault = () => {
3
3
  return {
4
4
  [AppSettingSlug.DarkMode]: false,
5
5
  [AppSettingSlug.Developer]: false,
6
+ [AppSettingSlug.NavigationType]: 'menu',
6
7
  };
7
8
  };
8
9
  //# sourceMappingURL=appSettingDefault.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appSettingDefault.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/appSettingDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAA4B,EAAE;IAC7D,OAAO;QACL,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,KAAK;QAChC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK;KAClC,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"appSettingDefault.js","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/appSettingDefault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAA4B,EAAE;IAC7D,OAAO;QACL,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,KAAK;QAChC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK;QACjC,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM;KACxC,CAAA;AACH,CAAC,CAAA"}
@@ -1,3 +1,2 @@
1
- export * from './AppSettings';
2
1
  export * from './contextEx';
3
2
  export * from './Pixel';
@@ -1,4 +1,3 @@
1
- export * from './AppSettings';
2
1
  export * from './contextEx';
3
2
  export * from './Pixel';
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA"}
package/package.json CHANGED
@@ -12,20 +12,20 @@
12
12
  "dependencies": {
13
13
  "@emotion/react": "^11.9.3",
14
14
  "@emotion/styled": "^11.9.3",
15
- "@mui/icons-material": "^5.8.3",
16
- "@mui/material": "^5.8.3",
17
- "@mui/styles": "^5.8.3",
15
+ "@mui/icons-material": "^5.8.4",
16
+ "@mui/material": "^5.8.4",
17
+ "@mui/styles": "^5.8.4",
18
18
  "@xylabs/pixel": "^1.3.9",
19
- "@xylabs/react-button": "^2.12.24",
20
- "@xylabs/react-common": "^2.12.24",
21
- "@xylabs/react-flexbox": "^2.12.24",
22
- "@xylabs/react-shared": "^2.12.24",
19
+ "@xylabs/react-button": "^2.12.25",
20
+ "@xylabs/react-common": "^2.12.25",
21
+ "@xylabs/react-flexbox": "^2.12.25",
22
+ "@xylabs/react-shared": "^2.12.25",
23
23
  "@xylabs/sdk-js": "^2.5.7",
24
24
  "@xyo-network/api": "^2.20.45",
25
25
  "@xyo-network/network": "^2.20.45",
26
26
  "axios": "^0.27.2",
27
- "react": "^18.1.0",
28
- "react-dom": "^18.1.0",
27
+ "react": "^18.2.0",
28
+ "react-dom": "^18.2.0",
29
29
  "react-json-view": "^1.21.3",
30
30
  "react-router-dom": "^6.3.0",
31
31
  "tslib": "^2.4.0"
@@ -88,6 +88,6 @@
88
88
  },
89
89
  "sideEffects": false,
90
90
  "types": "dist/esm/index.d.ts",
91
- "version": "2.25.60",
91
+ "version": "2.25.63",
92
92
  "packageManager": "yarn@3.1.1"
93
93
  }
@@ -1,6 +1,5 @@
1
1
  export * from './Ampersand'
2
2
  export * from './BasicHero'
3
- export * from './DarkModeIconButton'
4
3
  export * from './ErrorBoundry'
5
4
  export * from './FullWidthCard'
6
5
  export * from './JsonRouteWrapper'
@@ -1,3 +1,2 @@
1
- export * from './AppSettings'
2
1
  export * from './contextEx'
3
2
  export * from './Pixel'
@@ -1,19 +0,0 @@
1
- import DarkModeRoundedIcon from '@mui/icons-material/DarkModeRounded'
2
- import LightModeRoundedIcon from '@mui/icons-material/LightModeRounded'
3
- import { IconButton, IconButtonProps } from '@mui/material'
4
-
5
- import { useAppSettings } from '../contexts'
6
-
7
- export const DarkModeIconButton: React.FC<IconButtonProps> = (props) => {
8
- const { darkMode, enableDarkMode } = useAppSettings()
9
-
10
- const handleDarkModeChange = () => {
11
- enableDarkMode?.(!darkMode)
12
- }
13
-
14
- return (
15
- <IconButton onClick={handleDarkModeChange} {...props}>
16
- {darkMode ? <DarkModeRoundedIcon /> : <LightModeRoundedIcon />}
17
- </IconButton>
18
- )
19
- }
@@ -1,12 +0,0 @@
1
- import { createContext } from 'react'
2
-
3
- import { appSettingDefault } from './appSettingDefault'
4
-
5
- export interface AppSettingsContextProps {
6
- darkMode?: boolean
7
- developerMode?: boolean
8
- enableDarkMode?: (value: boolean) => void
9
- enableDeveloperMode?: (value: boolean) => void
10
- }
11
-
12
- export const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())
@@ -1,40 +0,0 @@
1
- import { WithChildren } from '@xylabs/react-shared'
2
- import React, { ProviderProps, useState } from 'react'
3
-
4
- import { AppSettingsContext, AppSettingsContextProps } from './Context'
5
- import { AppSettingsStorage } from './Storage'
6
-
7
- export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
8
- storage?: AppSettingsStorage
9
- }
10
-
11
- export const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>> = ({ storage = new AppSettingsStorage(), value, children, ...props }) => {
12
- const [developerMode, setDeveloperMode] = useState(storage.developerMode)
13
- const [darkMode, setDarkMode] = useState(storage.darkMode)
14
-
15
- const enableDeveloperMode = (value: boolean) => {
16
- storage.developerMode = value
17
- setDeveloperMode(storage.developerMode)
18
- }
19
-
20
- const enableDarkMode = (value: boolean) => {
21
- storage.darkMode = value
22
- setDarkMode(storage.darkMode)
23
- }
24
-
25
- return (
26
- <AppSettingsContext.Provider
27
- value={{
28
- darkMode,
29
- developerMode,
30
- enableDarkMode,
31
- enableDeveloperMode,
32
-
33
- ...value,
34
- }}
35
- {...props}
36
- >
37
- {children}
38
- </AppSettingsContext.Provider>
39
- )
40
- }
@@ -1,4 +0,0 @@
1
- export enum AppSettingSlug {
2
- DarkMode = 'darkmode',
3
- Developer = 'developer',
4
- }
@@ -1,25 +0,0 @@
1
- import { appSettingDefault } from './appSettingDefault'
2
- import { AppSettingSlug } from './Slug'
3
- import { AppSettingsStorageBase } from './StorageBase'
4
-
5
- export class AppSettingsStorage extends AppSettingsStorageBase {
6
- constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {
7
- super(prefix, { ...appSettingDefault(), ...defaults })
8
- }
9
-
10
- get darkMode() {
11
- return this.getBoolean(AppSettingSlug.DarkMode)
12
- }
13
-
14
- set darkMode(value: boolean) {
15
- this.setBoolean(AppSettingSlug.DarkMode, value)
16
- }
17
-
18
- get developerMode() {
19
- return this.getBoolean(AppSettingSlug.Developer)
20
- }
21
-
22
- set developerMode(value: boolean) {
23
- this.setBoolean(AppSettingSlug.Developer, value)
24
- }
25
- }
@@ -1,86 +0,0 @@
1
- import { assertEx } from '@xylabs/sdk-js'
2
-
3
- import { assertDefinedEx } from '../../lib'
4
-
5
- export class AppSettingsStorageBase {
6
- private prefix: string
7
- private defaults: Record<string, unknown>
8
- constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {
9
- this.prefix = prefix
10
- this.defaults = defaults ?? {}
11
- }
12
-
13
- public getBoolean(name: string): boolean {
14
- const storedValue = localStorage.getItem(`${this.prefix}|${name}`)
15
- if (!storedValue) {
16
- assertEx(typeof this.defaults[name] === 'boolean', 'Default value is not boolean')
17
- const defaultValue = this.defaults[name] as boolean
18
- assertEx(defaultValue !== undefined, `Missing Default for ${name}`)
19
- return defaultValue
20
- }
21
- return storedValue !== 'false'
22
- }
23
-
24
- public setBoolean(name: string, value: boolean) {
25
- localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))
26
- }
27
-
28
- public setNumber(name: string, value: number) {
29
- localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))
30
- }
31
-
32
- public getNumber(name: string): number {
33
- const storedValue = localStorage.getItem(`${this.prefix}|${name}`)
34
- if (!storedValue) {
35
- assertEx(typeof this.defaults[name] === 'boolean', 'Default value is not boolean')
36
- const defaultValue = this.defaults[name] as number
37
- assertEx(defaultValue !== undefined, `Missing Default for ${name}`)
38
- return defaultValue
39
- }
40
- return parseFloat(storedValue)
41
- }
42
-
43
- public getString(name: string) {
44
- const storedValue = localStorage.getItem(`${this.prefix}|${name}`)
45
- if (!storedValue) {
46
- assertDefinedEx(typeof this.defaults[name] === 'string', 'Default value is not string')
47
- const defaultValue = this.defaults[name] as string
48
- assertEx(defaultValue !== undefined, `Missing Default for ${name}`)
49
- return defaultValue
50
- }
51
- return storedValue
52
- }
53
-
54
- public setString(name: string, value: string) {
55
- localStorage.setItem(`${this.prefix}|${name}`, value)
56
- }
57
-
58
- public getStringArray(name: string) {
59
- const storedValue = localStorage.getItem(`${this.prefix}|${name}`)?.split(',')
60
- if (!storedValue) {
61
- assertDefinedEx(Array.isArray(this.defaults[name]), 'Default value is not array')
62
- const defaultValue = this.defaults[name] as string[]
63
- assertEx(defaultValue !== undefined, `Missing Default for ${name}`)
64
- return defaultValue
65
- }
66
- return storedValue
67
- }
68
-
69
- public setStringArray(name: string, value: string[]) {
70
- localStorage.setItem(`${this.prefix}|${name}`, value.join(','))
71
- }
72
-
73
- public getObject<T>(name: string): T {
74
- const storedValue = localStorage.getItem(`${this.prefix}|${name}`)
75
- const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null
76
- if (!parsedStoredValue) {
77
- assertEx(typeof this.defaults[name] === 'object', 'Default value is not object')
78
- return assertEx(this.defaults[name] as T, `Missing Default for ${name}`)
79
- }
80
- return parsedStoredValue as T
81
- }
82
-
83
- public setObject<T>(name: string, value: T) {
84
- localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))
85
- }
86
- }
@@ -1,8 +0,0 @@
1
- import { AppSettingSlug } from './Slug'
2
-
3
- export const appSettingDefault = (): Record<string, unknown> => {
4
- return {
5
- [AppSettingSlug.DarkMode]: false,
6
- [AppSettingSlug.Developer]: false,
7
- }
8
- }
@@ -1,6 +0,0 @@
1
- export * from './Context'
2
- export * from './Provider'
3
- export * from './Slug'
4
- export * from './Storage'
5
- export * from './StorageBase'
6
- export * from './useAppSettings'
@@ -1,7 +0,0 @@
1
- import { useContext } from 'react'
2
-
3
- import { AppSettingsContext } from './Context'
4
-
5
- export const useAppSettings = () => {
6
- return useContext(AppSettingsContext)
7
- }