Browse Source

Fix color picker update on component select change

pull/4361/head
Artur Arseniev 4 years ago
parent
commit
47d10eda10
  1. 36
      src/domain_abstract/ui/InputColor.js

36
src/domain_abstract/ui/InputColor.js

@ -101,9 +101,20 @@ export default class InputColor extends Input {
var elToAppend = em && em.config ? em.config.el : '';
var colorPickerConfig = (em && em.getConfig && em.getConfig().colorPicker) || {};
let changed = 0;
let changed = false;
let movedColor = '';
let previousColor;
this.$el.find('[data-colorp-c]').append(colorEl);
const handleChange = (value, complete = true) => {
if (onChange) {
onChange(value, !complete);
} else {
complete && model.setValueFromInput(0, false); // for UndoManager
model.setValueFromInput(value, complete);
}
};
colorEl.spectrum({
color: model.getValue() || false,
containerClassName: `${ppfx}one-bg ${ppfx}two-color`,
@ -121,40 +132,39 @@ export default class InputColor extends Input {
move(color) {
const cl = getColor(color);
movedColor = cl;
cpStyle.backgroundColor = cl;
onChange ? onChange(cl, true) : model.setValueFromInput(cl, 0);
handleChange(cl, false);
},
change(color) {
changed = 1;
changed = true;
const cl = getColor(color);
cpStyle.backgroundColor = cl;
if (onChange) {
onChange(cl);
} else {
model.setValueFromInput(0, 0); // for UndoManager
model.setValueFromInput(cl);
}
handleChange(cl);
self.noneColor = 0;
},
show(color) {
changed = 0;
changed = false;
movedColor = '';
previousColor = onChange ? model.getValue({ noDefault: true }) : getColor(color);
},
hide(color) {
hide() {
if (!changed && (previousColor || onChange)) {
if (self.noneColor) {
previousColor = '';
}
cpStyle.backgroundColor = previousColor;
colorEl.spectrum('set', previousColor);
onChange ? onChange(previousColor, true) : model.setValueFromInput(previousColor, 0);
handleChange(previousColor, false);
}
},
});
if (em && em.on) {
this.listenTo(em, 'component:selected', () => {
changed = 1;
movedColor && handleChange(movedColor);
changed = true;
movedColor = '';
colorEl.spectrum('hide');
});
}

Loading…
Cancel
Save