@xyo-network/react-app-settings 4.4.10 → 5.0.0-rc.1
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/index.mjs +3 -3
- package/dist/browser/index.mjs.map +1 -1
- package/dist/types/WebAppNavigationType.d.ts +3 -0
- package/dist/types/WebAppNavigationType.d.ts.map +1 -0
- package/dist/types/components/DarkModeIconButton.d.ts +5 -0
- package/dist/types/components/DarkModeIconButton.d.ts.map +1 -0
- package/dist/types/components/Developer.d.ts +6 -0
- package/dist/types/components/Developer.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +3 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/contexts/AppSettings/Context.d.ts +19 -0
- package/dist/types/contexts/AppSettings/Context.d.ts.map +1 -0
- package/dist/types/contexts/AppSettings/Provider.d.ts +11 -0
- package/dist/types/contexts/AppSettings/Provider.d.ts.map +1 -0
- package/dist/types/contexts/AppSettings/Slug.d.ts +13 -0
- package/dist/types/contexts/AppSettings/Slug.d.ts.map +1 -0
- package/dist/types/contexts/AppSettings/Storage.d.ts +19 -0
- package/dist/types/contexts/AppSettings/Storage.d.ts.map +1 -0
- package/dist/types/contexts/AppSettings/StorageBase.d.ts +17 -0
- package/dist/types/contexts/AppSettings/StorageBase.d.ts.map +1 -0
- package/dist/types/contexts/AppSettings/appSettingDefault.d.ts +3 -0
- package/dist/types/contexts/AppSettings/appSettingDefault.d.ts.map +1 -0
- package/dist/types/contexts/AppSettings/index.d.ts +7 -0
- package/dist/types/contexts/AppSettings/index.d.ts.map +1 -0
- package/dist/types/contexts/AppSettings/useAppSettings.d.ts +3 -0
- package/dist/types/contexts/AppSettings/useAppSettings.d.ts.map +1 -0
- package/dist/types/contexts/index.d.ts +2 -0
- package/dist/types/contexts/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +15 -13
- package/src/contexts/AppSettings/Provider.tsx +2 -2
- package/src/contexts/AppSettings/useAppSettings.ts +2 -2
- package/dist/browser/index.d.ts +0 -79
package/dist/browser/index.mjs
CHANGED
@@ -200,7 +200,7 @@ var AppSettingsProvider = /* @__PURE__ */ __name(({ storage, value, children, ..
|
|
200
200
|
storageMemo.maxAccounts = value2;
|
201
201
|
setMaxAccounts(value2);
|
202
202
|
}, "changeMaxAccounts");
|
203
|
-
return /* @__PURE__ */ React.createElement(AppSettingsContext
|
203
|
+
return /* @__PURE__ */ React.createElement(AppSettingsContext, {
|
204
204
|
// eslint-disable-next-line @eslint-react/no-unstable-context-value
|
205
205
|
value: {
|
206
206
|
changeMaxAccounts,
|
@@ -222,9 +222,9 @@ var AppSettingsProvider = /* @__PURE__ */ __name(({ storage, value, children, ..
|
|
222
222
|
}, "AppSettingsProvider");
|
223
223
|
|
224
224
|
// src/contexts/AppSettings/useAppSettings.ts
|
225
|
-
import {
|
225
|
+
import { use } from "react";
|
226
226
|
var useAppSettings = /* @__PURE__ */ __name(() => {
|
227
|
-
return
|
227
|
+
return use(AppSettingsContext);
|
228
228
|
}, "useAppSettings");
|
229
229
|
|
230
230
|
// src/components/DarkModeIconButton.tsx
|
@@ -1 +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 type { IconButtonProps } from '@mui/material'\nimport { IconButton } from '@mui/material'\nimport React from 'react'\n\nimport { useAppSettings } from '../contexts/index.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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 type { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())\n","import type { EnumValue } from '@xylabs/enum'\nimport { Enum } from '@xylabs/enum'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport const AppSettingSlug = Enum({\n DarkMode: 'darkmode',\n Developer: 'developer',\n NavigationType: 'navigationType',\n NavigationCollapsed: 'navigationCollapsed',\n SeedPhrase: 'seedPhrase',\n MaxAccounts: 'maxAccounts',\n})\n\nexport type AppSettingSlug = EnumValue<typeof AppSettingSlug>\n","import { AppSettingSlug } from './Slug.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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 type { PropsWithChildren, ProviderProps } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport type { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport type { AppSettingsContextProps } from './Context.ts'\nimport { AppSettingsContext } from './Context.ts'\nimport { AppSettingsStorage } from './Storage.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {\n storage?: AppSettingsStorage\n}\n\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport const AppSettingsProvider: React.FC<PropsWithChildren<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 { assertDefinedEx, assertEx } from '@xylabs/assert'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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 type { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\nimport { AppSettingSlug } from './Slug.ts'\nimport { AppSettingsStorageBase } from './StorageBase.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport const useAppSettings = () => {\n return useContext(AppSettingsContext)\n}\n","import type { ReactElement } from 'react'\n\nimport { useAppSettings } from '../contexts/index.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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","Enum","AppSettingSlug","DarkMode","Developer","NavigationType","NavigationCollapsed","SeedPhrase","MaxAccounts","appSettingDefault","AppSettingSlug","DarkMode","Developer","NavigationType","NavigationCollapsed","SeedPhrase","MaxAccounts","AppSettingsContext","createContext","appSettingDefault","React","useMemo","useState","assertDefinedEx","assertEx","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"]}
|
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 type { IconButtonProps } from '@mui/material'\nimport { IconButton } from '@mui/material'\nimport React from 'react'\n\nimport { useAppSettings } from '../contexts/index.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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 type { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport const AppSettingsContext = createContext<AppSettingsContextProps>(appSettingDefault())\n","import type { EnumValue } from '@xylabs/enum'\nimport { Enum } from '@xylabs/enum'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport const AppSettingSlug = Enum({\n DarkMode: 'darkmode',\n Developer: 'developer',\n NavigationType: 'navigationType',\n NavigationCollapsed: 'navigationCollapsed',\n SeedPhrase: 'seedPhrase',\n MaxAccounts: 'maxAccounts',\n})\n\nexport type AppSettingSlug = EnumValue<typeof AppSettingSlug>\n","import { AppSettingSlug } from './Slug.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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 type { PropsWithChildren, ProviderProps } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport type { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport type { AppSettingsContextProps } from './Context.ts'\nimport { AppSettingsContext } from './Context.ts'\nimport { AppSettingsStorage } from './Storage.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {\n storage?: AppSettingsStorage\n}\n\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport const AppSettingsProvider: React.FC<PropsWithChildren<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\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>\n )\n}\n","import { assertDefinedEx, assertEx } from '@xylabs/assert'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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 type { WebAppNavigationType } from '../../WebAppNavigationType.ts'\nimport { appSettingDefault } from './appSettingDefault.ts'\nimport { AppSettingSlug } from './Slug.ts'\nimport { AppSettingsStorageBase } from './StorageBase.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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 { use } from 'react'\n\nimport { AppSettingsContext } from './Context.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\nexport const useAppSettings = () => {\n return use(AppSettingsContext)\n}\n","import type { ReactElement } from 'react'\n\nimport { useAppSettings } from '../contexts/index.ts'\n\n/** @deprecated import from @xylabs/react-app-settings instead */\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","Enum","AppSettingSlug","DarkMode","Developer","NavigationType","NavigationCollapsed","SeedPhrase","MaxAccounts","appSettingDefault","AppSettingSlug","DarkMode","Developer","NavigationType","NavigationCollapsed","SeedPhrase","MaxAccounts","AppSettingsContext","createContext","appSettingDefault","React","useMemo","useState","assertDefinedEx","assertEx","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","use","useAppSettings","use","AppSettingsContext","DarkModeIconButton","props","darkMode","enableDarkMode","useAppSettings","handleDarkModeChange","React","IconButton","onClick","DarkModeRoundedIcon","LightModeRoundedIcon","Developer","children","developerMode","useAppSettings"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"WebAppNavigationType.d.ts","sourceRoot":"","sources":["../../src/WebAppNavigationType.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"DarkModeIconButton.d.ts","sourceRoot":"","sources":["../../../src/components/DarkModeIconButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAcxD,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Developer.d.ts","sourceRoot":"","sources":["../../../src/components/Developer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAIzC,iEAAiE;AACjE,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,CAI1D,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import type { WebAppNavigationType } from '../../WebAppNavigationType.ts';
|
2
|
+
/** @deprecated import from @xylabs/react-app-settings instead */
|
3
|
+
export interface AppSettingsContextProps {
|
4
|
+
changeMaxAccounts?: (value: number) => void;
|
5
|
+
changeNavigationCollapsed?: (value: boolean) => void;
|
6
|
+
changeNavigationType?: (value: WebAppNavigationType) => void;
|
7
|
+
changeSeedPhrase?: (value: string) => void;
|
8
|
+
darkMode?: boolean;
|
9
|
+
developerMode?: boolean;
|
10
|
+
enableDarkMode?: (value: boolean) => void;
|
11
|
+
enableDeveloperMode?: (value: boolean) => void;
|
12
|
+
maxAccounts?: number;
|
13
|
+
navigationCollapsed?: boolean;
|
14
|
+
navigationType?: WebAppNavigationType;
|
15
|
+
seedPhrase?: string;
|
16
|
+
}
|
17
|
+
/** @deprecated import from @xylabs/react-app-settings instead */
|
18
|
+
export declare const AppSettingsContext: import("react").Context<AppSettingsContextProps>;
|
19
|
+
//# sourceMappingURL=Context.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAGzE,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC5D,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,kDAA8D,CAAA"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import type { PropsWithChildren, ProviderProps } from 'react';
|
2
|
+
import React from 'react';
|
3
|
+
import type { AppSettingsContextProps } from './Context.ts';
|
4
|
+
import { AppSettingsStorage } from './Storage.ts';
|
5
|
+
/** @deprecated import from @xylabs/react-app-settings instead */
|
6
|
+
export interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
|
7
|
+
storage?: AppSettingsStorage;
|
8
|
+
}
|
9
|
+
/** @deprecated import from @xylabs/react-app-settings instead */
|
10
|
+
export declare const AppSettingsProvider: React.FC<PropsWithChildren<AppSettingsProviderProps>>;
|
11
|
+
//# sourceMappingURL=Provider.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC7D,OAAO,KAA4B,MAAM,OAAO,CAAA;AAGhD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,iEAAiE;AACjE,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAC7H,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC7B;AAED,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,CAoErF,CAAA"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import type { EnumValue } from '@xylabs/enum';
|
2
|
+
import { Enum } from '@xylabs/enum';
|
3
|
+
/** @deprecated import from @xylabs/react-app-settings instead */
|
4
|
+
export declare const AppSettingSlug: Enum<{
|
5
|
+
DarkMode: "darkmode";
|
6
|
+
Developer: "developer";
|
7
|
+
NavigationType: "navigationType";
|
8
|
+
NavigationCollapsed: "navigationCollapsed";
|
9
|
+
SeedPhrase: "seedPhrase";
|
10
|
+
MaxAccounts: "maxAccounts";
|
11
|
+
}>;
|
12
|
+
export type AppSettingSlug = EnumValue<typeof AppSettingSlug>;
|
13
|
+
//# sourceMappingURL=Slug.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Slug.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Slug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,iEAAiE;AACjE,eAAO,MAAM,cAAc;;;;;;;EAOzB,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,cAAc,CAAC,CAAA"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import type { WebAppNavigationType } from '../../WebAppNavigationType.ts';
|
2
|
+
import { AppSettingsStorageBase } from './StorageBase.ts';
|
3
|
+
/** @deprecated import from @xylabs/react-app-settings instead */
|
4
|
+
export declare class AppSettingsStorage extends AppSettingsStorageBase {
|
5
|
+
constructor(prefix?: string, defaults?: Record<string, unknown>);
|
6
|
+
get darkMode(): boolean;
|
7
|
+
set darkMode(value: boolean);
|
8
|
+
get developerMode(): boolean;
|
9
|
+
set developerMode(value: boolean);
|
10
|
+
get maxAccounts(): number;
|
11
|
+
set maxAccounts(value: number);
|
12
|
+
get navigationCollapsed(): boolean;
|
13
|
+
set navigationCollapsed(value: boolean);
|
14
|
+
get navigationType(): WebAppNavigationType;
|
15
|
+
set navigationType(value: WebAppNavigationType);
|
16
|
+
get seedPhrase(): string;
|
17
|
+
set seedPhrase(value: string);
|
18
|
+
}
|
19
|
+
//# sourceMappingURL=Storage.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAGzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAEzD,iEAAiE;AACjE,qBAAa,kBAAmB,SAAQ,sBAAsB;gBAChD,MAAM,SAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAItE,IAAI,QAAQ,IAIQ,OAAO,CAF1B;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,aAAa,IAIQ,OAAO,CAF/B;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAE/B;IAED,IAAI,WAAW,IAIQ,MAAM,CAF5B;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAE5B;IAED,IAAI,mBAAmB,IAIQ,OAAO,CAFrC;IAED,IAAI,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAErC;IAED,IAAI,cAAc,IAIQ,oBAAoB,CAF7C;IAED,IAAI,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAE7C;IAED,IAAI,UAAU,IAIQ,MAAM,CAF3B;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAE3B;CACF"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
/** @deprecated import from @xylabs/react-app-settings instead */
|
2
|
+
export declare class AppSettingsStorageBase {
|
3
|
+
private defaults;
|
4
|
+
private prefix;
|
5
|
+
constructor(prefix?: string, defaults?: Record<string, unknown>);
|
6
|
+
getBoolean(name: string): boolean;
|
7
|
+
getNumber(name: string): number;
|
8
|
+
getObject<T>(name: string): T;
|
9
|
+
getString(name: string): string;
|
10
|
+
getStringArray(name: string): string[];
|
11
|
+
setBoolean(name: string, value: boolean): void;
|
12
|
+
setNumber(name: string, value: number): void;
|
13
|
+
setObject<T>(name: string, value: T): void;
|
14
|
+
setString(name: string, value: string): void;
|
15
|
+
setStringArray(name: string, value: string[]): void;
|
16
|
+
}
|
17
|
+
//# sourceMappingURL=StorageBase.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"StorageBase.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/StorageBase.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAAQ;gBACV,MAAM,SAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKtE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAWjC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAW/B,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAU7B,SAAS,CAAC,IAAI,EAAE,MAAM;IAWtB,cAAc,CAAC,IAAI,EAAE,MAAM;IAW3B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAIvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIrC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAInC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIrC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CAG7C"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"appSettingDefault.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/appSettingDefault.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,eAAO,MAAM,iBAAiB,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAS1D,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useAppSettings.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/useAppSettings.ts"],"names":[],"mappings":"AAIA,iEAAiE;AACjE,eAAO,MAAM,cAAc,sDAE1B,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@xyo-network/react-app-settings",
|
3
|
-
"version": "
|
3
|
+
"version": "5.0.0-rc.1",
|
4
4
|
"description": "Common React library for all XYO projects that use React",
|
5
5
|
"keywords": [
|
6
6
|
"xyo",
|
@@ -28,10 +28,10 @@
|
|
28
28
|
"exports": {
|
29
29
|
".": {
|
30
30
|
"browser": {
|
31
|
-
"types": "./dist/
|
31
|
+
"types": "./dist/types/index.d.ts",
|
32
32
|
"default": "./dist/browser/index.mjs"
|
33
33
|
},
|
34
|
-
"types": "./dist/
|
34
|
+
"types": "./dist/types/index.d.ts",
|
35
35
|
"default": "./dist/browser/index.mjs"
|
36
36
|
},
|
37
37
|
"./package.json": "./package.json"
|
@@ -43,17 +43,18 @@
|
|
43
43
|
"lint-pkg": "npmPkgJsonLint ."
|
44
44
|
},
|
45
45
|
"dependencies": {
|
46
|
-
"@xylabs/assert": "^4.5.
|
47
|
-
"@xylabs/enum": "^4.5.
|
46
|
+
"@xylabs/assert": "^4.5.10",
|
47
|
+
"@xylabs/enum": "^4.5.10"
|
48
48
|
},
|
49
49
|
"devDependencies": {
|
50
|
-
"@mui/icons-material": "^6.4.
|
51
|
-
"@mui/material": "^6.4.
|
52
|
-
"@mui/styles": "^6.4.
|
53
|
-
"@
|
54
|
-
"
|
55
|
-
"react
|
56
|
-
"
|
50
|
+
"@mui/icons-material": "^6.4.7",
|
51
|
+
"@mui/material": "^6.4.7",
|
52
|
+
"@mui/styles": "^6.4.7",
|
53
|
+
"@types/react": "^19.0.10",
|
54
|
+
"@xylabs/ts-scripts-yarn3": "^6.0.3",
|
55
|
+
"react": "^19.0.0",
|
56
|
+
"react-dom": "^19.0.0",
|
57
|
+
"typescript": "^5.8.2"
|
57
58
|
},
|
58
59
|
"peerDependencies": {
|
59
60
|
"@mui/icons-material": "^6",
|
@@ -65,5 +66,6 @@
|
|
65
66
|
"publishConfig": {
|
66
67
|
"access": "public"
|
67
68
|
},
|
68
|
-
"docs": "dist/docs.json"
|
69
|
+
"docs": "dist/docs.json",
|
70
|
+
"stableVersion": "4.4.11"
|
69
71
|
}
|
@@ -57,7 +57,7 @@ export const AppSettingsProvider: React.FC<PropsWithChildren<AppSettingsProvider
|
|
57
57
|
}
|
58
58
|
|
59
59
|
return (
|
60
|
-
<AppSettingsContext
|
60
|
+
<AppSettingsContext
|
61
61
|
// eslint-disable-next-line @eslint-react/no-unstable-context-value
|
62
62
|
value={{
|
63
63
|
changeMaxAccounts,
|
@@ -78,6 +78,6 @@ export const AppSettingsProvider: React.FC<PropsWithChildren<AppSettingsProvider
|
|
78
78
|
{...props}
|
79
79
|
>
|
80
80
|
{children}
|
81
|
-
</AppSettingsContext
|
81
|
+
</AppSettingsContext>
|
82
82
|
)
|
83
83
|
}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import {
|
1
|
+
import { use } from 'react'
|
2
2
|
|
3
3
|
import { AppSettingsContext } from './Context.ts'
|
4
4
|
|
5
5
|
/** @deprecated import from @xylabs/react-app-settings instead */
|
6
6
|
export const useAppSettings = () => {
|
7
|
-
return
|
7
|
+
return use(AppSettingsContext)
|
8
8
|
}
|
package/dist/browser/index.d.ts
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
import { IconButtonProps } from '@mui/material';
|
2
|
-
import * as React$1 from 'react';
|
3
|
-
import React__default, { ReactElement, ProviderProps, PropsWithChildren } from 'react';
|
4
|
-
import { Enum, EnumValue } from '@xylabs/enum';
|
5
|
-
|
6
|
-
declare const DarkModeIconButton: React__default.FC<IconButtonProps>;
|
7
|
-
|
8
|
-
declare const Developer: React.FC<{
|
9
|
-
children: ReactElement;
|
10
|
-
}>;
|
11
|
-
|
12
|
-
type WebAppNavigationType = 'menu' | 'sidebar';
|
13
|
-
|
14
|
-
interface AppSettingsContextProps {
|
15
|
-
changeMaxAccounts?: (value: number) => void;
|
16
|
-
changeNavigationCollapsed?: (value: boolean) => void;
|
17
|
-
changeNavigationType?: (value: WebAppNavigationType) => void;
|
18
|
-
changeSeedPhrase?: (value: string) => void;
|
19
|
-
darkMode?: boolean;
|
20
|
-
developerMode?: boolean;
|
21
|
-
enableDarkMode?: (value: boolean) => void;
|
22
|
-
enableDeveloperMode?: (value: boolean) => void;
|
23
|
-
maxAccounts?: number;
|
24
|
-
navigationCollapsed?: boolean;
|
25
|
-
navigationType?: WebAppNavigationType;
|
26
|
-
seedPhrase?: string;
|
27
|
-
}
|
28
|
-
declare const AppSettingsContext: React$1.Context<AppSettingsContextProps>;
|
29
|
-
|
30
|
-
declare class AppSettingsStorageBase {
|
31
|
-
private defaults;
|
32
|
-
private prefix;
|
33
|
-
constructor(prefix?: string, defaults?: Record<string, unknown>);
|
34
|
-
getBoolean(name: string): boolean;
|
35
|
-
getNumber(name: string): number;
|
36
|
-
getObject<T>(name: string): T;
|
37
|
-
getString(name: string): string;
|
38
|
-
getStringArray(name: string): string[];
|
39
|
-
setBoolean(name: string, value: boolean): void;
|
40
|
-
setNumber(name: string, value: number): void;
|
41
|
-
setObject<T>(name: string, value: T): void;
|
42
|
-
setString(name: string, value: string): void;
|
43
|
-
setStringArray(name: string, value: string[]): void;
|
44
|
-
}
|
45
|
-
|
46
|
-
declare class AppSettingsStorage extends AppSettingsStorageBase {
|
47
|
-
constructor(prefix?: string, defaults?: Record<string, unknown>);
|
48
|
-
get darkMode(): boolean;
|
49
|
-
set darkMode(value: boolean);
|
50
|
-
get developerMode(): boolean;
|
51
|
-
set developerMode(value: boolean);
|
52
|
-
get maxAccounts(): number;
|
53
|
-
set maxAccounts(value: number);
|
54
|
-
get navigationCollapsed(): boolean;
|
55
|
-
set navigationCollapsed(value: boolean);
|
56
|
-
get navigationType(): WebAppNavigationType;
|
57
|
-
set navigationType(value: WebAppNavigationType);
|
58
|
-
get seedPhrase(): string;
|
59
|
-
set seedPhrase(value: string);
|
60
|
-
}
|
61
|
-
|
62
|
-
interface AppSettingsProviderProps<T extends AppSettingsContextProps = AppSettingsContextProps> extends ProviderProps<T> {
|
63
|
-
storage?: AppSettingsStorage;
|
64
|
-
}
|
65
|
-
declare const AppSettingsProvider: React__default.FC<PropsWithChildren<AppSettingsProviderProps>>;
|
66
|
-
|
67
|
-
declare const AppSettingSlug: Enum<{
|
68
|
-
DarkMode: "darkmode";
|
69
|
-
Developer: "developer";
|
70
|
-
NavigationType: "navigationType";
|
71
|
-
NavigationCollapsed: "navigationCollapsed";
|
72
|
-
SeedPhrase: "seedPhrase";
|
73
|
-
MaxAccounts: "maxAccounts";
|
74
|
-
}>;
|
75
|
-
type AppSettingSlug = EnumValue<typeof AppSettingSlug>;
|
76
|
-
|
77
|
-
declare const useAppSettings: () => AppSettingsContextProps;
|
78
|
-
|
79
|
-
export { AppSettingSlug, AppSettingsContext, type AppSettingsContextProps, AppSettingsProvider, type AppSettingsProviderProps, AppSettingsStorage, AppSettingsStorageBase, DarkModeIconButton, Developer, type WebAppNavigationType, useAppSettings };
|