@micromag/media-gallery 0.3.518 → 0.3.520

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 +82 -52
  2. package/lib/index.js +82 -52
  3. package/package.json +4 -4
package/es/index.js CHANGED
@@ -153,32 +153,38 @@ var defaultFields = [{
153
153
  type: 'text',
154
154
  component: 'text'
155
155
  }, {
156
- name: 'description',
157
- label: /*#__PURE__*/React.createElement(FormattedMessage, {
158
- id: "ygNvmz",
159
- defaultMessage: [{
160
- "type": 0,
161
- "value": "Description"
162
- }]
163
- }),
164
- type: 'text',
165
- component: 'text'
166
- }, {
167
- name: 'tags',
168
- label: /*#__PURE__*/React.createElement(FormattedMessage, {
169
- id: "IOVper",
170
- defaultMessage: [{
171
- "type": 0,
172
- "value": "Tags"
173
- }]
174
- }),
175
- type: 'array',
176
- component: 'select',
177
- requestUrl: '/api/medias/tags',
178
- optionLabelPath: 'name',
179
- optionValuePath: 'id',
180
- multiple: true,
181
- paginated: false
156
+ id: 'metadata',
157
+ component: 'fields',
158
+ name: 'metadata',
159
+ fields: [{
160
+ name: 'description',
161
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
162
+ id: "ygNvmz",
163
+ defaultMessage: [{
164
+ "type": 0,
165
+ "value": "Description"
166
+ }]
167
+ }),
168
+ type: 'text',
169
+ component: 'text'
170
+ }, {
171
+ name: 'tags',
172
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
173
+ id: "IOVper",
174
+ defaultMessage: [{
175
+ "type": 0,
176
+ "value": "Tags"
177
+ }]
178
+ }),
179
+ type: 'array',
180
+ component: 'select',
181
+ requestUrl: '/api/medias/tags',
182
+ optionLabelPath: 'name',
183
+ optionValuePath: 'name',
184
+ // Uses taggable
185
+ multiple: true,
186
+ paginated: false
187
+ }]
182
188
  }, {
183
189
  id: 'jobs',
184
190
  component: 'jobs',
@@ -348,29 +354,22 @@ function filters() {
348
354
  }],
349
355
  multiple: true
