@onehat/ui 0.3.150 → 0.3.152
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -61,11 +61,40 @@ export function DateElement(props) {
|
|
|
61
61
|
pickerRef = useRef(),
|
|
62
62
|
[isPickerShown, setIsPickerShown] = useState(false),
|
|
63
63
|
[isRendered, setIsRendered] = useState(false),
|
|
64
|
+
[localValue, setLocalValue] = useState(value),
|
|
64
65
|
[textInputValue, setTextInputValue] = useState(value),
|
|
65
66
|
[isTranslateX, setIsTranslateX] = useState(false),
|
|
66
67
|
[isTranslateY, setIsTranslateY] = useState(false),
|
|
67
68
|
[top, setTop] = useState(0),
|
|
68
69
|
[left, setLeft] = useState(0),
|
|
70
|
+
setBothValues = (value) => {
|
|
71
|
+
setLocalValue(value);
|
|
72
|
+
setValue(value);
|
|
73
|
+
},
|
|
74
|
+
formatByMode = (value) => {
|
|
75
|
+
switch(mode) {
|
|
76
|
+
case DATE:
|
|
77
|
+
if (!_.isNil(value)) {
|
|
78
|
+
value = Parsers.ParseDate(value);
|
|
79
|
+
value = Formatters.FormatDate(value, 'YYYY-MM-DD');
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
case TIME:
|
|
83
|
+
if (!_.isNil(value)) {
|
|
84
|
+
value = Parsers.ParseTime(value);
|
|
85
|
+
value = Formatters.FormatTime(value);
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
case DATETIME:
|
|
89
|
+
if (!_.isNil(value)) {
|
|
90
|
+
value = Parsers.ParseDate(value);
|
|
91
|
+
value = Formatters.FormatDate(value, 'YYYY-MM-DD HH:mm:ss');
|
|
92
|
+
}
|
|
93
|
+
break;
|
|
94
|
+
default:
|
|
95
|
+
}
|
|
96
|
+
return value;
|
|
97
|
+
},
|
|
69
98
|
showPicker = () => {
|
|
70
99
|
if (isPickerShown) {
|
|
71
100
|
return;
|
|
@@ -140,34 +169,14 @@ export function DateElement(props) {
|
|
|
140
169
|
return;
|
|
141
170
|
}
|
|
142
171
|
if (_.isEmpty(value)) {
|
|
143
|
-
|
|
172
|
+
setBothValues(null);
|
|
144
173
|
setTextInputValue('');
|
|
145
174
|
return;
|
|
146
175
|
}
|
|
147
|
-
|
|
148
|
-
case DATE:
|
|
149
|
-
if (!_.isNil(value)) {
|
|
150
|
-
value = Parsers.ParseDate(value);
|
|
151
|
-
value = Formatters.FormatDate(value, 'YYYY-MM-DD');
|
|
152
|
-
}
|
|
153
|
-
break;
|
|
154
|
-
case TIME:
|
|
155
|
-
if (!_.isNil(value)) {
|
|
156
|
-
value = Parsers.ParseTime(value);
|
|
157
|
-
value = Formatters.FormatTime(value);
|
|
158
|
-
}
|
|
159
|
-
break;
|
|
160
|
-
case DATETIME:
|
|
161
|
-
if (!_.isNil(value)) {
|
|
162
|
-
value = Parsers.ParseDate(value);
|
|
163
|
-
value = Formatters.FormatDate(value, 'YYYY-MM-DD HH:mm:ss');
|
|
164
|
-
}
|
|
165
|
-
break;
|
|
166
|
-
default:
|
|
167
|
-
}
|
|
176
|
+
value = formatByMode(value);
|
|
168
177
|
|
|
169
178
|
if (value !== 'Invalid date') {
|
|
170
|
-
|
|
179
|
+
setBothValues(value);
|
|
171
180
|
}
|
|
172
181
|
|
|
173
182
|
setTextInputValue(value);
|
|
@@ -219,10 +228,23 @@ export function DateElement(props) {
|
|
|
219
228
|
}
|
|
220
229
|
|
|
221
230
|
if (moment && moment?.isValid()) {
|
|
222
|
-
|
|
231
|
+
setBothValues(value);
|
|
223
232
|
setTextInputValue(value);
|
|
224
233
|
}
|
|
225
234
|
};
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
useEffect(() => {
|
|
238
|
+
|
|
239
|
+
// When value changes from outside, adjust text value
|
|
240
|
+
if (value !== localValue) {
|
|
241
|
+
setLocalValue(value);
|
|
242
|
+
|
|
243
|
+
const textValue = formatByMode(value);
|
|
244
|
+
setTextInputValue(textValue);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
}, [value]);
|
|
226
248
|
|
|
227
249
|
// Format the display date/time/datetime
|
|
228
250
|
let title = placeholder,
|
|
@@ -42,7 +42,8 @@ export default function withWindowedEditor(WrappedComponent, isTree = false) {
|
|
|
42
42
|
h,
|
|
43
43
|
|
|
44
44
|
...propsToPass
|
|
45
|
-
} = props
|
|
45
|
+
} = props,
|
|
46
|
+
onEditorCancel = props.onEditorCancel;
|
|
46
47
|
|
|
47
48
|
if (!Editor) {
|
|
48
49
|
throw Error('Editor is not defined');
|
|
@@ -53,7 +54,7 @@ export default function withWindowedEditor(WrappedComponent, isTree = false) {
|
|
|
53
54
|
{isEditorShown &&
|
|
54
55
|
<Modal
|
|
55
56
|
isOpen={true}
|
|
56
|
-
onClose={
|
|
57
|
+
onClose={onEditorCancel}
|
|
57
58
|
>
|
|
58
59
|
<Editor
|
|
59
60
|
editorType={EDITOR_TYPE__WINDOWED}
|