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