350
356
  }, {
351
- id: 'source',
352
- component: 'toggle',
353
- label: /*#__PURE__*/React.createElement(FormattedMessage, {
354
- id: "AX9qes",
357
+ id: 'authors',
358
+ component: 'select',
359
+ name: 'authors',
360
+ placeholder: /*#__PURE__*/React.createElement(FormattedMessage, {
361
+ id: "7oXkoj",
355
362
  defaultMessage: [{
356
363
  "type": 0,
357
- "value": "This micromag"
364
+ "value": "Authors"
358
365
  }]
359
366
  }),
360
- name: 'source'
361
- },
362
- // TODO: fix this on micromag.ca
363
- // {
364
- // id: 'authors',
365
- // component: 'select',
366
- // name: 'authors',
367
- // placeholder: <FormattedMessage defaultMessage="Authors" description="Filter label" />,
368
- // requestUrl: route('medias.authors') || '/api/medias/authors',
369
- // itemLabelPath: 'name',
370
- // itemValuePath: 'id',
371
- // multiple: true,
372
- // },
373
- {
367
+ requestUrl: route('medias.authors') || '/api/medias/authors',
368
+ itemLabelPath: 'name',
369
+ itemValuePath: 'id',
370
+ multiple: true,
371
+ paginated: false
372
+ }, {
374
373
  id: 'tags',
375
374
  component: 'select',
376
375
  name: 'tags',
@@ -385,7 +384,18 @@ function filters() {
385
384
  itemLabelPath: 'name',
386
385
  itemValuePath: 'id',
387
386
  multiple: true,
388
- paginated: true
387
+ paginated: false
388
+ }, {
389
+ id: 'source',
390
+ component: 'toggle',
391
+ label: /*#__PURE__*/React.createElement(FormattedMessage, {
392
+ id: "AX9qes",
393
+ defaultMessage: [{
394
+ "type": 0,
395
+ "value": "This micromag"
396
+ }]
397
+ }),
398
+ name: 'source'
389
399
  }];
390
400
  }
391
401
 
@@ -484,13 +494,29 @@ function MediaGallery(_ref) {
484
494
  var partialFilters = filters$1 || filters() || [];
485
495
  var _useMediaCreate = useMediaCreate(),
486
496
  createMedia = _useMediaCreate.create;
487
- var onUpload = useCallback(function (newMedias) {
497
+ var onMediaUploaded = useCallback(function (newMedias) {
488
498
  console.log('newMedias', newMedias);
489
- Promise.all(newMedias.map(createMedia)).then(function (newAddedMedias) {
490
- console.log('not uploading anymore', newAddedMedias);
499
+ return Promise.all(newMedias.map(createMedia)).then(function (newAddedMedias) {
500
+ console.log('done creating, not uploading anymore', newAddedMedias);
491
501
  return newAddedMedias;
492
502
  });
493
503
  }, [createMedia]);
504
+ var fileTypes = useMemo(function () {
505
+ if (isArray(types)) {
506
+ return types.map(function (t) {
507
+ return ['image', 'video', 'audio'].indexOf(t) !== -1 ? "".concat(t, "/*") : null;
508
+ }).filter(function (t) {
509
+ return t !== null;
510
+ });
511
+ }
512
+ return ['image', 'video', 'audio'].indexOf(types) !== -1 ? ["".concat(types, "/*")] : null;
513
+ }, [types]);
514
+ var uppyConfig = useMemo(function () {
515
+ return {
516
+ // sources, - uppy sources -
517
+ allowedFileTypes: fileTypes !== null && fileTypes.length > 0 ? fileTypes : null
518
+ };
519
+ }, [fileTypes]);
494
520
  var finalFilters = useMemo(function () {
495
521
  return partialFilters.map(function (filter) {
496
522
  var _ref3 = filter || {},
@@ -524,7 +550,9 @@ function MediaGallery(_ref) {
524
550
  var partialTypes = !isArray(types) ? [types] : types;
525
551
  return types === 'video' ? videoTypes : partialTypes;
526
552
  }, [types]);
527
- console.log('value', value);
553
+
554
+ // console.log('value', value);
555
+
528
556
  return /*#__PURE__*/React.createElement("div", {
529
557
  className: classNames([styles.container, _defineProperty({}, className, className)])
530
558
  }, isPicker ? /*#__PURE__*/React.createElement(MediasPickerContainer, {
@@ -540,7 +568,8 @@ function MediaGallery(_ref) {
540
568
  columns: columns,
541
569
  multiple: multiple,
542
570
  onChange: onChange,
543
- onUpload: onUpload,
571
+ uppyConfig: uppyConfig,
572
+ onMediaUploaded: onMediaUploaded,
544
573
  onMediaFormOpen: onMediaFormOpen,
545
574
  onMediaFormClose: onMediaFormClose,
546
575
  withStickySelection: true
@@ -555,7 +584,8 @@ function MediaGallery(_ref) {
555
584
  filters: finalFilters,
556
585
  fields: fields,
557
586
  columns: columns,
558
- onUpload: onUpload,
587
+ uppyConfig: uppyConfig,
588
+ onMediaUploaded: onMediaUploaded,
559
589
  withStickySelection: true
560
590
  }));
561
591
  }
package/lib/index.js CHANGED
@@ -155,32 +155,38 @@ var defaultFields = [{
155
155
  type: 'text',
156
156
  component: 'text'
157
157
  }, {
158
- name: 'description',
159
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
160
- id: "ygNvmz",
161
- defaultMessage: [{
162
- "type": 0,
163
- "value": "Description"
164
- }]
165
- }),
166
- type: 'text',
167
- component: 'text'
168
- }, {
169
- name: 'tags',
170
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
171
- id: "IOVper",
172
- defaultMessage: [{
173
- "type": 0,
174
- "value": "Tags"
175
- }]
176
- }),
177
- type: 'array',
178
- component: 'select',
179
- requestUrl: '/api/medias/tags',
180
- optionLabelPath: 'name',
181
- optionValuePath: 'id',
182
- multiple: true,
183
- paginated: false
158
+ id: 'metadata',
159
+ component: 'fields',
160
+ name: 'metadata',
161
+ fields: [{
162
+ name: 'description',
163
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
164
+ id: "ygNvmz",
165
+ defaultMessage: [{
166
+ "type": 0,
167
+ "value": "Description"
168
+ }]
169
+ }),
170
+ type: 'text',
171
+ component: 'text'
172
+ }, {
173
+ name: 'tags',
174
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
175
+ id: "IOVper",
176
+ defaultMessage: [{
177
+ "type": 0,
178
+ "value": "Tags"
179
+ }]
180
+ }),
181
+ type: 'array',
182
+ component: 'select',
183
+ requestUrl: '/api/medias/tags',
184
+ optionLabelPath: 'name',
185
+ optionValuePath: 'name',
186
+ // Uses taggable
187
+ multiple: true,
188
+ paginated: false
189
+ }]
184
190
  }, {
185
191
  id: 'jobs',
186
192
  component: 'jobs',
@@ -388,29 +394,22 @@ function filters() {
388
394
  }],
389
395
  multiple: true
390
396
  }, {
391
- id: 'source',
392
- component: 'toggle',
393
- label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
394
- id: "AX9qes",
397
+ id: 'authors',
398
+ component: 'select',
399
+ name: 'authors',
400
+ placeholder: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
401
+ id: "7oXkoj",
395
402
  defaultMessage: [{
396
403
  "type": 0,
397
- "value": "This micromag"
404
+ "value": "Authors"
398
405
  }]
399
406
  }),
400
- name: 'source'
401
- },
402
- // TODO: fix this on micromag.ca
403
- // {
404
- // id: 'authors',
405
- // component: 'select',
406
- // name: 'authors',
407
- // placeholder: <FormattedMessage defaultMessage="Authors" description="Filter label" />,
408
- // requestUrl: route('medias.authors') || '/api/medias/authors',
409
- // itemLabelPath: 'name',
410
- // itemValuePath: 'id',
411
- // multiple: true,
412
- // },
413
- {
407
+ requestUrl: route('medias.authors') || '/api/medias/authors',
408
+ itemLabelPath: 'name',
409
+ itemValuePath: 'id',
410
+ multiple: true,
411
+ paginated: false
412
+ }, {
414
413
  id: 'tags',
415
414
  component: 'select',
416
415
  name: 'tags',
@@ -425,7 +424,18 @@ function filters() {
425
424
  itemLabelPath: 'name',
426
425
  itemValuePath: 'id',
427
426
  multiple: true,
428
- paginated: true
427
+ paginated: false
428
+ }, {
429
+ id: 'source',
430
+ component: 'toggle',
431
+ label: /*#__PURE__*/React.createElement(reactIntl.FormattedMessage, {
432
+ id: "AX9qes",
433
+ defaultMessage: [{
434
+ "type": 0,
435
+ "value": "This micromag"
436
+ }]
437
+ }),
438
+ name: 'source'
429
439
  }];
