From 79711c64d8e11b2872a14cc2e40047c3a32b9196 Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Fri, 24 Feb 2023 14:41:34 +0000 Subject: [PATCH] added settings page --- packages/app/src/pages/settings/index.jsx | 54 +++++++++++++--------- packages/app/src/pages/settings/index.less | 2 + 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/packages/app/src/pages/settings/index.jsx b/packages/app/src/pages/settings/index.jsx index 48543f89..590d95db 100644 --- a/packages/app/src/pages/settings/index.jsx +++ b/packages/app/src/pages/settings/index.jsx @@ -63,7 +63,7 @@ const SettingItem = (props) => { return false } } else { - const storagedValue = await window.app.settings.get(item.id) + const storagedValue = await window.app.cores.settings.get(item.id) if (typeof updateValue === "undefined") { updateValue = !storagedValue @@ -71,7 +71,7 @@ const SettingItem = (props) => { } if (item.storaged) { - await window.app.settings.set(item.id, updateValue) + await window.app.cores.settings.set(item.id, updateValue) } if (typeof item.emitEvent !== "undefined") { @@ -111,7 +111,7 @@ const SettingItem = (props) => { const checkDependsValidation = () => { return !Boolean(Object.keys(item.dependsOn).every((key) => { - const storagedValue = window.app.settings.get(key) + const storagedValue = window.app.cores.settings.get(key) console.debug(`Checking validation for [${key}] with now value [${storagedValue}]`) @@ -125,7 +125,7 @@ const SettingItem = (props) => { const settingInitialization = async () => { if (item.storaged) { - const storagedValue = window.app.settings.get(item.id) + const storagedValue = window.app.cores.settings.get(item.id) setValue(storagedValue) } @@ -243,6 +243,13 @@ const SettingItem = (props) => { item.props["disabled"] = disabled + const elementsCtx = { + currentValue: value, + dispatchUpdate, + onUpdateItem, + ...props.ctx, + } + return
@@ -264,17 +271,27 @@ const SettingItem = (props) => { {item.extraActions &&
{item.extraActions.map((action, index) => { - return
- - {action.title} - -
+ if (typeof action === "function") { + return React.createElement(action, { + ctx: elementsCtx, + }) + } + + const handleOnClick = () => { + if (action.onClick) { + action.onClick(elementsCtx) + } + } + + return + {action.title} + })}
} @@ -286,12 +303,7 @@ const SettingItem = (props) => { ?
Loading...
: React.createElement(SettingComponent, { ...item.props, - ctx: { - currentValue: value, - dispatchUpdate, - onUpdateItem, - ...props.ctx, - } + ctx: elementsCtx })}
diff --git a/packages/app/src/pages/settings/index.less b/packages/app/src/pages/settings/index.less index 9ea1b615..b2804b77 100644 --- a/packages/app/src/pages/settings/index.less +++ b/packages/app/src/pages/settings/index.less @@ -16,6 +16,8 @@ align-items: center; width: 30%; + + padding: 0 30px; } .settings_content {