[FIX] web_widget_product_label_section_and_note: Use a flag to change the icon based on product visibility.

Before this commit, when isProductVisible was disabled and the user changed the label, this caused isProductVisible to change its value.
After this commit, changing the label no longer modifies isProductVisible.
pull/3080/head
Carlos Lopez 2025-02-06 09:36:47 -05:00
parent bc4f109540
commit 65af83d508
1 changed files with 9 additions and 3 deletions

View File

@ -154,6 +154,7 @@ export class ProductLabelSectionAndNoteField extends Many2OneField {
this.labelVisibility = useState({value: false});
this.isProductVisible = useState({value: false});
this.switchToLabel = false;
this.changeProductVisibility = true;
this.columnIsProductAndLabel = useState({
value: this.props.record.columnIsProductAndLabel,
});
@ -203,8 +204,10 @@ export class ProductLabelSectionAndNoteField extends Many2OneField {
window.removeEventListener("afterprint", this.onAfterPrint);
});
useRecordObserver(async (record) => {
const label = record.data.name || "";
this.isProductVisible.value = label.includes(this.productName);
if (this.changeProductVisibility) {
const label = record.data.name || "";
this.isProductVisible.value = label.includes(this.productName);
}
});
}
@ -276,9 +279,12 @@ export class ProductLabelSectionAndNoteField extends Many2OneField {
}
updateLabel(value) {
this.changeProductVisibility = false;
this.props.record.update({
name:
this.productName && this.productName !== value
this.productName &&
this.productName !== value &&
this.isProductVisible.value
? `${this.productName}\n${value}`
: value,
});