Skip to content
This repository was archived by the owner on Apr 18, 2024. It is now read-only.

Commit 910a60c

Browse files
authored
fix: DEV-2120: required Number with default value (#569)
There are no results if user didn't touch Number, but if there is defaultValue we should create a new result with it on the fly for every region. That works only for required perRegion Number with no value added.
1 parent d1af262 commit 910a60c

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

src/tags/control/Number.js

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,29 @@ const Model = types
9090
},
9191

9292
beforeSend() {
93-
// add defaultValue to results for top-level controls
94-
if (!isDefined(self.number) && isDefined(self.defaultvalue) && !self.perRegion) {
95-
self.setNumber(+self.defaultvalue);
93+
if (!isDefined(self.defaultvalue)) return;
94+
95+
// let's fix only required perRegions
96+
if (self.perregion && self.required) {
97+
const object = self.annotation.names.get(self.toname);
98+
99+
for (const reg of object?.regs ?? []) {
100+
// add result with default value to every region of related object without number yet
101+
if (!reg.results.some(r => r.from_name === self)) {
102+
reg.results.push({
103+
area: reg,
104+
from_name: self,
105+
to_name: object,
106+
type: self.resultType,
107+
value: {
108+
[self.valueType]: +self.defaultvalue,
109+
},
110+
});
111+
}
112+
}
113+
} else {
114+
// add defaultValue to results for top-level controls
115+
if (!isDefined(self.number)) self.setNumber(+self.defaultvalue);
96116
}
97117
},
98118

0 commit comments

Comments
 (0)