430
440
  }
431
441
 
@@ -524,13 +534,29 @@ function MediaGallery(_ref) {
524
534
  var partialFilters = filters$1 || filters() || [];
525
535
  var _useMediaCreate = data.useMediaCreate(),
526
536
  createMedia = _useMediaCreate.create;
527
- var onUpload = React.useCallback(function (newMedias) {
537
+ var onMediaUploaded = React.useCallback(function (newMedias) {
528
538
  console.log('newMedias', newMedias);
529
- Promise.all(newMedias.map(createMedia)).then(function (newAddedMedias) {
530
- console.log('not uploading anymore', newAddedMedias);
539
+ return Promise.all(newMedias.map(createMedia)).then(function (newAddedMedias) {
540
+ console.log('done creating, not uploading anymore', newAddedMedias);
531
541
  return newAddedMedias;
532
542
  });
533
543
  }, [createMedia]);
544
+ var fileTypes = React.useMemo(function () {
545
+ if (isArray(types)) {
546
+ return types.map(function (t) {
547
+ return ['image', 'video', 'audio'].indexOf(t) !== -1 ? "".concat(t, "/*") : null;
548
+ }).filter(function (t) {
549
+ return t !== null;
550
+ });
551
+ }
552
+ return ['image', 'video', 'audio'].indexOf(types) !== -1 ? ["".concat(types, "/*")] : null;
553
+ }, [types]);
554
+ var uppyConfig = React.useMemo(function () {
555
+ return {
556
+ // sources, - uppy sources -
557
+ allowedFileTypes: fileTypes !== null && fileTypes.length > 0 ? fileTypes : null
558
+ };
559
+ }, [fileTypes]);
534
560
  var finalFilters = React.useMemo(function () {
535
561
  return partialFilters.map(function (filter) {
536
562
  var _ref3 = filter || {},
@@ -564,7 +590,9 @@ function MediaGallery(_ref) {
564
590
  var partialTypes = !isArray(types) ? [types] : types;
565
591
  return types === 'video' ? videoTypes : partialTypes;
566
592
  }, [types]);
567
- console.log('value', value);
593
+
594
+ // console.log('value', value);
595
+
568
596
  return /*#__PURE__*/React.createElement("div", {
569
597
  className: classNames([styles.container, _defineProperty({}, className, className)])
570
598
  }, isPicker ? /*#__PURE__*/React.createElement(medias.MediasPickerContainer, {
@@ -580,7 +608,8 @@ function MediaGallery(_ref) {
580
608
  columns: columns,
581
609
  multiple: multiple,
582
610
  onChange: onChange,
583
- onUpload: onUpload,
611
+ uppyConfig: uppyConfig,
612
+ onMediaUploaded: onMediaUploaded,
584
613
  onMediaFormOpen: onMediaFormOpen,
585
614
  onMediaFormClose: onMediaFormClose,
586
615
  withStickySelection: true
@@ -595,7 +624,8 @@ function MediaGallery(_ref) {
595
624
  filters: finalFilters,
596
625
  fields: fields,
597
626
  columns: columns,
598
- onUpload: onUpload,
627
+ uppyConfig: uppyConfig,
628
+ onMediaUploaded: onMediaUploaded,
599
629
  withStickySelection: true
600
630
  }));
601
631
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/media-gallery",
3
- "version": "0.3.518",
3
+ "version": "0.3.520",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [
@@ -72,8 +72,8 @@
72
72
  "@fortawesome/fontawesome-svg-core": "^6.5.2",
73
73
  "@fortawesome/free-solid-svg-icons": "^6.5.2",
74
74
  "@fortawesome/react-fontawesome": "^0.2.0",
75
- "@micromag/core": "^0.3.518",
76
- "@micromag/data": "^0.3.518",
75
+ "@micromag/core": "^0.3.520",
76
+ "@micromag/data": "^0.3.520",
77
77
  "@panneau/medias": "^3.0.163",
78
78
  "bootstrap": "^5.3.1",
79
79
  "classnames": "^2.2.6",
@@ -87,5 +87,5 @@
87
87
  "access": "public",
88
88
  "registry": "https://registry.npmjs.org/"
89
89
  },
90
- "gitHead": "415c0649dd0dd83a47a0407f945c2dee112ebde0"
90
+ "gitHead": "08f32dc09a2237cdbfaef5bac4c7964ef822b6c9"
91
91
  }