@onehat/ui 0.4.29 → 0.4.31
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
|
@@ -72,7 +72,8 @@ export default function withPresetButtons(WrappedComponent, isGrid = false) {
|
|
|
72
72
|
disableCopy = !isGrid,
|
|
73
73
|
disableDuplicate = !isEditor,
|
|
74
74
|
disablePrint = !isGrid,
|
|
75
|
-
|
|
75
|
+
protectedValues, // records with these values cannot be edited or deleted
|
|
76
|
+
|
|
76
77
|
// withAlert
|
|
77
78
|
showInfo,
|
|
78
79
|
|
|
@@ -178,6 +179,25 @@ export default function withPresetButtons(WrappedComponent, isGrid = false) {
|
|
|
178
179
|
}
|
|
179
180
|
return isDisabled;
|
|
180
181
|
},
|
|
182
|
+
isNoSelectorSelected = () => {
|
|
183
|
+
return selectorId && !selectorSelected;
|
|
184
|
+
},
|
|
185
|
+
isEmptySelection = () => {
|
|
186
|
+
return _.isEmpty(selection);
|
|
187
|
+
},
|
|
188
|
+
isMultiSelection = () => {
|
|
189
|
+
return _.isArray(selection) && selection.length > 1;
|
|
190
|
+
},
|
|
191
|
+
isProtectedValue = () => {
|
|
192
|
+
if (!protectedValues) {
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
const value = selection[0]?.id;
|
|
196
|
+
if (_.isNil(value)) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
return inArray(value, protectedValues);
|
|
200
|
+
},
|
|
181
201
|
getPresetButtonProps = (type) => {
|
|
182
202
|
let key,
|
|
183
203
|
text,
|
|
@@ -190,10 +210,9 @@ export default function withPresetButtons(WrappedComponent, isGrid = false) {
|
|
|
190
210
|
text = 'Add';
|
|
191
211
|
handler = (parent, e) => onAdd();
|
|
192
212
|
icon = Plus;
|
|
193
|
-
if (
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
if (isTree && _.isEmpty(selection)) {
|
|
213
|
+
if (isNoSelectorSelected() ||
|
|
214
|
+
(isTree && isEmptySelection())
|
|
215
|
+
) {
|
|
197
216
|
isDisabled = true;
|
|
198
217
|
}
|
|
199
218
|
break;
|
|
@@ -202,13 +221,12 @@ export default function withPresetButtons(WrappedComponent, isGrid = false) {
|
|
|
202
221
|
text = 'Edit';
|
|
203
222
|
handler = (parent, e) => onEdit();
|
|
204
223
|
icon = Edit;
|
|
205
|
-
if (
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
if (canRecordBeEdited && !canRecordBeEdited(selection)) {
|
|
224
|
+
if (isNoSelectorSelected() ||
|
|
225
|
+
isEmptySelection() ||
|
|
226
|
+
isMultiSelection() ||
|
|
227
|
+
isProtectedValue() ||
|
|
228
|
+
(canRecordBeEdited && !canRecordBeEdited(selection))
|
|
229
|
+
) {
|
|
212
230
|
isDisabled = true;
|
|
213
231
|
}
|
|
214
232
|
break;
|
|
@@ -218,13 +236,12 @@ export default function withPresetButtons(WrappedComponent, isGrid = false) {
|
|
|
218
236
|
handler = onDelete;
|
|
219
237
|
handler = (parent, e) => onDelete();
|
|
220
238
|
icon = Trash;
|
|
221
|
-
if (
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
if (canRecordBeDeleted && !canRecordBeDeleted(selection)) {
|
|
239
|
+
if (isNoSelectorSelected() ||
|
|
240
|
+
isEmptySelection() ||
|
|
241
|
+
isMultiSelection() ||
|
|
242
|
+
isProtectedValue() ||
|
|
243
|
+
(canRecordBeEdited && !canRecordBeEdited(selection))
|
|
244
|
+
) {
|
|
228
245
|
isDisabled = true;
|
|
229
246
|
}
|
|
230
247
|
if (isTree) {
|
|
@@ -240,10 +257,10 @@ export default function withPresetButtons(WrappedComponent, isGrid = false) {
|
|
|
240
257
|
handler = (parent, e) => onView();
|
|
241
258
|
icon = Eye;
|
|
242
259
|
isDisabled = !selection.length || selection.length !== 1;
|
|
243
|
-
if (
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
260
|
+
if (isNoSelectorSelected() ||
|
|
261
|
+
isEmptySelection() ||
|
|
262
|
+
isMultiSelection()
|
|
263
|
+
) {
|
|
247
264
|
isDisabled = true;
|
|
248
265
|
}
|
|
249
266
|
break;
|
|
@@ -253,10 +270,9 @@ export default function withPresetButtons(WrappedComponent, isGrid = false) {
|
|
|
253
270
|
handler = (parent, e) => onCopyToClipboard();
|
|
254
271
|
icon = Clipboard;
|
|
255
272
|
isDisabled = !selection.length;
|
|
256
|
-
if (
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
if (_.isEmpty(selection)) {
|
|
273
|
+
if (isNoSelectorSelected() ||
|
|
274
|
+
isEmptySelection()
|
|
275
|
+
) {
|
|
260
276
|
isDisabled = true;
|
|
261
277
|
}
|
|
262
278
|
break;
|
|
@@ -266,13 +282,11 @@ export default function withPresetButtons(WrappedComponent, isGrid = false) {
|
|
|
266
282
|
handler = (parent, e) => onDuplicate();
|
|
267
283
|
icon = Duplicate;
|
|
268
284
|
isDisabled = !selection.length || selection.length !== 1;
|
|
269
|
-
if (
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
}
|
|
275
|
-
if (canRecordBeDuplicated && !canRecordBeDuplicated(selection)) {
|
|
285
|
+
if (isNoSelectorSelected() ||
|
|
286
|
+
isEmptySelection() ||
|
|
287
|
+
isMultiSelection() ||
|
|
288
|
+
(canRecordBeDuplicated && !canRecordBeDuplicated(selection))
|
|
289
|
+
) {
|
|
276
290
|
isDisabled = true;
|
|
277
291
|
}
|
|
278
292
|
break;
|