@xyo-network/react-app-settings 2.81.9 → 2.82.0
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.
- package/dist/browser/components/DarkModeIconButton.d.cts +1 -0
- package/dist/browser/components/DarkModeIconButton.d.cts.map +1 -1
- package/dist/browser/components/DarkModeIconButton.d.mts +1 -0
- package/dist/browser/components/DarkModeIconButton.d.mts.map +1 -1
- package/dist/browser/components/DarkModeIconButton.d.ts +1 -0
- package/dist/browser/components/DarkModeIconButton.d.ts.map +1 -1
- package/dist/browser/components/index.d.cts +2 -2
- package/dist/browser/components/index.d.cts.map +1 -1
- package/dist/browser/components/index.d.mts +2 -2
- package/dist/browser/components/index.d.mts.map +1 -1
- package/dist/browser/components/index.d.ts +2 -2
- package/dist/browser/components/index.d.ts.map +1 -1
- package/dist/browser/contexts/AppSettings/Context.d.cts +1 -1
- package/dist/browser/contexts/AppSettings/Context.d.mts +1 -1
- package/dist/browser/contexts/AppSettings/Context.d.ts +1 -1
- package/dist/browser/contexts/AppSettings/Provider.d.cts +3 -3
- package/dist/browser/contexts/AppSettings/Provider.d.cts.map +1 -1
- package/dist/browser/contexts/AppSettings/Provider.d.mts +3 -3
- package/dist/browser/contexts/AppSettings/Provider.d.mts.map +1 -1
- package/dist/browser/contexts/AppSettings/Provider.d.ts +3 -3
- package/dist/browser/contexts/AppSettings/Provider.d.ts.map +1 -1
- package/dist/browser/contexts/AppSettings/Storage.d.cts +2 -2
- package/dist/browser/contexts/AppSettings/Storage.d.mts +2 -2
- package/dist/browser/contexts/AppSettings/Storage.d.ts +2 -2
- package/dist/browser/contexts/AppSettings/index.d.cts +6 -6
- package/dist/browser/contexts/AppSettings/index.d.cts.map +1 -1
- package/dist/browser/contexts/AppSettings/index.d.mts +6 -6
- package/dist/browser/contexts/AppSettings/index.d.mts.map +1 -1
- package/dist/browser/contexts/AppSettings/index.d.ts +6 -6
- package/dist/browser/contexts/AppSettings/index.d.ts.map +1 -1
- package/dist/browser/contexts/AppSettings/useAppSettings.d.cts +1 -1
- package/dist/browser/contexts/AppSettings/useAppSettings.d.mts +1 -1
- package/dist/browser/contexts/AppSettings/useAppSettings.d.ts +1 -1
- package/dist/browser/contexts/index.d.cts +1 -1
- package/dist/browser/contexts/index.d.mts +1 -1
- package/dist/browser/contexts/index.d.ts +1 -1
- package/dist/browser/index.cjs +108 -91
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +3 -3
- package/dist/browser/index.d.mts +3 -3
- package/dist/browser/index.d.ts +3 -3
- package/dist/browser/{index.js → index.mjs} +101 -92
- package/dist/browser/index.mjs.map +1 -0
- package/dist/neutral/components/DarkModeIconButton.d.cts +1 -0
- package/dist/neutral/components/DarkModeIconButton.d.cts.map +1 -1
- package/dist/neutral/components/DarkModeIconButton.d.mts +1 -0
- package/dist/neutral/components/DarkModeIconButton.d.mts.map +1 -1
- package/dist/neutral/components/DarkModeIconButton.d.ts +1 -0
- package/dist/neutral/components/DarkModeIconButton.d.ts.map +1 -1
- package/dist/neutral/components/index.d.cts +2 -2
- package/dist/neutral/components/index.d.cts.map +1 -1
- package/dist/neutral/components/index.d.mts +2 -2
- package/dist/neutral/components/index.d.mts.map +1 -1
- package/dist/neutral/components/index.d.ts +2 -2
- package/dist/neutral/components/index.d.ts.map +1 -1
- package/dist/neutral/contexts/AppSettings/Context.d.cts +1 -1
- package/dist/neutral/contexts/AppSettings/Context.d.mts +1 -1
- package/dist/neutral/contexts/AppSettings/Context.d.ts +1 -1
- package/dist/neutral/contexts/AppSettings/Provider.d.cts +3 -3
- package/dist/neutral/contexts/AppSettings/Provider.d.cts.map +1 -1
- package/dist/neutral/contexts/AppSettings/Provider.d.mts +3 -3
- package/dist/neutral/contexts/AppSettings/Provider.d.mts.map +1 -1
- package/dist/neutral/contexts/AppSettings/Provider.d.ts +3 -3
- package/dist/neutral/contexts/AppSettings/Provider.d.ts.map +1 -1
- package/dist/neutral/contexts/AppSettings/Storage.d.cts +2 -2
- package/dist/neutral/contexts/AppSettings/Storage.d.mts +2 -2
- package/dist/neutral/contexts/AppSettings/Storage.d.ts +2 -2
- package/dist/neutral/contexts/AppSettings/index.d.cts +6 -6
- package/dist/neutral/contexts/AppSettings/index.d.cts.map +1 -1
- package/dist/neutral/contexts/AppSettings/index.d.mts +6 -6
- package/dist/neutral/contexts/AppSettings/index.d.mts.map +1 -1
- package/dist/neutral/contexts/AppSettings/index.d.ts +6 -6
- package/dist/neutral/contexts/AppSettings/index.d.ts.map +1 -1
- package/dist/neutral/contexts/AppSettings/useAppSettings.d.cts +1 -1
- package/dist/neutral/contexts/AppSettings/useAppSettings.d.mts +1 -1
- package/dist/neutral/contexts/AppSettings/useAppSettings.d.ts +1 -1
- package/dist/neutral/contexts/index.d.cts +1 -1
- package/dist/neutral/contexts/index.d.mts +1 -1
- package/dist/neutral/contexts/index.d.ts +1 -1
- package/dist/neutral/index.cjs +108 -91
- package/dist/neutral/index.cjs.map +1 -1
- package/dist/neutral/index.d.cts +3 -3
- package/dist/neutral/index.d.mts +3 -3
- package/dist/neutral/index.d.ts +3 -3
- package/dist/neutral/{index.js → index.mjs} +101 -92
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/node/components/DarkModeIconButton.d.cts +1 -0
- package/dist/node/components/DarkModeIconButton.d.cts.map +1 -1
- package/dist/node/components/DarkModeIconButton.d.mts +1 -0
- package/dist/node/components/DarkModeIconButton.d.mts.map +1 -1
- package/dist/node/components/DarkModeIconButton.d.ts +1 -0
- package/dist/node/components/DarkModeIconButton.d.ts.map +1 -1
- package/dist/node/components/index.d.cts +2 -2
- package/dist/node/components/index.d.cts.map +1 -1
- package/dist/node/components/index.d.mts +2 -2
- package/dist/node/components/index.d.mts.map +1 -1
- package/dist/node/components/index.d.ts +2 -2
- package/dist/node/components/index.d.ts.map +1 -1
- package/dist/node/contexts/AppSettings/Context.d.cts +1 -1
- package/dist/node/contexts/AppSettings/Context.d.mts +1 -1
- package/dist/node/contexts/AppSettings/Context.d.ts +1 -1
- package/dist/node/contexts/AppSettings/Provider.d.cts +3 -3
- package/dist/node/contexts/AppSettings/Provider.d.cts.map +1 -1
- package/dist/node/contexts/AppSettings/Provider.d.mts +3 -3
- package/dist/node/contexts/AppSettings/Provider.d.mts.map +1 -1
- package/dist/node/contexts/AppSettings/Provider.d.ts +3 -3
- package/dist/node/contexts/AppSettings/Provider.d.ts.map +1 -1
- package/dist/node/contexts/AppSettings/Storage.d.cts +2 -2
- package/dist/node/contexts/AppSettings/Storage.d.mts +2 -2
- package/dist/node/contexts/AppSettings/Storage.d.ts +2 -2
- package/dist/node/contexts/AppSettings/index.d.cts +6 -6
- package/dist/node/contexts/AppSettings/index.d.cts.map +1 -1
- package/dist/node/contexts/AppSettings/index.d.mts +6 -6
- package/dist/node/contexts/AppSettings/index.d.mts.map +1 -1
- package/dist/node/contexts/AppSettings/index.d.ts +6 -6
- package/dist/node/contexts/AppSettings/index.d.ts.map +1 -1
- package/dist/node/contexts/AppSettings/useAppSettings.d.cts +1 -1
- package/dist/node/contexts/AppSettings/useAppSettings.d.mts +1 -1
- package/dist/node/contexts/AppSettings/useAppSettings.d.ts +1 -1
- package/dist/node/contexts/index.d.cts +1 -1
- package/dist/node/contexts/index.d.mts +1 -1
- package/dist/node/contexts/index.d.ts +1 -1
- package/dist/node/index.cjs +108 -93
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +3 -3
- package/dist/node/index.d.mts +3 -3
- package/dist/node/index.d.ts +3 -3
- package/dist/node/{index.js → index.mjs} +101 -94
- package/dist/node/index.mjs.map +1 -0
- package/package.json +9 -9
- package/src/components/DarkModeIconButton.tsx +5 -4
- package/src/components/Developer.tsx +1 -1
- package/src/components/index.ts +2 -2
- package/src/contexts/AppSettings/Context.ts +2 -2
- package/src/contexts/AppSettings/Provider.tsx +21 -19
- package/src/contexts/AppSettings/Storage.ts +4 -4
- package/src/contexts/AppSettings/appSettingDefault.ts +1 -1
- package/src/contexts/AppSettings/index.ts +6 -6
- package/src/contexts/AppSettings/useAppSettings.ts +1 -1
- package/src/contexts/index.ts +1 -1
- package/src/index.ts +3 -3
- package/dist/browser/index.js.map +0 -1
- package/dist/neutral/index.js.map +0 -1
- package/dist/node/index.js.map +0 -1
|
@@ -1,43 +1,47 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
1
4
|
// src/components/DarkModeIconButton.tsx
|
|
2
5
|
import { DarkModeRounded as DarkModeRoundedIcon, LightModeRounded as LightModeRoundedIcon } from "@mui/icons-material";
|
|
3
6
|
import { IconButton } from "@mui/material";
|
|
7
|
+
import React2 from "react";
|
|
4
8
|
|
|
5
9
|
// src/contexts/AppSettings/Context.ts
|
|
6
10
|
import { createContext } from "react";
|
|
7
11
|
|
|
8
12
|
// src/contexts/AppSettings/Slug.ts
|
|
9
|
-
var AppSettingSlug
|
|
13
|
+
var AppSettingSlug;
|
|
14
|
+
(function(AppSettingSlug2) {
|
|
10
15
|
AppSettingSlug2["DarkMode"] = "darkmode";
|
|
11
16
|
AppSettingSlug2["Developer"] = "developer";
|
|
12
17
|
AppSettingSlug2["NavigationType"] = "navigationType";
|
|
13
18
|
AppSettingSlug2["NavigationCollapsed"] = "navigationCollapsed";
|
|
14
19
|
AppSettingSlug2["SeedPhrase"] = "seedPhrase";
|
|
15
20
|
AppSettingSlug2["MaxAccounts"] = "maxAccounts";
|
|
16
|
-
|
|
17
|
-
})(AppSettingSlug || {});
|
|
21
|
+
})(AppSettingSlug || (AppSettingSlug = {}));
|
|
18
22
|
|
|
19
23
|
// src/contexts/AppSettings/appSettingDefault.ts
|
|
20
|
-
var appSettingDefault = () => {
|
|
24
|
+
var appSettingDefault = /* @__PURE__ */ __name(() => {
|
|
21
25
|
return {
|
|
22
|
-
[
|
|
23
|
-
[
|
|
24
|
-
[
|
|
25
|
-
[
|
|
26
|
-
[
|
|
27
|
-
[
|
|
26
|
+
[AppSettingSlug.DarkMode]: false,
|
|
27
|
+
[AppSettingSlug.Developer]: false,
|
|
28
|
+
[AppSettingSlug.NavigationType]: "menu",
|
|
29
|
+
[AppSettingSlug.NavigationCollapsed]: false,
|
|
30
|
+
[AppSettingSlug.SeedPhrase]: "",
|
|
31
|
+
[AppSettingSlug.MaxAccounts]: 1
|
|
28
32
|
};
|
|
29
|
-
};
|
|
33
|
+
}, "appSettingDefault");
|
|
30
34
|
|
|
31
35
|
// src/contexts/AppSettings/Context.ts
|
|
32
36
|
var AppSettingsContext = createContext(appSettingDefault());
|
|
33
37
|
|
|
34
38
|
// src/contexts/AppSettings/Provider.tsx
|
|
35
|
-
import { useState } from "react";
|
|
39
|
+
import React, { useMemo, useState } from "react";
|
|
36
40
|
|
|
37
41
|
// src/contexts/AppSettings/StorageBase.ts
|
|
38
42
|
import { assertEx } from "@xylabs/assert";
|
|
39
43
|
import { assertDefinedEx } from "@xyo-network/react-shared";
|
|
40
|
-
var
|
|
44
|
+
var _AppSettingsStorageBase = class _AppSettingsStorageBase {
|
|
41
45
|
defaults;
|
|
42
46
|
prefix;
|
|
43
47
|
constructor(prefix = "AppSettings", defaults) {
|
|
@@ -110,133 +114,136 @@ var AppSettingsStorageBase = class {
|
|
|
110
114
|
localStorage.setItem(`${this.prefix}|${name}`, value.join(","));
|
|
111
115
|
}
|
|
112
116
|
};
|
|
117
|
+
__name(_AppSettingsStorageBase, "AppSettingsStorageBase");
|
|
118
|
+
var AppSettingsStorageBase = _AppSettingsStorageBase;
|
|
113
119
|
|
|
114
120
|
// src/contexts/AppSettings/Storage.ts
|
|
115
|
-
var
|
|
121
|
+
var _AppSettingsStorage = class _AppSettingsStorage extends AppSettingsStorageBase {
|
|
116
122
|
constructor(prefix = "AppSettings", defaults) {
|
|
117
|
-
super(prefix, {
|
|
123
|
+
super(prefix, {
|
|
124
|
+
...appSettingDefault(),
|
|
125
|
+
...defaults
|
|
126
|
+
});
|
|
118
127
|
}
|
|
119
128
|
get darkMode() {
|
|
120
|
-
return this.getBoolean(
|
|
129
|
+
return this.getBoolean(AppSettingSlug.DarkMode);
|
|
121
130
|
}
|
|
122
131
|
set darkMode(value) {
|
|
123
|
-
this.setBoolean(
|
|
132
|
+
this.setBoolean(AppSettingSlug.DarkMode, value);
|
|
124
133
|
}
|
|
125
134
|
get developerMode() {
|
|
126
|
-
return this.getBoolean(
|
|
135
|
+
return this.getBoolean(AppSettingSlug.Developer);
|
|
127
136
|
}
|
|
128
137
|
set developerMode(value) {
|
|
129
|
-
this.setBoolean(
|
|
138
|
+
this.setBoolean(AppSettingSlug.Developer, value);
|
|
130
139
|
}
|
|
131
140
|
get maxAccounts() {
|
|
132
|
-
return this.getNumber(
|
|
141
|
+
return this.getNumber(AppSettingSlug.MaxAccounts);
|
|
133
142
|
}
|
|
134
143
|
set maxAccounts(value) {
|
|
135
|
-
this.setNumber(
|
|
144
|
+
this.setNumber(AppSettingSlug.MaxAccounts, value);
|
|
136
145
|
}
|
|
137
146
|
get navigationCollapsed() {
|
|
138
|
-
return this.getBoolean(
|
|
147
|
+
return this.getBoolean(AppSettingSlug.NavigationCollapsed);
|
|
139
148
|
}
|
|
140
149
|
set navigationCollapsed(value) {
|
|
141
|
-
this.setBoolean(
|
|
150
|
+
this.setBoolean(AppSettingSlug.NavigationCollapsed, value);
|
|
142
151
|
}
|
|
143
152
|
get navigationType() {
|
|
144
|
-
return this.getString(
|
|
153
|
+
return this.getString(AppSettingSlug.NavigationType);
|
|
145
154
|
}
|
|
146
155
|
set navigationType(value) {
|
|
147
|
-
this.setString(
|
|
156
|
+
this.setString(AppSettingSlug.NavigationType, value);
|
|
148
157
|
}
|
|
149
158
|
get seedPhrase() {
|
|
150
|
-
return this.getString(
|
|
159
|
+
return this.getString(AppSettingSlug.SeedPhrase);
|
|
151
160
|
}
|
|
152
161
|
set seedPhrase(value) {
|
|
153
|
-
this.setString(
|
|
162
|
+
this.setString(AppSettingSlug.SeedPhrase, value);
|
|
154
163
|
}
|
|
155
164
|
};
|
|
165
|
+
__name(_AppSettingsStorage, "AppSettingsStorage");
|
|
166
|
+
var AppSettingsStorage = _AppSettingsStorage;
|
|
156
167
|
|
|
157
168
|
// src/contexts/AppSettings/Provider.tsx
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const [
|
|
166
|
-
const [
|
|
167
|
-
const [
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
};
|
|
179
|
-
const changeNavigationType = (value2) => {
|
|
180
|
-
storage.navigationType = value2;
|
|
169
|
+
var AppSettingsProvider = /* @__PURE__ */ __name(({ storage, value, children, ...props }) => {
|
|
170
|
+
const storageMemo = useMemo(() => storage ?? new AppSettingsStorage(), [
|
|
171
|
+
storage
|
|
172
|
+
]);
|
|
173
|
+
const [developerMode, setDeveloperMode] = useState(storageMemo.developerMode);
|
|
174
|
+
const [darkMode, setDarkMode] = useState(storageMemo.darkMode);
|
|
175
|
+
const [navigationType, setNavigationType] = useState(storageMemo.navigationType);
|
|
176
|
+
const [navigationCollapsed, setNavigationCollapsed] = useState(storageMemo.navigationCollapsed);
|
|
177
|
+
const [seedPhrase, setSeedPhrase] = useState(storageMemo.seedPhrase);
|
|
178
|
+
const [maxAccounts, setMaxAccounts] = useState(storageMemo.maxAccounts);
|
|
179
|
+
const enableDeveloperMode = /* @__PURE__ */ __name((value2) => {
|
|
180
|
+
storageMemo.developerMode = value2;
|
|
181
|
+
setDeveloperMode(storageMemo.developerMode);
|
|
182
|
+
}, "enableDeveloperMode");
|
|
183
|
+
const enableDarkMode = /* @__PURE__ */ __name((value2) => {
|
|
184
|
+
storageMemo.darkMode = value2;
|
|
185
|
+
setDarkMode(storageMemo.darkMode);
|
|
186
|
+
}, "enableDarkMode");
|
|
187
|
+
const changeNavigationType = /* @__PURE__ */ __name((value2) => {
|
|
188
|
+
storageMemo.navigationType = value2;
|
|
181
189
|
setNavigationType(value2);
|
|
182
|
-
};
|
|
183
|
-
const changeNavigationCollapsed = (value2) => {
|
|
184
|
-
|
|
190
|
+
}, "changeNavigationType");
|
|
191
|
+
const changeNavigationCollapsed = /* @__PURE__ */ __name((value2) => {
|
|
192
|
+
storageMemo.navigationCollapsed = value2;
|
|
185
193
|
setNavigationCollapsed(value2);
|
|
186
|
-
};
|
|
187
|
-
const changeSeedPhrase = (value2) => {
|
|
188
|
-
|
|
194
|
+
}, "changeNavigationCollapsed");
|
|
195
|
+
const changeSeedPhrase = /* @__PURE__ */ __name((value2) => {
|
|
196
|
+
storageMemo.seedPhrase = value2;
|
|
189
197
|
setSeedPhrase(value2);
|
|
190
|
-
};
|
|
191
|
-
const changeMaxAccounts = (value2) => {
|
|
192
|
-
|
|
198
|
+
}, "changeSeedPhrase");
|
|
199
|
+
const changeMaxAccounts = /* @__PURE__ */ __name((value2) => {
|
|
200
|
+
storageMemo.maxAccounts = value2;
|
|
193
201
|
setMaxAccounts(value2);
|
|
194
|
-
};
|
|
195
|
-
return /* @__PURE__ */
|
|
196
|
-
|
|
197
|
-
{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
}
|
|
216
|
-
);
|
|
217
|
-
};
|
|
202
|
+
}, "changeMaxAccounts");
|
|
203
|
+
return /* @__PURE__ */ React.createElement(AppSettingsContext.Provider, {
|
|
204
|
+
// eslint-disable-next-line @eslint-react/no-unstable-context-value
|
|
205
|
+
value: {
|
|
206
|
+
changeMaxAccounts,
|
|
207
|
+
changeNavigationCollapsed,
|
|
208
|
+
changeNavigationType,
|
|
209
|
+
changeSeedPhrase,
|
|
210
|
+
darkMode,
|
|
211
|
+
developerMode,
|
|
212
|
+
enableDarkMode,
|
|
213
|
+
enableDeveloperMode,
|
|
214
|
+
maxAccounts,
|
|
215
|
+
navigationCollapsed,
|
|
216
|
+
navigationType,
|
|
217
|
+
seedPhrase,
|
|
218
|
+
...value
|
|
219
|
+
},
|
|
220
|
+
...props
|
|
221
|
+
}, children);
|
|
222
|
+
}, "AppSettingsProvider");
|
|
218
223
|
|
|
219
224
|
// src/contexts/AppSettings/useAppSettings.ts
|
|
220
225
|
import { useContext } from "react";
|
|
221
|
-
var useAppSettings = () => {
|
|
226
|
+
var useAppSettings = /* @__PURE__ */ __name(() => {
|
|
222
227
|
return useContext(AppSettingsContext);
|
|
223
|
-
};
|
|
228
|
+
}, "useAppSettings");
|
|
224
229
|
|
|
225
230
|
// src/components/DarkModeIconButton.tsx
|
|
226
|
-
|
|
227
|
-
var DarkModeIconButton = (props) => {
|
|
231
|
+
var DarkModeIconButton = /* @__PURE__ */ __name((props) => {
|
|
228
232
|
const { darkMode, enableDarkMode } = useAppSettings();
|
|
229
|
-
const handleDarkModeChange = () => {
|
|
233
|
+
const handleDarkModeChange = /* @__PURE__ */ __name(() => {
|
|
230
234
|
enableDarkMode == null ? void 0 : enableDarkMode(!darkMode);
|
|
231
|
-
};
|
|
232
|
-
return /* @__PURE__ */
|
|
233
|
-
|
|
235
|
+
}, "handleDarkModeChange");
|
|
236
|
+
return /* @__PURE__ */ React2.createElement(IconButton, {
|
|
237
|
+
onClick: handleDarkModeChange,
|
|
238
|
+
...props
|
|
239
|
+
}, darkMode ? /* @__PURE__ */ React2.createElement(DarkModeRoundedIcon, null) : /* @__PURE__ */ React2.createElement(LightModeRoundedIcon, null));
|
|
240
|
+
}, "DarkModeIconButton");
|
|
234
241
|
|
|
235
242
|
// src/components/Developer.tsx
|
|
236
|
-
var Developer = ({ children = null }) => {
|
|
243
|
+
var Developer = /* @__PURE__ */ __name(({ children = null }) => {
|
|
237
244
|
const { developerMode } = useAppSettings();
|
|
238
245
|
return developerMode ? children : null;
|
|
239
|
-
};
|
|
246
|
+
}, "Developer");
|
|
240
247
|
export {
|
|
241
248
|
AppSettingSlug,
|
|
242
249
|
AppSettingsContext,
|
|
@@ -247,4 +254,4 @@ export {
|
|
|
247
254
|
Developer,
|
|
248
255
|
useAppSettings
|
|
249
256
|
};
|
|
250
|
-
//# sourceMappingURL=index.
|
|
257
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/DarkModeIconButton.tsx","../../src/contexts/AppSettings/Context.ts","../../src/contexts/AppSettings/Slug.ts","../../src/contexts/AppSettings/appSettingDefault.ts","../../src/contexts/AppSettings/Provider.tsx","../../src/contexts/AppSettings/StorageBase.ts","../../src/contexts/AppSettings/Storage.ts","../../src/contexts/AppSettings/useAppSettings.ts","../../src/components/Developer.tsx"],"sourcesContent":["import { DarkModeRounded as DarkModeRoundedIcon, LightModeRounded as LightModeRoundedIcon } from '@mui/icons-material'\nimport { IconButton, IconButtonProps } from '@mui/material'\nimport React from 'react'\n\nimport { useAppSettings } from '../contexts/index.ts'\n\nexport const DarkModeIconButton: React.FC<IconButtonProps> = (props) => {\n const { darkMode, enableDarkMode } = useAppSettings()\n\n const handleDarkModeChange = () => {\n enableDarkMode?.(!darkMode)\n }\n\n return (\n <IconButton onClick={handleDarkModeChange} {...props}>\n {darkMode\n ? <DarkModeRoundedIcon />\n : <LightModeRoundedIcon />}\n </IconButton>\n )\n}\n","import { createContext } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\n\nexport interface AppSettingsContextProps {\n changeMaxAccounts?: (value: number) => void\n changeNavigationCollapsed?: (value: boolean) => void\n changeNavigationType?: (value: WebAppNavigationType) => void\n changeSeedPhrase?: (value: string) => void\n darkMode?: boolean\n developerMode?: boolean\n enableDarkMode?: (value: boolean) => void\n enableDeveloperMode?: (value: boolean) => void\n maxAccounts?: number\n navigationCollapsed?: boolean\n navigationType?: WebAppNavigationType\n seedPhrase?: string\n}\n\nexport const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())\n","export enum AppSettingSlug {\n DarkMode = 'darkmode',\n Developer = 'developer',\n NavigationType = 'navigationType',\n NavigationCollapsed = 'navigationCollapsed',\n SeedPhrase = 'seedPhrase',\n MaxAccounts = 'maxAccounts',\n}\n","import { AppSettingSlug } from './Slug.ts'\n\nexport const appSettingDefault = (): Record<string, unknown> => {\n return {\n [AppSettingSlug.DarkMode]: false,\n [AppSettingSlug.Developer]: false,\n [AppSettingSlug.NavigationType]: 'menu',\n [AppSettingSlug.NavigationCollapsed]: false,\n [AppSettingSlug.SeedPhrase]: '',\n [AppSettingSlug.MaxAccounts]: 1,\n }\n}\n","import { WithChildren } from '@xylabs/react-shared'\nimport React, { ProviderProps, useMemo, useState } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { AppSettingsContext, AppSettingsContextProps } from './Context.ts'\nimport { AppSettingsStorage } from './Storage.ts'\n\nexport interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {\n storage?: AppSettingsStorage\n}\n\nexport const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>> = ({\n storage,\n value,\n children,\n ...props\n}) => {\n const storageMemo = useMemo(() => storage ?? new AppSettingsStorage(), [storage])\n const [developerMode, setDeveloperMode] = useState(storageMemo.developerMode)\n const [darkMode, setDarkMode] = useState(storageMemo.darkMode)\n const [navigationType, setNavigationType] = useState(storageMemo.navigationType)\n const [navigationCollapsed, setNavigationCollapsed] = useState(storageMemo.navigationCollapsed)\n const [seedPhrase, setSeedPhrase] = useState(storageMemo.seedPhrase)\n const [maxAccounts, setMaxAccounts] = useState(storageMemo.maxAccounts)\n\n const enableDeveloperMode = (value: boolean) => {\n storageMemo.developerMode = value\n setDeveloperMode(storageMemo.developerMode)\n }\n\n const enableDarkMode = (value: boolean) => {\n storageMemo.darkMode = value\n setDarkMode(storageMemo.darkMode)\n }\n\n const changeNavigationType = (value: WebAppNavigationType) => {\n storageMemo.navigationType = value\n setNavigationType(value)\n }\n\n const changeNavigationCollapsed = (value: boolean) => {\n storageMemo.navigationCollapsed = value\n setNavigationCollapsed(value)\n }\n\n const changeSeedPhrase = (value: string) => {\n storageMemo.seedPhrase = value\n setSeedPhrase(value)\n }\n\n const changeMaxAccounts = (value: number) => {\n storageMemo.maxAccounts = value\n setMaxAccounts(value)\n }\n\n return (\n <AppSettingsContext.Provider\n // eslint-disable-next-line @eslint-react/no-unstable-context-value\n value={{\n changeMaxAccounts,\n changeNavigationCollapsed,\n changeNavigationType,\n changeSeedPhrase,\n darkMode,\n developerMode,\n enableDarkMode,\n enableDeveloperMode,\n maxAccounts,\n navigationCollapsed,\n navigationType,\n seedPhrase,\n\n ...value,\n }}\n {...props}\n >\n {children}\n </AppSettingsContext.Provider>\n )\n}\n","import { assertEx } from '@xylabs/assert'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport class AppSettingsStorageBase {\n private defaults: Record<string, unknown>\n private prefix: string\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n this.prefix = prefix\n this.defaults = defaults ?? {}\n }\n\n getBoolean(name: string): boolean {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'boolean', () => 'Default value is not boolean')\n const defaultValue = this.defaults[name] as boolean\n assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue !== 'false'\n }\n\n getNumber(name: string): number {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'number', () => 'Default value is not a number')\n const defaultValue = this.defaults[name] as number\n assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n return defaultValue\n }\n return Number.parseFloat(storedValue)\n }\n\n getObject<T>(name: string): T {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null\n if (!parsedStoredValue) {\n assertEx(typeof this.defaults[name] === 'object', () => 'Default value is not object')\n return assertEx(this.defaults[name] as T, () => `Missing Default for ${name}`)\n }\n return parsedStoredValue as T\n }\n\n getString(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertDefinedEx(typeof this.defaults[name] === 'string', 'Default value is not string')\n const defaultValue = this.defaults[name] as string\n assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n getStringArray(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)?.split(',')\n if (!storedValue) {\n assertDefinedEx(Array.isArray(this.defaults[name]), 'Default value is not array')\n const defaultValue = this.defaults[name] as string[]\n assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n setBoolean(name: string, value: boolean) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n setNumber(name: string, value: number) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n setObject<T>(name: string, value: T) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n setString(name: string, value: string) {\n localStorage.setItem(`${this.prefix}|${name}`, value)\n }\n\n setStringArray(name: string, value: string[]) {\n localStorage.setItem(`${this.prefix}|${name}`, value.join(','))\n }\n}\n","import { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\nimport { AppSettingSlug } from './Slug.ts'\nimport { AppSettingsStorageBase } from './StorageBase.ts'\n\nexport class AppSettingsStorage extends AppSettingsStorageBase {\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n super(prefix, { ...appSettingDefault(), ...defaults })\n }\n\n get darkMode() {\n return this.getBoolean(AppSettingSlug.DarkMode)\n }\n\n set darkMode(value: boolean) {\n this.setBoolean(AppSettingSlug.DarkMode, value)\n }\n\n get developerMode() {\n return this.getBoolean(AppSettingSlug.Developer)\n }\n\n set developerMode(value: boolean) {\n this.setBoolean(AppSettingSlug.Developer, value)\n }\n\n get maxAccounts() {\n return this.getNumber(AppSettingSlug.MaxAccounts)\n }\n\n set maxAccounts(value: number) {\n this.setNumber(AppSettingSlug.MaxAccounts, value)\n }\n\n get navigationCollapsed() {\n return this.getBoolean(AppSettingSlug.NavigationCollapsed)\n }\n\n set navigationCollapsed(value: boolean) {\n this.setBoolean(AppSettingSlug.NavigationCollapsed, value)\n }\n\n get navigationType() {\n return this.getString(AppSettingSlug.NavigationType) as WebAppNavigationType\n }\n\n set navigationType(value: WebAppNavigationType) {\n this.setString(AppSettingSlug.NavigationType, value)\n }\n\n get seedPhrase() {\n return this.getString(AppSettingSlug.SeedPhrase)\n }\n\n set seedPhrase(value: string) {\n this.setString(AppSettingSlug.SeedPhrase, value)\n }\n}\n","import { useContext } from 'react'\n\nimport { AppSettingsContext } from './Context.ts'\n\nexport const useAppSettings = () => {\n return useContext(AppSettingsContext)\n}\n","import { ReactElement } from 'react'\n\nimport { useAppSettings } from '../contexts/index.ts'\n\nexport const Developer: React.FC<{ children: ReactElement }> = ({ children = null }) => {\n const { developerMode } = useAppSettings()\n\n return developerMode ? children : null\n}\n"],"mappings":"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","names":["DarkModeRounded","DarkModeRoundedIcon","LightModeRounded","LightModeRoundedIcon","IconButton","React","createContext","AppSettingSlug","appSettingDefault","AppSettingSlug","DarkMode","Developer","NavigationType","NavigationCollapsed","SeedPhrase","MaxAccounts","AppSettingsContext","createContext","appSettingDefault","React","useMemo","useState","assertEx","assertDefinedEx","AppSettingsStorageBase","defaults","prefix","constructor","getBoolean","name","storedValue","localStorage","getItem","assertEx","defaultValue","undefined","getNumber","Number","parseFloat","getObject","parsedStoredValue","JSON","parse","getString","assertDefinedEx","getStringArray","split","Array","isArray","setBoolean","value","setItem","stringify","setNumber","setObject","setString","setStringArray","join","AppSettingsStorage","AppSettingsStorageBase","constructor","prefix","defaults","appSettingDefault","darkMode","getBoolean","AppSettingSlug","DarkMode","value","setBoolean","developerMode","Developer","maxAccounts","getNumber","MaxAccounts","setNumber","navigationCollapsed","NavigationCollapsed","navigationType","getString","NavigationType","setString","seedPhrase","SeedPhrase","AppSettingsProvider","storage","value","children","props","storageMemo","useMemo","AppSettingsStorage","developerMode","setDeveloperMode","useState","darkMode","setDarkMode","navigationType","setNavigationType","navigationCollapsed","setNavigationCollapsed","seedPhrase","setSeedPhrase","maxAccounts","setMaxAccounts","enableDeveloperMode","enableDarkMode","changeNavigationType","changeNavigationCollapsed","changeSeedPhrase","changeMaxAccounts","AppSettingsContext","Provider","useContext","useAppSettings","useContext","AppSettingsContext","DarkModeIconButton","props","darkMode","enableDarkMode","useAppSettings","handleDarkModeChange","React","IconButton","onClick","DarkModeRoundedIcon","LightModeRoundedIcon","Developer","children","developerMode","useAppSettings"]}
|
package/package.json
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^3.6.
|
|
14
|
-
"@xylabs/react-shared": "^3.4.
|
|
15
|
-
"@xyo-network/react-shared": "^2.
|
|
13
|
+
"@xylabs/assert": "^3.6.12",
|
|
14
|
+
"@xylabs/react-shared": "^3.4.2",
|
|
15
|
+
"@xyo-network/react-shared": "^2.82.0"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"@mui/icons-material": "^5",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"react-dom": "^18.2.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@xylabs/ts-scripts-yarn3": "^3.
|
|
25
|
+
"@xylabs/ts-scripts-yarn3": "^3.15.16",
|
|
26
26
|
"typescript": "^5.5.4"
|
|
27
27
|
},
|
|
28
28
|
"description": "Common React library for all XYO projects that use React",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"node": {
|
|
33
33
|
"import": {
|
|
34
34
|
"types": "./dist/node/index.d.mts",
|
|
35
|
-
"default": "./dist/node/index.
|
|
35
|
+
"default": "./dist/node/index.mjs"
|
|
36
36
|
},
|
|
37
37
|
"require": {
|
|
38
38
|
"types": "./dist/node/index.d.cts",
|
|
@@ -42,19 +42,19 @@
|
|
|
42
42
|
"browser": {
|
|
43
43
|
"import": {
|
|
44
44
|
"types": "./dist/browser/index.d.mts",
|
|
45
|
-
"default": "./dist/browser/index.
|
|
45
|
+
"default": "./dist/browser/index.mjs"
|
|
46
46
|
},
|
|
47
47
|
"require": {
|
|
48
48
|
"types": "./dist/browser/index.d.cts",
|
|
49
49
|
"default": "./dist/browser/index.cjs"
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
|
-
"default": "./dist/browser/index.
|
|
52
|
+
"default": "./dist/browser/index.mjs"
|
|
53
53
|
},
|
|
54
54
|
"./package.json": "./package.json"
|
|
55
55
|
},
|
|
56
56
|
"main": "dist/browser/index.cjs",
|
|
57
|
-
"module": "dist/browser/index.
|
|
57
|
+
"module": "dist/browser/index.mjs",
|
|
58
58
|
"homepage": "https://xyo.network",
|
|
59
59
|
"keywords": [
|
|
60
60
|
"xyo",
|
|
@@ -76,6 +76,6 @@
|
|
|
76
76
|
},
|
|
77
77
|
"sideEffects": false,
|
|
78
78
|
"types": "dist/browser/index.d.ts",
|
|
79
|
-
"version": "2.
|
|
79
|
+
"version": "2.82.0",
|
|
80
80
|
"type": "module"
|
|
81
81
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DarkModeRounded as DarkModeRoundedIcon, LightModeRounded as LightModeRoundedIcon } from '@mui/icons-material'
|
|
2
2
|
import { IconButton, IconButtonProps } from '@mui/material'
|
|
3
|
+
import React from 'react'
|
|
3
4
|
|
|
4
|
-
import { useAppSettings } from '../contexts/index.
|
|
5
|
+
import { useAppSettings } from '../contexts/index.ts'
|
|
5
6
|
|
|
6
7
|
export const DarkModeIconButton: React.FC<IconButtonProps> = (props) => {
|
|
7
8
|
const { darkMode, enableDarkMode } = useAppSettings()
|
|
@@ -12,9 +13,9 @@ export const DarkModeIconButton: React.FC<IconButtonProps> = (props) => {
|
|
|
12
13
|
|
|
13
14
|
return (
|
|
14
15
|
<IconButton onClick={handleDarkModeChange} {...props}>
|
|
15
|
-
{darkMode
|
|
16
|
-
<DarkModeRoundedIcon />
|
|
17
|
-
|
|
16
|
+
{darkMode
|
|
17
|
+
? <DarkModeRoundedIcon />
|
|
18
|
+
: <LightModeRoundedIcon />}
|
|
18
19
|
</IconButton>
|
|
19
20
|
)
|
|
20
21
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactElement } from 'react'
|
|
2
2
|
|
|
3
|
-
import { useAppSettings } from '../contexts/index.
|
|
3
|
+
import { useAppSettings } from '../contexts/index.ts'
|
|
4
4
|
|
|
5
5
|
export const Developer: React.FC<{ children: ReactElement }> = ({ children = null }) => {
|
|
6
6
|
const { developerMode } = useAppSettings()
|
package/src/components/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './DarkModeIconButton.
|
|
2
|
-
export * from './Developer.
|
|
1
|
+
export * from './DarkModeIconButton.tsx'
|
|
2
|
+
export * from './Developer.tsx'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createContext } from 'react'
|
|
2
2
|
|
|
3
|
-
import { WebAppNavigationType } from '../../WebAppNavigationType.
|
|
4
|
-
import { appSettingDefault } from './appSettingDefault.
|
|
3
|
+
import { WebAppNavigationType } from '../../WebAppNavigationType.ts'
|
|
4
|
+
import { appSettingDefault } from './appSettingDefault.ts'
|
|
5
5
|
|
|
6
6
|
export interface AppSettingsContextProps {
|
|
7
7
|
changeMaxAccounts?: (value: number) => void
|
|
@@ -1,59 +1,61 @@
|
|
|
1
1
|
import { WithChildren } from '@xylabs/react-shared'
|
|
2
|
-
import { ProviderProps, useState } from 'react'
|
|
2
|
+
import React, { ProviderProps, useMemo, useState } from 'react'
|
|
3
3
|
|
|
4
|
-
import { WebAppNavigationType } from '../../WebAppNavigationType.
|
|
5
|
-
import { AppSettingsContext, AppSettingsContextProps } from './Context.
|
|
6
|
-
import { AppSettingsStorage } from './Storage.
|
|
4
|
+
import { WebAppNavigationType } from '../../WebAppNavigationType.ts'
|
|
5
|
+
import { AppSettingsContext, AppSettingsContextProps } from './Context.ts'
|
|
6
|
+
import { AppSettingsStorage } from './Storage.ts'
|
|
7
7
|
|
|
8
8
|
export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
|
|
9
9
|
storage?: AppSettingsStorage
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>> = ({
|
|
13
|
-
storage
|
|
13
|
+
storage,
|
|
14
14
|
value,
|
|
15
15
|
children,
|
|
16
16
|
...props
|
|
17
17
|
}) => {
|
|
18
|
-
const
|
|
19
|
-
const [
|
|
20
|
-
const [
|
|
21
|
-
const [
|
|
22
|
-
const [
|
|
23
|
-
const [
|
|
18
|
+
const storageMemo = useMemo(() => storage ?? new AppSettingsStorage(), [storage])
|
|
19
|
+
const [developerMode, setDeveloperMode] = useState(storageMemo.developerMode)
|
|
20
|
+
const [darkMode, setDarkMode] = useState(storageMemo.darkMode)
|
|
21
|
+
const [navigationType, setNavigationType] = useState(storageMemo.navigationType)
|
|
22
|
+
const [navigationCollapsed, setNavigationCollapsed] = useState(storageMemo.navigationCollapsed)
|
|
23
|
+
const [seedPhrase, setSeedPhrase] = useState(storageMemo.seedPhrase)
|
|
24
|
+
const [maxAccounts, setMaxAccounts] = useState(storageMemo.maxAccounts)
|
|
24
25
|
|
|
25
26
|
const enableDeveloperMode = (value: boolean) => {
|
|
26
|
-
|
|
27
|
-
setDeveloperMode(
|
|
27
|
+
storageMemo.developerMode = value
|
|
28
|
+
setDeveloperMode(storageMemo.developerMode)
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
const enableDarkMode = (value: boolean) => {
|
|
31
|
-
|
|
32
|
-
setDarkMode(
|
|
32
|
+
storageMemo.darkMode = value
|
|
33
|
+
setDarkMode(storageMemo.darkMode)
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
const changeNavigationType = (value: WebAppNavigationType) => {
|
|
36
|
-
|
|
37
|
+
storageMemo.navigationType = value
|
|
37
38
|
setNavigationType(value)
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
const changeNavigationCollapsed = (value: boolean) => {
|
|
41
|
-
|
|
42
|
+
storageMemo.navigationCollapsed = value
|
|
42
43
|
setNavigationCollapsed(value)
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
const changeSeedPhrase = (value: string) => {
|
|
46
|
-
|
|
47
|
+
storageMemo.seedPhrase = value
|
|
47
48
|
setSeedPhrase(value)
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
const changeMaxAccounts = (value: number) => {
|
|
51
|
-
|
|
52
|
+
storageMemo.maxAccounts = value
|
|
52
53
|
setMaxAccounts(value)
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
return (
|
|
56
57
|
<AppSettingsContext.Provider
|
|
58
|
+
// eslint-disable-next-line @eslint-react/no-unstable-context-value
|
|
57
59
|
value={{
|
|
58
60
|
changeMaxAccounts,
|
|
59
61
|
changeNavigationCollapsed,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { WebAppNavigationType } from '../../WebAppNavigationType.
|
|
2
|
-
import { appSettingDefault } from './appSettingDefault.
|
|
3
|
-
import { AppSettingSlug } from './Slug.
|
|
4
|
-
import { AppSettingsStorageBase } from './StorageBase.
|
|
1
|
+
import { WebAppNavigationType } from '../../WebAppNavigationType.ts'
|
|
2
|
+
import { appSettingDefault } from './appSettingDefault.ts'
|
|
3
|
+
import { AppSettingSlug } from './Slug.ts'
|
|
4
|
+
import { AppSettingsStorageBase } from './StorageBase.ts'
|
|
5
5
|
|
|
6
6
|
export class AppSettingsStorage extends AppSettingsStorageBase {
|
|
7
7
|
constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {
|
|
@@ -1,6 +1,6 @@
|
|
|
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
|
+
export * from './Context.ts'
|
|
2
|
+
export * from './Provider.tsx'
|
|
3
|
+
export * from './Slug.ts'
|
|
4
|
+
export * from './Storage.ts'
|
|
5
|
+
export * from './StorageBase.ts'
|
|
6
|
+
export * from './useAppSettings.ts'
|
package/src/contexts/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './AppSettings/index.
|
|
1
|
+
export * from './AppSettings/index.ts'
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './components/index.
|
|
2
|
-
export * from './contexts/index.
|
|
3
|
-
export * from './WebAppNavigationType.
|
|
1
|
+
export * from './components/index.ts'
|
|
2
|
+
export * from './contexts/index.ts'
|
|
3
|
+
export * from './WebAppNavigationType.ts'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/DarkModeIconButton.tsx","../../src/contexts/AppSettings/Context.ts","../../src/contexts/AppSettings/Slug.ts","../../src/contexts/AppSettings/appSettingDefault.ts","../../src/contexts/AppSettings/Provider.tsx","../../src/contexts/AppSettings/StorageBase.ts","../../src/contexts/AppSettings/Storage.ts","../../src/contexts/AppSettings/useAppSettings.ts","../../src/components/Developer.tsx"],"sourcesContent":["import { DarkModeRounded as DarkModeRoundedIcon, LightModeRounded as LightModeRoundedIcon } from '@mui/icons-material'\nimport { IconButton, IconButtonProps } from '@mui/material'\n\nimport { useAppSettings } from '../contexts/index.js'\n\nexport const DarkModeIconButton: React.FC<IconButtonProps> = (props) => {\n const { darkMode, enableDarkMode } = useAppSettings()\n\n const handleDarkModeChange = () => {\n enableDarkMode?.(!darkMode)\n }\n\n return (\n <IconButton onClick={handleDarkModeChange} {...props}>\n {darkMode ?\n <DarkModeRoundedIcon />\n : <LightModeRoundedIcon />}\n </IconButton>\n )\n}\n","import { createContext } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType.js'\nimport { appSettingDefault } from './appSettingDefault.js'\n\nexport interface AppSettingsContextProps {\n changeMaxAccounts?: (value: number) => void\n changeNavigationCollapsed?: (value: boolean) => void\n changeNavigationType?: (value: WebAppNavigationType) => void\n changeSeedPhrase?: (value: string) => void\n darkMode?: boolean\n developerMode?: boolean\n enableDarkMode?: (value: boolean) => void\n enableDeveloperMode?: (value: boolean) => void\n maxAccounts?: number\n navigationCollapsed?: boolean\n navigationType?: WebAppNavigationType\n seedPhrase?: string\n}\n\nexport const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())\n","export enum AppSettingSlug {\n DarkMode = 'darkmode',\n Developer = 'developer',\n NavigationType = 'navigationType',\n NavigationCollapsed = 'navigationCollapsed',\n SeedPhrase = 'seedPhrase',\n MaxAccounts = 'maxAccounts',\n}\n","import { AppSettingSlug } from './Slug.js'\n\nexport const appSettingDefault = (): Record<string, unknown> => {\n return {\n [AppSettingSlug.DarkMode]: false,\n [AppSettingSlug.Developer]: false,\n [AppSettingSlug.NavigationType]: 'menu',\n [AppSettingSlug.NavigationCollapsed]: false,\n [AppSettingSlug.SeedPhrase]: '',\n [AppSettingSlug.MaxAccounts]: 1,\n }\n}\n","import { WithChildren } from '@xylabs/react-shared'\nimport { ProviderProps, useState } from 'react'\n\nimport { WebAppNavigationType } from '../../WebAppNavigationType.js'\nimport { AppSettingsContext, AppSettingsContextProps } from './Context.js'\nimport { AppSettingsStorage } from './Storage.js'\n\nexport interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {\n storage?: AppSettingsStorage\n}\n\nexport const AppSettingsProvider: React.FC<WithChildren<AppSettingsProviderProps>> = ({\n storage = new AppSettingsStorage(),\n value,\n children,\n ...props\n}) => {\n const [developerMode, setDeveloperMode] = useState(storage.developerMode)\n const [darkMode, setDarkMode] = useState(storage.darkMode)\n const [navigationType, setNavigationType] = useState(storage.navigationType)\n const [navigationCollapsed, setNavigationCollapsed] = useState(storage.navigationCollapsed)\n const [seedPhrase, setSeedPhrase] = useState(storage.seedPhrase)\n const [maxAccounts, setMaxAccounts] = useState(storage.maxAccounts)\n\n const enableDeveloperMode = (value: boolean) => {\n storage.developerMode = value\n setDeveloperMode(storage.developerMode)\n }\n\n const enableDarkMode = (value: boolean) => {\n storage.darkMode = value\n setDarkMode(storage.darkMode)\n }\n\n const changeNavigationType = (value: WebAppNavigationType) => {\n storage.navigationType = value\n setNavigationType(value)\n }\n\n const changeNavigationCollapsed = (value: boolean) => {\n storage.navigationCollapsed = value\n setNavigationCollapsed(value)\n }\n\n const changeSeedPhrase = (value: string) => {\n storage.seedPhrase = value\n setSeedPhrase(value)\n }\n\n const changeMaxAccounts = (value: number) => {\n storage.maxAccounts = value\n setMaxAccounts(value)\n }\n\n return (\n <AppSettingsContext.Provider\n value={{\n changeMaxAccounts,\n changeNavigationCollapsed,\n changeNavigationType,\n changeSeedPhrase,\n darkMode,\n developerMode,\n enableDarkMode,\n enableDeveloperMode,\n maxAccounts,\n navigationCollapsed,\n navigationType,\n seedPhrase,\n\n ...value,\n }}\n {...props}\n >\n {children}\n </AppSettingsContext.Provider>\n )\n}\n","import { assertEx } from '@xylabs/assert'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport class AppSettingsStorageBase {\n private defaults: Record<string, unknown>\n private prefix: string\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n this.prefix = prefix\n this.defaults = defaults ?? {}\n }\n\n getBoolean(name: string): boolean {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'boolean', () => 'Default value is not boolean')\n const defaultValue = this.defaults[name] as boolean\n assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue !== 'false'\n }\n\n getNumber(name: string): number {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'number', () => 'Default value is not a number')\n const defaultValue = this.defaults[name] as number\n assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n return defaultValue\n }\n return Number.parseFloat(storedValue)\n }\n\n getObject<T>(name: string): T {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null\n if (!parsedStoredValue) {\n assertEx(typeof this.defaults[name] === 'object', () => 'Default value is not object')\n return assertEx(this.defaults[name] as T, () => `Missing Default for ${name}`)\n }\n return parsedStoredValue as T\n }\n\n getString(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertDefinedEx(typeof this.defaults[name] === 'string', 'Default value is not string')\n const defaultValue = this.defaults[name] as string\n assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n getStringArray(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)?.split(',')\n if (!storedValue) {\n assertDefinedEx(Array.isArray(this.defaults[name]), 'Default value is not array')\n const defaultValue = this.defaults[name] as string[]\n assertEx(defaultValue !== undefined, () => `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n setBoolean(name: string, value: boolean) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n setNumber(name: string, value: number) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n setObject<T>(name: string, value: T) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n setString(name: string, value: string) {\n localStorage.setItem(`${this.prefix}|${name}`, value)\n }\n\n setStringArray(name: string, value: string[]) {\n localStorage.setItem(`${this.prefix}|${name}`, value.join(','))\n }\n}\n","import { WebAppNavigationType } from '../../WebAppNavigationType.js'\nimport { appSettingDefault } from './appSettingDefault.js'\nimport { AppSettingSlug } from './Slug.js'\nimport { AppSettingsStorageBase } from './StorageBase.js'\n\nexport class AppSettingsStorage extends AppSettingsStorageBase {\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n super(prefix, { ...appSettingDefault(), ...defaults })\n }\n\n get darkMode() {\n return this.getBoolean(AppSettingSlug.DarkMode)\n }\n\n set darkMode(value: boolean) {\n this.setBoolean(AppSettingSlug.DarkMode, value)\n }\n\n get developerMode() {\n return this.getBoolean(AppSettingSlug.Developer)\n }\n\n set developerMode(value: boolean) {\n this.setBoolean(AppSettingSlug.Developer, value)\n }\n\n get maxAccounts() {\n return this.getNumber(AppSettingSlug.MaxAccounts)\n }\n\n set maxAccounts(value: number) {\n this.setNumber(AppSettingSlug.MaxAccounts, value)\n }\n\n get navigationCollapsed() {\n return this.getBoolean(AppSettingSlug.NavigationCollapsed)\n }\n\n set navigationCollapsed(value: boolean) {\n this.setBoolean(AppSettingSlug.NavigationCollapsed, value)\n }\n\n get navigationType() {\n return this.getString(AppSettingSlug.NavigationType) as WebAppNavigationType\n }\n\n set navigationType(value: WebAppNavigationType) {\n this.setString(AppSettingSlug.NavigationType, value)\n }\n\n get seedPhrase() {\n return this.getString(AppSettingSlug.SeedPhrase)\n }\n\n set seedPhrase(value: string) {\n this.setString(AppSettingSlug.SeedPhrase, value)\n }\n}\n","import { useContext } from 'react'\n\nimport { AppSettingsContext } from './Context.js'\n\nexport const useAppSettings = () => {\n return useContext(AppSettingsContext)\n}\n","import { ReactElement } from 'react'\n\nimport { useAppSettings } from '../contexts/index.js'\n\nexport const Developer: React.FC<{ children: ReactElement }> = ({ children = null }) => {\n const { developerMode } = useAppSettings()\n\n return developerMode ? children : null\n}\n"],"mappings":"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","names":["AppSettingSlug","value","jsx"]}
|