@panneau/field-resource-item 2.0.68 → 2.0.69

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.
Files changed (3) hide show
  1. package/es/index.js +57 -38
  2. package/lib/index.js +57 -38
  3. package/package.json +10 -11
package/es/index.js CHANGED
@@ -37,10 +37,10 @@ var propTypes = {
37
37
  searchParamName: PropTypes.string,
38
38
  getItemLabel: PropTypes.func,
39
39
  getItemDescription: PropTypes.func,
40
- // getItemImage: PropTypes.func,
40
+ getItemImage: PropTypes.func,
41
41
  itemLabelPath: PropTypes.string,
42
42
  itemDescriptionPath: PropTypes.string,
43
- // itemImagePath: PropTypes.string,
43
+ itemImagePath: PropTypes.string,
44
44
  itemLabelWithId: PropTypes.bool,
45
45
  placeholder: PropTypes.string,
46
46
  canCreate: PropTypes.bool,
@@ -63,10 +63,10 @@ var defaultProps = {
63
63
  searchParamName: 'search',
64
64
  getItemLabel: getPathValue,
65
65
  getItemDescription: getPathValue,
66
- // getItemImage: getPathValue,
66
+ getItemImage: getPathValue,
67
67
  itemLabelPath: 'label',
68
68
  itemDescriptionPath: null,
69
- // itemImagePath: 'image',
69
+ itemImagePath: 'image',
70
70
  itemLabelWithId: false,
71
71
  placeholder: null,
72
72
  canCreate: false,
@@ -78,7 +78,7 @@ var defaultProps = {
78
78
  onChange: null
79
79
  };
80
80
  var ResourceItemField = function ResourceItemField(_ref) {
81
- var _ref9;
81
+ var _ref8;
82
82
  var name = _ref.name,
83
83
  value = _ref.value,
84
84
  errors = _ref.errors,
@@ -90,8 +90,10 @@ var ResourceItemField = function ResourceItemField(_ref) {
90
90
  searchParamName = _ref.searchParamName,
91
91
  initialGetItemLabel = _ref.getItemLabel,
92
92
  getItemDescription = _ref.getItemDescription,
93
+ getItemImage = _ref.getItemImage,
93
94
  itemLabelPath = _ref.itemLabelPath,
94
95
  itemDescriptionPath = _ref.itemDescriptionPath,
96
+ itemImagePath = _ref.itemImagePath,
95
97
  itemLabelWithId = _ref.itemLabelWithId,
96
98
  placeholder = _ref.placeholder,
97
99
  canCreate = _ref.canCreate,
@@ -140,25 +142,19 @@ var ResourceItemField = function ResourceItemField(_ref) {
140
142
  }, [resourceId]);
141
143
  var finalQuery = useMemo(function () {
142
144
  return _objectSpread(_objectSpread(_objectSpread({}, query), !isEmpty(inputTextValue) ? _defineProperty({}, searchParamName, inputTextValue) : null), {}, {
143
- paginated: false // TODO: implement this hahahaha
145
+ paginated: false // TODO: implement this...
144
146
  });
145
147
  }, [inputTextValue]);
146
148
 
147
149
  // console.log('resource', resourceId, resource);
148
- // console.log('value', value);
149
150
 
150
151
  var resourceItems = useResourceItems(queryResource, finalQuery, page, count, resourceOptions);
151
152
  var _ref3 = resourceItems || {},
152
153
  _ref3$items = _ref3.items,
153
- responseItems = _ref3$items === void 0 ? null : _ref3$items;
154
- var _ref4 = value || {},
155
- _ref4$id = _ref4.id,
156
- valueId = _ref4$id === void 0 ? null : _ref4$id;
157
- var filteredItems = responseItems !== null && valueId !== null ? responseItems.filter(function (it) {
158
- return it !== null && it.id ? it.id !== valueId : true;
159
- }) : responseItems || [];
160
- var arrayedValue = multiple ? value : [value];
161
- var items = [].concat(_toConsumableArray(filteredItems), _toConsumableArray(value !== null ? arrayedValue : []));
154
+ partialItems = _ref3$items === void 0 ? null : _ref3$items;
155
+ var items = (partialItems || []).concat(multiple && isArray(value) ? value : [value]).filter(function (it) {
156
+ return it !== null;
157
+ });
162
158
  var getItemLabel = useCallback(function (it, path) {
163
159
  var id = get(it, 'id', null);
164
160
  if (itemLabelWithId) {
@@ -176,17 +172,27 @@ var ResourceItemField = function ResourceItemField(_ref) {
176
172
  label: finalLabel
177
173
  };
178
174
  }, [getItemLabel, getItemDescription, itemLabelPath, itemDescriptionPath]);
179
- var options = (items || []).map(function (it) {
180
- return parseItem(it);
181
- });
182
175
  var partialValue = multiple && isArray(value) ? value.map(function (it) {
183
176
  return parseItem(it);
184
177
  }) : value || null;
185
- var finalValue = multiple && isArray(partialValue) ? partialValue.map(function (_ref5) {
186
- var _ref5$id = _ref5.id,
187
- id = _ref5$id === void 0 ? null : _ref5$id;
178
+ var finalValue = multiple && isArray(partialValue) ? partialValue.map(function (_ref4) {
179
+ var _ref4$id = _ref4.id,
180
+ id = _ref4$id === void 0 ? null : _ref4$id;
188
181
  return id;
189
- }) : value === null || value === void 0 ? void 0 : value.id;
182
+ }) : (value === null || value === void 0 ? void 0 : value.id) || null;
183
+ var options = (items || []).map(function (it) {
184
+ return parseItem(it);
185
+ });
186
+
187
+ // TODO: filter duplicate IDs blabla
188
+ // const { id: valueId = null } = value || {};
189
+ // const filteredItems =
190
+ // responseItems !== null && valueId !== null
191
+ // ? responseItems.filter((it) => (it !== null && it.id ? it.id !== valueId : true))
192
+ // : responseItems || [];
193
+ // const arrayedValue = multiple ? value : [value];
194
+ // const items = [...filteredItems, ...(value !== null ? arrayedValue : [])];
195
+ // console.log(options, items, value, finalValue, onChange);
190
196
  // console.log('ultimate', options, finalValue);
191
197
 
192
198
  var onInputChange = useCallback(function (textValue) {
@@ -195,16 +201,16 @@ var ResourceItemField = function ResourceItemField(_ref) {
195
201
  var onValueChange = useCallback(function (newId) {
196
202
  if (onChange === null) return;
197
203
  if (multiple) {
198
- var newValue = items.filter(function (_ref6) {
199
- var _ref6$id = _ref6.id,
200
- id = _ref6$id === void 0 ? null : _ref6$id;
204
+ var newValue = items.filter(function (_ref5) {
205
+ var _ref5$id = _ref5.id,
206
+ id = _ref5$id === void 0 ? null : _ref5$id;
201
207
  return newId.indexOf(id) !== -1;
202
208
  }) || [];
203
209
  onChange(newValue);
204
210
  } else {
205
- var _newValue = items.filter(function (_ref7) {
206
- var _ref7$id = _ref7.id,
207
- id = _ref7$id === void 0 ? null : _ref7$id;
211
+ var _newValue = items.filter(function (_ref6) {
212
+ var _ref6$id = _ref6.id,
213
+ id = _ref6$id === void 0 ? null : _ref6$id;
208
214
  return id === newId;
209
215
  }) || [];
210
216
  if (_newValue !== null && _newValue.length > 0) {
@@ -221,26 +227,38 @@ var ResourceItemField = function ResourceItemField(_ref) {
221
227
  setCreateOpen(false);
222
228
  }, [setCreateOpen]);
223
229
  var onCreateSuccess = useCallback(function (newValue) {
224
- // console.log('newValue', newValue);
230
+ if (onChange === null) return;
225
231
  if (multiple) {
226
232
  onChange(value !== null && isArray(value) ? [].concat(_toConsumableArray(value), [newValue]) : [newValue]);
227
233
  } else {
228
234
  onChange(newValue);
229
235
  }
230
- setTimeout(function () {
231
- setCreateOpen(false);
232
- }, 1000);
233
- }, [onChange, multiple, value]);
236
+ setCreateOpen(false);
237
+ }, [onChange, multiple, value, setCreateOpen]);
238
+ var onClickRemove = useCallback(function () {
239
+ if (onChange !== null) {
240
+ onChange(null);
241
+ }
242
+ }, [onChange]);
234
243
  return /*#__PURE__*/React.createElement("div", {
235
244
  className: classNames(['position-relative', _defineProperty({}, className, className != null)])
236
245
  }, value !== null && !multiple ? /*#__PURE__*/React.createElement(ResourceCard, {
237
- item: value
246
+ item: value,
247
+ getItemLabel: initialGetItemLabel,
248
+ getItemDescription: getItemDescription,
249
+ getItemImage: getItemImage,
250
+ itemLabelPath: itemLabelPath,
251
+ itemDescriptionPath: itemDescriptionPath,
252
+ itemImagePath: itemImagePath,
253
+ itemLabelWithId: itemLabelWithId,
254
+ disable: disabled,
255
+ onClickRemove: onClickRemove
238
256
  }) : /*#__PURE__*/React.createElement("div", {
239
257
  className: classNames(['row', 'align-items-center'])
240
258
  }, /*#__PURE__*/React.createElement("div", {
241
259
  className: "col-auto flex-grow-1"
242
260
  }, /*#__PURE__*/React.createElement(Select, {
243
- className: classNames(['py-1', 'shadow-none', (_ref9 = {}, _defineProperty(_ref9, disabled, disabled), _defineProperty(_ref9, 'is-invalid', errors !== null), _defineProperty(_ref9, inputClassName, inputClassName !== null), _ref9)]),
261
+ className: classNames(['py-1', 'shadow-none', (_ref8 = {}, _defineProperty(_ref8, disabled, disabled), _defineProperty(_ref8, 'is-invalid', errors !== null), _defineProperty(_ref8, inputClassName, inputClassName !== null), _ref8)]),
244
262
  disabled: disabled,
245
263
  name: name,
246
264
  value: finalValue,
@@ -264,10 +282,10 @@ var ResourceItemField = function ResourceItemField(_ref) {
264
282
  icon: "plus-lg",
265
283
  onClick: createOpen ? onCloseCreate : onOpenCreate,
266
284
  outline: true
267
- })) : null, createOpen ? createInPlace ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ResourceForm, {
285
+ })) : null, createOpen ? createInPlace ? /*#__PURE__*/React.createElement(ResourceForm, {
268
286
  resource: resource,
269
287
  onSuccess: onCreateSuccess
270
- })) : /*#__PURE__*/React.createElement(Dialog, {
288
+ }) : /*#__PURE__*/React.createElement(Dialog, {
271
289
  title: /*#__PURE__*/React.createElement(FormattedMessage, {
272
290
  values: resourceValues,
273
291
  id: "6viUpq",
@@ -279,6 +297,7 @@ var ResourceItemField = function ResourceItemField(_ref) {
279
297
  "value": "a_singular"
280
298
  }]
281
299
  }),
300
+ size: "lg",
282
301
  onClickClose: onCloseCreate
283
302
  }, /*#__PURE__*/React.createElement(ResourceForm, {
284
303
  resource: resource,
package/lib/index.js CHANGED
@@ -59,10 +59,10 @@ var propTypes = {
59
59
  searchParamName: PropTypes__default["default"].string,
60
60
  getItemLabel: PropTypes__default["default"].func,
61
61
  getItemDescription: PropTypes__default["default"].func,
62
- // getItemImage: PropTypes.func,
62
+ getItemImage: PropTypes__default["default"].func,
63
63
  itemLabelPath: PropTypes__default["default"].string,
64
64
  itemDescriptionPath: PropTypes__default["default"].string,
65
- // itemImagePath: PropTypes.string,
65
+ itemImagePath: PropTypes__default["default"].string,
66
66
  itemLabelWithId: PropTypes__default["default"].bool,
67
67
  placeholder: PropTypes__default["default"].string,
68
68
  canCreate: PropTypes__default["default"].bool,
@@ -85,10 +85,10 @@ var defaultProps = {
85
85
  searchParamName: 'search',
86
86
  getItemLabel: utils.getPathValue,
87
87
  getItemDescription: utils.getPathValue,
88
- // getItemImage: getPathValue,
88
+ getItemImage: utils.getPathValue,
89
89
  itemLabelPath: 'label',
90
90
  itemDescriptionPath: null,
91
- // itemImagePath: 'image',
91
+ itemImagePath: 'image',
92
92
  itemLabelWithId: false,
93
93
  placeholder: null,
94
94
  canCreate: false,
@@ -100,7 +100,7 @@ var defaultProps = {
100
100
  onChange: null
101
101
  };
102
102
  var ResourceItemField = function ResourceItemField(_ref) {
103
- var _ref9;
103
+ var _ref8;
104
104
  var name = _ref.name,
105
105
  value = _ref.value,
106
106
  errors = _ref.errors,
@@ -112,8 +112,10 @@ var ResourceItemField = function ResourceItemField(_ref) {
112
112
  searchParamName = _ref.searchParamName,
113
113
  initialGetItemLabel = _ref.getItemLabel,
114
114
  getItemDescription = _ref.getItemDescription,
115
+ getItemImage = _ref.getItemImage,
115
116
  itemLabelPath = _ref.itemLabelPath,
116
117
  itemDescriptionPath = _ref.itemDescriptionPath,
118
+ itemImagePath = _ref.itemImagePath,
117
119
  itemLabelWithId = _ref.itemLabelWithId,
118
120
  placeholder = _ref.placeholder,
119
121
  canCreate = _ref.canCreate,
@@ -162,25 +164,19 @@ var ResourceItemField = function ResourceItemField(_ref) {
162
164
  }, [resourceId]);
163
165
  var finalQuery = React.useMemo(function () {
164
166
  return _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, query), !isEmpty__default["default"](inputTextValue) ? _defineProperty__default["default"]({}, searchParamName, inputTextValue) : null), {}, {
165
- paginated: false // TODO: implement this hahahaha
167
+ paginated: false // TODO: implement this...
166
168
  });
167
169
  }, [inputTextValue]);
168
170
 
169
171
  // console.log('resource', resourceId, resource);
170
- // console.log('value', value);
171
172
 
172
173
  var resourceItems = data.useResourceItems(queryResource, finalQuery, page, count, resourceOptions);
173
174
  var _ref3 = resourceItems || {},
174
175
  _ref3$items = _ref3.items,
175
- responseItems = _ref3$items === void 0 ? null : _ref3$items;
176
- var _ref4 = value || {},
177
- _ref4$id = _ref4.id,
178
- valueId = _ref4$id === void 0 ? null : _ref4$id;
179
- var filteredItems = responseItems !== null && valueId !== null ? responseItems.filter(function (it) {
180
- return it !== null && it.id ? it.id !== valueId : true;
181
- }) : responseItems || [];
182
- var arrayedValue = multiple ? value : [value];
183
- var items = [].concat(_toConsumableArray__default["default"](filteredItems), _toConsumableArray__default["default"](value !== null ? arrayedValue : []));
176
+ partialItems = _ref3$items === void 0 ? null : _ref3$items;
177
+ var items = (partialItems || []).concat(multiple && isArray__default["default"](value) ? value : [value]).filter(function (it) {
178
+ return it !== null;
179
+ });
184
180
  var getItemLabel = React.useCallback(function (it, path) {
185
181
  var id = get__default["default"](it, 'id', null);
186
182
  if (itemLabelWithId) {
@@ -198,17 +194,27 @@ var ResourceItemField = function ResourceItemField(_ref) {
198
194
  label: finalLabel
199
195
  };
200
196
  }, [getItemLabel, getItemDescription, itemLabelPath, itemDescriptionPath]);
201
- var options = (items || []).map(function (it) {
202
- return parseItem(it);
203
- });
204
197
  var partialValue = multiple && isArray__default["default"](value) ? value.map(function (it) {
205
198
  return parseItem(it);
206
199
  }) : value || null;
207
- var finalValue = multiple && isArray__default["default"](partialValue) ? partialValue.map(function (_ref5) {
208
- var _ref5$id = _ref5.id,
209
- id = _ref5$id === void 0 ? null : _ref5$id;
200
+ var finalValue = multiple && isArray__default["default"](partialValue) ? partialValue.map(function (_ref4) {
201
+ var _ref4$id = _ref4.id,
202
+ id = _ref4$id === void 0 ? null : _ref4$id;
210
203
  return id;
211
- }) : value === null || value === void 0 ? void 0 : value.id;
204
+ }) : (value === null || value === void 0 ? void 0 : value.id) || null;
205
+ var options = (items || []).map(function (it) {
206
+ return parseItem(it);
207
+ });
208
+
209
+ // TODO: filter duplicate IDs blabla
210
+ // const { id: valueId = null } = value || {};
211
+ // const filteredItems =
212
+ // responseItems !== null && valueId !== null
213
+ // ? responseItems.filter((it) => (it !== null && it.id ? it.id !== valueId : true))
214
+ // : responseItems || [];
215
+ // const arrayedValue = multiple ? value : [value];
216
+ // const items = [...filteredItems, ...(value !== null ? arrayedValue : [])];
217
+ // console.log(options, items, value, finalValue, onChange);
212
218
  // console.log('ultimate', options, finalValue);
213
219
 
214
220
  var onInputChange = React.useCallback(function (textValue) {
@@ -217,16 +223,16 @@ var ResourceItemField = function ResourceItemField(_ref) {
217
223
  var onValueChange = React.useCallback(function (newId) {
218
224
  if (onChange === null) return;
219
225
  if (multiple) {
220
- var newValue = items.filter(function (_ref6) {
221
- var _ref6$id = _ref6.id,
222
- id = _ref6$id === void 0 ? null : _ref6$id;
226
+ var newValue = items.filter(function (_ref5) {
227
+ var _ref5$id = _ref5.id,
228
+ id = _ref5$id === void 0 ? null : _ref5$id;
223
229
  return newId.indexOf(id) !== -1;
224
230
  }) || [];
225
231
  onChange(newValue);
226
232
  } else {
227
- var _newValue = items.filter(function (_ref7) {
228
- var _ref7$id = _ref7.id,
229
- id = _ref7$id === void 0 ? null : _ref7$id;
233
+ var _newValue = items.filter(function (_ref6) {
234
+ var _ref6$id = _ref6.id,
235
+ id = _ref6$id === void 0 ? null : _ref6$id;
230
236
  return id === newId;
231
237
  }) || [];
232
238
  if (_newValue !== null && _newValue.length > 0) {
@@ -243,26 +249,38 @@ var ResourceItemField = function ResourceItemField(_ref) {
243
249
  setCreateOpen(false);
244
250
  }, [setCreateOpen]);
245
251
  var onCreateSuccess = React.useCallback(function (newValue) {
246
- // console.log('newValue', newValue);
252
+ if (onChange === null) return;
247
253
  if (multiple) {
248
254
  onChange(value !== null && isArray__default["default"](value) ? [].concat(_toConsumableArray__default["default"](value), [newValue]) : [newValue]);
249
255
  } else {
250
256
  onChange(newValue);
251
257
  }
252
- setTimeout(function () {
253
- setCreateOpen(false);
254
- }, 1000);
255
- }, [onChange, multiple, value]);
258
+ setCreateOpen(false);
259
+ }, [onChange, multiple, value, setCreateOpen]);
260
+ var onClickRemove = React.useCallback(function () {
261
+ if (onChange !== null) {
262
+ onChange(null);
263
+ }
264
+ }, [onChange]);
256
265
  return /*#__PURE__*/React__default["default"].createElement("div", {
257
266
  className: classNames__default["default"](['position-relative', _defineProperty__default["default"]({}, className, className != null)])
258
267
  }, value !== null && !multiple ? /*#__PURE__*/React__default["default"].createElement(ResourceCard__default["default"], {
259
- item: value
268
+ item: value,
269
+ getItemLabel: initialGetItemLabel,
270
+ getItemDescription: getItemDescription,
271
+ getItemImage: getItemImage,
272
+ itemLabelPath: itemLabelPath,
273
+ itemDescriptionPath: itemDescriptionPath,
274
+ itemImagePath: itemImagePath,
275
+ itemLabelWithId: itemLabelWithId,
276
+ disable: disabled,
277
+ onClickRemove: onClickRemove
260
278
  }) : /*#__PURE__*/React__default["default"].createElement("div", {
261
279
  className: classNames__default["default"](['row', 'align-items-center'])
262
280
  }, /*#__PURE__*/React__default["default"].createElement("div", {
263
281
  className: "col-auto flex-grow-1"
264
282
  }, /*#__PURE__*/React__default["default"].createElement(Select__default["default"], {
265
- className: classNames__default["default"](['py-1', 'shadow-none', (_ref9 = {}, _defineProperty__default["default"](_ref9, disabled, disabled), _defineProperty__default["default"](_ref9, 'is-invalid', errors !== null), _defineProperty__default["default"](_ref9, inputClassName, inputClassName !== null), _ref9)]),
283
+ className: classNames__default["default"](['py-1', 'shadow-none', (_ref8 = {}, _defineProperty__default["default"](_ref8, disabled, disabled), _defineProperty__default["default"](_ref8, 'is-invalid', errors !== null), _defineProperty__default["default"](_ref8, inputClassName, inputClassName !== null), _ref8)]),
266
284
  disabled: disabled,
267
285
  name: name,
268
286
  value: finalValue,
@@ -286,10 +304,10 @@ var ResourceItemField = function ResourceItemField(_ref) {
286
304
  icon: "plus-lg",
287
305
  onClick: createOpen ? onCloseCreate : onOpenCreate,
288
306
  outline: true
289
- })) : null, createOpen ? createInPlace ? /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(ResourceForm__default["default"], {
307
+ })) : null, createOpen ? createInPlace ? /*#__PURE__*/React__default["default"].createElement(ResourceForm__default["default"], {
290
308
  resource: resource,
291
309
  onSuccess: onCreateSuccess
292
- })) : /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
310
+ }) : /*#__PURE__*/React__default["default"].createElement(Dialog__default["default"], {
293
311
  title: /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
294
312
  values: resourceValues,
295
313
  id: "6viUpq",
@@ -301,6 +319,7 @@ var ResourceItemField = function ResourceItemField(_ref) {
301
319
  "value": "a_singular"
302
320
  }]
303
321
  }),
322
+ size: "lg",
304
323
  onClickClose: onCloseCreate
305
324
  }, /*#__PURE__*/React__default["default"].createElement(ResourceForm__default["default"], {
306
325
  resource: resource,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/field-resource-item",
3
- "version": "2.0.68",
3
+ "version": "2.0.69",
4
4
  "description": "An item mapping a resource",
5
5
  "keywords": [
6
6
  "javascript"
@@ -45,15 +45,14 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@babel/runtime": "^7.12.5",
48
- "@panneau/core": "^2.0.58",
49
- "@panneau/data": "^2.0.58",
50
- "@panneau/element-button": "^2.0.59",
51
- "@panneau/element-modal": "^2.0.58",
52
- "@panneau/element-resource-card": "^2.0.68",
53
- "@panneau/element-select": "^2.0.58",
54
- "@panneau/form-resource": "^2.0.68",
55
- "@panneau/intl": "^2.0.68",
56
- "@panneau/modal-dialog": "^2.0.68",
48
+ "@panneau/core": "^2.0.69",
49
+ "@panneau/data": "^2.0.69",
50
+ "@panneau/element-button": "^2.0.69",
51
+ "@panneau/element-resource-card": "^2.0.69",
52
+ "@panneau/element-select": "^2.0.69",
53
+ "@panneau/form-resource": "^2.0.69",
54
+ "@panneau/intl": "^2.0.69",
55
+ "@panneau/modal-dialog": "^2.0.69",
57
56
  "classnames": "^2.2.6",
58
57
  "lodash": "^4.17.21",
59
58
  "prop-types": "^15.7.2",
@@ -62,5 +61,5 @@
62
61
  "publishConfig": {
63
62
  "access": "public"
64
63
  },
65
- "gitHead": "7f91dc52ac77f545d1438dd2d612845bfd445522"
64
+ "gitHead": "270c1e84966861e94a390d20ee525c33f7edadb0"
66
65
  }