improve emitEvent & ctx

This commit is contained in:
SrGooglo 2022-12-13 12:23:19 +00:00
parent 9d29fa0c10
commit 1c430df980

View File

@ -95,14 +95,18 @@ const SettingItem = (props) => {
await window.app.settings.set(item.id, updateValue)
}
if (typeof item.emitEvent === "string") {
if (typeof item.emitEvent !== "undefined") {
let emissionPayload = updateValue
if (typeof item.emissionValueUpdate === "function") {
emissionPayload = item.emissionValueUpdate(emissionPayload)
}
window.app.eventBus.emit(item.emitEvent, emissionPayload)
if (Array.isArray(item.emitEvent)) {
window.app.eventBus.emit(...item.emitEvent, emissionPayload)
} else if (typeof item.emitEvent === "string") {
window.app.eventBus.emit(item.emitEvent, emissionPayload)
}
}
if (item.noUpdate) {
@ -201,8 +205,6 @@ const SettingItem = (props) => {
return null
}
// fix props
switch (SettingComponent.toLowerCase()) {
case "slidercolorpicker": {
item.props.onChange = (color) => {
@ -305,6 +307,7 @@ const SettingItem = (props) => {
currentValue: value,
dispatchUpdate,
onUpdateItem,
...props.ctx,
}
})}
</div>
@ -378,7 +381,12 @@ export default class SettingsMenu extends React.PureComponent {
}</Translation>
</h1>
<div className="content">
{group.map((item) => <SettingItem item={item} />)}
{group.map((item) => <SettingItem
item={item}
ctx={{
close: this.props.close
}}
/>)}
</div>
</div>
</div>