@panneau/app 1.1.0 → 1.1.1

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/es/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
3
  import PropTypes$1 from 'prop-types';
4
- import React, { useMemo, useCallback, useState, useEffect, Fragment } from 'react';
5
- import { useLocation, useNavigate, useParams, Route, Routes, Navigate, MemoryRouter } from 'react-router';
4
+ import React, { useMemo, useCallback, useState, useEffect } from 'react';
5
+ import { useLocation, useHistory, Switch, Route, Redirect, MemoryRouter } from 'react-router';
6
6
  import { Link, BrowserRouter } from 'react-router-dom';
7
7
  import { useUser, useLogout, useAuth, AuthProvider } from '@panneau/auth';
8
8
  import { PropTypes } from '@panneau/core';
9
- import { useLocales, useFormsComponents, FormProvider, useUrlGenerator, usePanneauResources, usePanneau, usePanneauColorScheme, ResourceProvider, useFiltersComponents, useListsComponents, useComponentsManager, useFormComponent, useRoutes, usePagesComponentsManager, PanneauProvider, UppyProvider, RoutesProvider, ComponentsProvider } from '@panneau/core/contexts';
9
+ import { useLocales, useFormsComponents, FormProvider, useUrlGenerator, usePanneauResources, usePanneau, usePanneauColorScheme, ResourceProvider, useFiltersComponents, useListsComponents, useComponentsManager, useFormComponent, useRoutes, PanneauProvider, UppyProvider, RoutesProvider, ComponentsProvider } from '@panneau/core/contexts';
10
10
  import { useResourceStore, useResourceUpdate, useResourceDestroy, useResourceItem, useResourceItems, ApiProvider } from '@panneau/data';
11
11
  import DisplaysProvider from '@panneau/displays';
12
12
  import FieldsProvider from '@panneau/fields';
@@ -14,20 +14,17 @@ import FiltersProvider from '@panneau/filters';
14
14
  import FormsProvider from '@panneau/forms';
15
15
  import { useResourceValues, IntlProvider } from '@panneau/intl';
16
16
  import ListsProvider from '@panneau/lists';
17
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
18
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
19
17
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
20
- import isObject from 'lodash/isObject';
18
+ import { getComponentFromName } from '@panneau/core/utils';
19
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
21
20
  import { parse, stringify } from 'query-string';
22
21
  import { FormattedMessage, defineMessages } from 'react-intl';
23
22
  import { useResourceUrlGenerator, useForm } from '@panneau/core/hooks';
24
- import { getComponentFromName } from '@panneau/core/utils';
25
23
  import classNames from 'classnames';
26
24
  import Button from '@panneau/element-button';
27
25
  import Form from '@panneau/element-form';
28
- import isArray from 'lodash/isArray';
29
- import Menu from '@panneau/element-menu';
30
26
  import Navbar from '@panneau/element-navbar';
27
+ import Menu from '@panneau/element-menu';
31
28
  import Label from '@panneau/element-label';
32
29
  import isString from 'lodash/isString';
33
30
  import Alert from '@panneau/element-alert';
@@ -38,8 +35,8 @@ import { faUndo } from '@fortawesome/free-solid-svg-icons';
38
35
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
39
36
  import FormGroup from '@panneau/element-form-group';
40
37
 
41
- var _excluded$6 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
42
- var propTypes$m = {
38
+ var _excluded$5 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
39
+ var propTypes$n = {
43
40
  resource: PropTypes.resource.isRequired,
44
41
  action: PropTypes$1.string,
45
42
  previous: PropTypes$1.string,
@@ -53,7 +50,7 @@ var propTypes$m = {
53
50
  errors: PropTypes$1.objectOf(PropTypes$1.arrayOf(PropTypes$1.string)),
54
51
  className: PropTypes$1.string
55
52
  };
56
- var defaultProps$m = {
53
+ var defaultProps$n = {
57
54
  action: null,
58
55
  previous: null,
59
56
  status: null,
@@ -73,7 +70,7 @@ var DeleteForm = function DeleteForm(_ref) {
73
70
  _ref.errors;
74
71
  var generalError = _ref.generalError,
75
72
  className = _ref.className,
76
- props = _objectWithoutProperties(_ref, _excluded$6);
73
+ props = _objectWithoutProperties(_ref, _excluded$5);
77
74
  var _ref2 = value || {},
78
75
  _ref2$id = _ref2.id,
79
76
  id = _ref2$id === void 0 ? null : _ref2$id;
@@ -144,11 +141,11 @@ var DeleteForm = function DeleteForm(_ref) {
144
141
  }]
145
142
  })))));
146
143
  };
147
- DeleteForm.propTypes = propTypes$m;
148
- DeleteForm.defaultProps = defaultProps$m;
144
+ DeleteForm.propTypes = propTypes$n;
145
+ DeleteForm.defaultProps = defaultProps$n;
149
146
 
150
- var _excluded$5 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
151
- var propTypes$l = {
147
+ var _excluded$4 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
148
+ var propTypes$m = {
152
149
  component: PropTypes$1.string,
153
150
  resource: PropTypes.resource.isRequired,
154
151
  item: PropTypes$1.object,
@@ -157,7 +154,7 @@ var propTypes$l = {
157
154
  onSuccess: PropTypes$1.func,
158
155
  isDelete: PropTypes$1.bool
159
156
  };
160
- var defaultProps$l = {
157
+ var defaultProps$m = {
161
158
  component: null,
162
159
  item: null,
163
160
  type: null,
@@ -171,7 +168,7 @@ var ResourceForm = function ResourceForm(_ref) {
171
168
  item = _ref.item,
172
169
  type = _ref.type,
173
170
  isDelete = _ref.isDelete,
174
- props = _objectWithoutProperties(_ref, _excluded$5);
171
+ props = _objectWithoutProperties(_ref, _excluded$4);
175
172
  var locales = useLocales();
176
173
  var FormComponents = useFormsComponents();
177
174
  var _resource$fields = resource.fields,
@@ -299,15 +296,15 @@ var ResourceForm = function ResourceForm(_ref) {
299
296
  onChange: setValue
300
297
  })));
301
298
  };
302
- ResourceForm.propTypes = propTypes$l;
303
- ResourceForm.defaultProps = defaultProps$l;
299
+ ResourceForm.propTypes = propTypes$m;
300
+ ResourceForm.defaultProps = defaultProps$m;
304
301
 
305
- var propTypes$k = {
302
+ var propTypes$l = {
306
303
  className: PropTypes$1.string,
307
304
  itemClassName: PropTypes$1.string,
308
305
  linkClassName: PropTypes$1.string
309
306
  };
310
- var defaultProps$k = {
307
+ var defaultProps$l = {
311
308
  className: null,
312
309
  itemClassName: null,
313
310
  linkClassName: null
@@ -333,7 +330,7 @@ var AccountMenu = function AccountMenu(_ref) {
333
330
  "value": "Account"
334
331
  }]
335
332
  }),
336
- href: route('account'),
333
+ href: route('panneau.account'),
337
334
  dropdown: [
338
335
  // {
339
336
  // label: (
@@ -342,7 +339,7 @@ var AccountMenu = function AccountMenu(_ref) {
342
339
  // description="Menu label"
343
340
  // />
344
341
  // ),
345
- // href: route('account'),
342
+ // href: route('panneau.account'),
346
343
  // },
347
344
  {
348
345
  label: /*#__PURE__*/React.createElement(FormattedMessage, {
@@ -363,7 +360,7 @@ var AccountMenu = function AccountMenu(_ref) {
363
360
  "value": "Login"
364
361
  }]
365
362
  }),
366
- href: route('auth.login')
363
+ href: route('login')
367
364
  }];
368
365
  }, [user, route, onClickLogout]);
369
366
  return items !== null ? /*#__PURE__*/React.createElement(Menu, {
@@ -374,15 +371,15 @@ var AccountMenu = function AccountMenu(_ref) {
374
371
  dropdownAlign: "end"
375
372
  }) : null;
376
373
  };
377
- AccountMenu.propTypes = propTypes$k;
378
- AccountMenu.defaultProps = defaultProps$k;
374
+ AccountMenu.propTypes = propTypes$l;
375
+ AccountMenu.defaultProps = defaultProps$l;
379
376
 
380
- var propTypes$j = {
377
+ var propTypes$k = {
381
378
  className: PropTypes$1.string,
382
379
  itemClassName: PropTypes$1.string,
383
380
  linkClassName: PropTypes$1.string
384
381
  };
385
- var defaultProps$j = {
382
+ var defaultProps$k = {
386
383
  className: null,
387
384
  itemClassName: null,
388
385
  linkClassName: null
@@ -419,77 +416,42 @@ var ResourcesMenu = function ResourcesMenu(_ref) {
419
416
  linkClassName: linkClassName
420
417
  });
421
418
  };
422
- ResourcesMenu.propTypes = propTypes$j;
423
- ResourcesMenu.defaultProps = defaultProps$j;
419
+ ResourcesMenu.propTypes = propTypes$k;
420
+ ResourcesMenu.defaultProps = defaultProps$k;
424
421
 
425
- var propTypes$i = {};
426
- var defaultProps$i = {};
422
+ /* eslint-disable react/jsx-props-no-spreading */
423
+ var propTypes$j = {};
424
+ var defaultProps$j = {};
427
425
  var MainNavbar = function MainNavbar(props) {
428
426
  var _usePanneau = usePanneau(),
429
- name = _usePanneau.name,
430
- _usePanneau$menus = _usePanneau.menus,
431
- menus = _usePanneau$menus === void 0 ? null : _usePanneau$menus;
432
- var _ref = menus || {},
433
- _ref$main = _ref.main,
434
- main = _ref$main === void 0 ? null : _ref$main,
435
- _ref$guest = _ref.guest,
436
- guest = _ref$guest === void 0 ? null : _ref$guest;
427
+ name = _usePanneau.name;
437
428
  var _usePanneauColorSchem = usePanneauColorScheme(),
438
429
  background = _usePanneauColorSchem.background;
439
430
  var route = useUrlGenerator();
440
431
  var user = useUser();
441
- var items = useMemo(function () {
442
- var menuItems = (user !== null ? main : guest) || [];
443
- var hasResources = menuItems.indexOf('resources') !== -1;
444
- var hasAccount = menuItems.indexOf('account') !== -1;
445
- return [!hasResources && user !== null ? 'resources' : null].concat(_toConsumableArray(menuItems), [!hasAccount && menuItems.indexOf('separator') === -1 ? 'separator' : null, !hasAccount ? 'account' : null]).filter(function (it) {
446
- return it !== null;
447
- }).reduce(function (currentItems, item) {
448
- if (item === 'resources') {
449
- return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement(ResourcesMenu, {
450
- className: "navbar-nav",
451
- itemClassName: "nav-item",
452
- linkClassName: "nav-link"
453
- })]);
454
- }
455
- if (item === 'account') {
456
- return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement(AccountMenu, {
457
- className: "navbar-nav",
458
- itemClassName: "nav-item",
459
- linkClassName: "nav-link"
460
- })]);
461
- }
462
- if (item === 'separator') {
463
- return [].concat(_toConsumableArray(currentItems), [/*#__PURE__*/React.createElement("span", {
464
- className: "ms-auto"
465
- })]);
466
- }
467
- var lastItem = currentItems.length > 0 ? currentItems[currentItems.length - 1] : null;
468
- return isArray(lastItem) ? [].concat(_toConsumableArray(currentItems.slice(0, currentItems.length - 1)), [[].concat(_toConsumableArray(lastItem), [item])]) : [].concat(_toConsumableArray(currentItems), [[item]]);
469
- }, []).map(function (it) {
470
- return isArray(it) ? /*#__PURE__*/React.createElement(Menu, {
471
- items: it,
472
- className: "navbar-nav",
473
- itemClassName: "nav-item",
474
- linkClassName: "nav-link"
475
- }) : it;
476
- });
477
- }, [main]);
478
432
  return /*#__PURE__*/React.createElement(Navbar, Object.assign({
479
433
  theme: background
480
434
  }, props), name !== null ? /*#__PURE__*/React.createElement(Link, {
481
435
  to: route('home'),
482
436
  className: "navbar-brand"
483
- }, name) : null, items);
437
+ }, name) : null, user !== null ? /*#__PURE__*/React.createElement(ResourcesMenu, {
438
+ className: "navbar-nav ml-4",
439
+ itemClassName: "nav-item",
440
+ linkClassName: "nav-link"
441
+ }) : null, /*#__PURE__*/React.createElement(AccountMenu, {
442
+ className: "navbar-nav ms-auto",
443
+ itemClassName: "nav-item",
444
+ linkClassName: "nav-link"
445
+ }));
484
446
  };
485
- MainNavbar.propTypes = propTypes$i;
486
- MainNavbar.defaultProps = defaultProps$i;
447
+ MainNavbar.propTypes = propTypes$j;
448
+ MainNavbar.defaultProps = defaultProps$j;
487
449
 
488
- var propTypes$h = {
450
+ var propTypes$i = {
489
451
  children: PropTypes$1.node.isRequired,
490
452
  fullscreen: PropTypes$1.bool
491
453
  };
492
- var defaultProps$h = {
454
+ var defaultProps$i = {
493
455
  fullscreen: false
494
456
  };
495
457
  var MainLayout = function MainLayout(_ref) {
@@ -509,17 +471,17 @@ var MainLayout = function MainLayout(_ref) {
509
471
  }, _defineProperty(_ref2, "bg-".concat(background), background !== null), _defineProperty(_ref2, "text-".concat(text), text !== null), _ref2)])
510
472
  }, children));
511
473
  };
512
- MainLayout.propTypes = propTypes$h;
513
- MainLayout.defaultProps = defaultProps$h;
474
+ MainLayout.propTypes = propTypes$i;
475
+ MainLayout.defaultProps = defaultProps$i;
514
476
 
515
- var propTypes$g = {
477
+ var propTypes$h = {
516
478
  title: PropTypes.label,
517
479
  actions: PropTypes$1.node,
518
480
  small: PropTypes$1.bool,
519
481
  className: PropTypes$1.string,
520
482
  children: PropTypes$1.node
521
483
  };
522
- var defaultProps$g = {
484
+ var defaultProps$h = {
523
485
  title: null,
524
486
  actions: null,
525
487
  small: false,
@@ -557,22 +519,22 @@ var PageHeader = function PageHeader(_ref) {
557
519
  className: "col-12 col-md-8 col-lg-7"
558
520
  }, inner)) : inner), children);
559
521
  };
560
- PageHeader.propTypes = propTypes$g;
561
- PageHeader.defaultProps = defaultProps$g;
522
+ PageHeader.propTypes = propTypes$h;
523
+ PageHeader.defaultProps = defaultProps$h;
562
524
 
563
- var propTypes$f = {
525
+ var propTypes$g = {
564
526
  resource: PropTypes.resource.isRequired
565
527
  };
566
- var defaultProps$f = {};
528
+ var defaultProps$g = {};
567
529
  var ResourceCreatePage = function ResourceCreatePage(_ref) {
568
530
  var resource = _ref.resource;
569
- var navigate = useNavigate();
531
+ var history = useHistory();
570
532
  var _useLocation = useLocation(),
571
533
  search = _useLocation.search;
572
534
  var resourceRoute = useResourceUrlGenerator(resource);
573
535
  var onSuccess = useCallback(function () {
574
- navigate("".concat(resourceRoute('index'), "?created=true"));
575
- }, [navigate, resourceRoute]);
536
+ history.push("".concat(resourceRoute('index'), "?created=true"));
537
+ }, [history, resourceRoute]);
576
538
  var _useMemo = useMemo(function () {
577
539
  return parse(search);
578
540
  }, [search]),
@@ -606,26 +568,26 @@ var ResourceCreatePage = function ResourceCreatePage(_ref) {
606
568
  onSuccess: onSuccess
607
569
  }))))));
608
570
  };
609
- ResourceCreatePage.propTypes = propTypes$f;
610
- ResourceCreatePage.defaultProps = defaultProps$f;
571
+ ResourceCreatePage.propTypes = propTypes$g;
572
+ ResourceCreatePage.defaultProps = defaultProps$g;
611
573
 
612
574
  // import Button from '../buttons/Button';
613
575
 
614
- var propTypes$e = {
615
- resource: PropTypes.resource.isRequired
576
+ var propTypes$f = {
577
+ resource: PropTypes.resource.isRequired,
578
+ itemId: PropTypes$1.string.isRequired
616
579
  };
617
- var defaultProps$e = {};
580
+ var defaultProps$f = {};
618
581
  var ResourceDeletePage = function ResourceDeletePage(_ref) {
619
- var resource = _ref.resource;
620
- var _useParams = useParams(),
621
- itemId = _useParams.id;
622
- var navigate = useNavigate();
582
+ var resource = _ref.resource,
583
+ itemId = _ref.itemId;
584
+ var history = useHistory();
623
585
  var resourceRoute = useResourceUrlGenerator(resource);
624
586
  var _useResourceItem = useResourceItem(resource, itemId),
625
587
  item = _useResourceItem.item;
626
588
  var onSuccess = useCallback(function () {
627
- return navigate("".concat(resourceRoute('index'), "?deleted=true"));
628
- }, [navigate, resourceRoute]);
589
+ return history.push("".concat(resourceRoute('index'), "?deleted=true"));
590
+ }, [history, resourceRoute]);
629
591
 
630
592
  // Navigate back
631
593
  var _ref2 = history || {},
@@ -664,19 +626,19 @@ var ResourceDeletePage = function ResourceDeletePage(_ref) {
664
626
  isDelete: true
665
627
  }) : null)))));
666
628
  };
667
- ResourceDeletePage.propTypes = propTypes$e;
668
- ResourceDeletePage.defaultProps = defaultProps$e;
629
+ ResourceDeletePage.propTypes = propTypes$f;
630
+ ResourceDeletePage.defaultProps = defaultProps$f;
669
631
 
670
632
  // import Button from '../buttons/Button';
671
633
 
672
- var propTypes$d = {
673
- resource: PropTypes.resource.isRequired
634
+ var propTypes$e = {
635
+ resource: PropTypes.resource.isRequired,
636
+ itemId: PropTypes$1.string.isRequired
674
637
  };
675
- var defaultProps$d = {};
638
+ var defaultProps$e = {};
676
639
  var ResourceEditPage = function ResourceEditPage(_ref) {
677
- var resource = _ref.resource;
678
- var _useParams = useParams(),
679
- itemId = _useParams.id;
640
+ var resource = _ref.resource,
641
+ itemId = _ref.itemId;
680
642
  var _useResourceItem = useResourceItem(resource, itemId),
681
643
  item = _useResourceItem.item;
682
644
  var _ref2 = item || {},
@@ -721,14 +683,14 @@ var ResourceEditPage = function ResourceEditPage(_ref) {
721
683
  onSuccess: onSuccess
722
684
  }) : null)))));
723
685
  };
724
- ResourceEditPage.propTypes = propTypes$d;
725
- ResourceEditPage.defaultProps = defaultProps$d;
686
+ ResourceEditPage.propTypes = propTypes$e;
687
+ ResourceEditPage.defaultProps = defaultProps$e;
726
688
 
727
- var propTypes$c = {
689
+ var propTypes$d = {
728
690
  resource: PropTypes.resource.isRequired,
729
691
  className: PropTypes$1.string
730
692
  };
731
- var defaultProps$c = {
693
+ var defaultProps$d = {
732
694
  className: null
733
695
  };
734
696
  var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
@@ -745,9 +707,10 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
745
707
  setDropdownOpened = _useState2[1];
746
708
  var onClickDropdown = useCallback(function (e) {
747
709
  e.preventDefault();
748
- e.stopPropagation();
749
- setDropdownOpened(!dropdownOpened);
750
- }, [setDropdownOpened, dropdownOpened]);
710
+ setDropdownOpened(function (opened) {
711
+ return !opened;
712
+ });
713
+ }, [setDropdownOpened]);
751
714
  var finalTypes = types !== null ? types.filter(function (_ref2) {
752
715
  var _ref2$settings = _ref2.settings,
753
716
  _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
@@ -757,10 +720,8 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
757
720
  }) : null;
758
721
  var hasMultipleTypes = finalTypes !== null && finalTypes.length > 1;
759
722
  var onDropdownClickOutside = useCallback(function () {
760
- if (dropdownOpened) {
761
- setDropdownOpened(false);
762
- }
763
- }, [setDropdownOpened, dropdownOpened]);
723
+ setDropdownOpened(false);
724
+ }, [setDropdownOpened]);
764
725
  var button = /*#__PURE__*/React.createElement(Button, {
765
726
  href: !hasMultipleTypes ? "".concat(resourceRoute('create')).concat(finalTypes !== null && finalTypes.length === 1 ? "?type=".concat(finalTypes[0].id) : '') : '#',
766
727
  size: "lg",
@@ -797,11 +758,11 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
797
758
  onClickOutside: onDropdownClickOutside
798
759
  })) : button;
799
760
  };
800
- ResourceCreateButtom.propTypes = propTypes$c;
801
- ResourceCreateButtom.defaultProps = defaultProps$c;
761
+ ResourceCreateButtom.propTypes = propTypes$d;
762
+ ResourceCreateButtom.defaultProps = defaultProps$d;
802
763
 
803
- var _excluded$4 = ["component", "name", "groupLabel"];
804
- var propTypes$b = {
764
+ var _excluded$3 = ["component", "name", "groupLabel"];
765
+ var propTypes$c = {
805
766
  filters: PropTypes$1.arrayOf(PropTypes$1.shape({
806
767
  id: PropTypes$1.string.isRequired,
807
768
  component: PropTypes$1.string.isRequired
@@ -816,7 +777,7 @@ var propTypes$b = {
816
777
  // eslint-disable-line react/forbid-prop-types
817
778
  className: PropTypes$1.string
818
779
  };
819
- var defaultProps$b = {
780
+ var defaultProps$c = {
820
781
  filters: [],
821
782
  value: null,
822
783
  onChange: null,
@@ -865,7 +826,7 @@ var ResourceFilters = function ResourceFilters(_ref) {
865
826
  var component = _ref3.component,
866
827
  name = _ref3.name,
867
828
  groupLabel = _ref3.groupLabel,
868
- filterProps = _objectWithoutProperties(_ref3, _excluded$4);
829
+ filterProps = _objectWithoutProperties(_ref3, _excluded$3);
869
830
  var FilterComponent = getComponentFromName(component, FilterComponents, null);
870
831
  var filterValue = value !== null && value[name] ? value[name] : null;
871
832
  var onFilterChange = useCallback(function (newFilterValue) {
@@ -897,12 +858,12 @@ var ResourceFilters = function ResourceFilters(_ref) {
897
858
  icon: faUndo
898
859
  })) : null);
899
860
  };
900
- ResourceFilters.propTypes = propTypes$b;
901
- ResourceFilters.defaultProps = defaultProps$b;
861
+ ResourceFilters.propTypes = propTypes$c;
862
+ ResourceFilters.defaultProps = defaultProps$c;
902
863
 
903
- var _excluded$3 = ["component", "showPagination", "filters"],
864
+ var _excluded$2 = ["component", "showPagination", "filters"],
904
865
  _excluded2$1 = ["page"];
905
- var propTypes$a = {
866
+ var propTypes$b = {
906
867
  resource: PropTypes.resource.isRequired,
907
868
  query: PropTypes$1.object,
908
869
  // eslint-disable-line react/forbid-prop-types
@@ -914,7 +875,7 @@ var propTypes$a = {
914
875
  onQueryChange: PropTypes$1.func,
915
876
  onQueryReset: PropTypes$1.func
916
877
  };
917
- var defaultProps$a = {
878
+ var defaultProps$b = {
918
879
  query: null,
919
880
  paginated: true,
920
881
  component: null,
@@ -938,7 +899,7 @@ var ResourceItemsList = function ResourceItemsList(_ref) {
938
899
  showPagination = _resource$index2$show === void 0 ? true : _resource$index2$show,
939
900
  _resource$index2$filt = _resource$index2.filters,
940
901
  filters = _resource$index2$filt === void 0 ? null : _resource$index2$filt,
941
- listProps = _objectWithoutProperties(_resource$index2, _excluded$3);
902
+ listProps = _objectWithoutProperties(_resource$index2, _excluded$2);
942
903
  var _usePanneauColorSchem = usePanneauColorScheme(),
943
904
  _usePanneauColorSchem2 = _usePanneauColorSchem.background,
944
905
  theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2;
@@ -988,16 +949,16 @@ var ResourceItemsList = function ResourceItemsList(_ref) {
988
949
  className: "mt-4 mb-1"
989
950
  }) : null);
990
951
  };
991
- ResourceItemsList.propTypes = propTypes$a;
992
- ResourceItemsList.defaultProps = defaultProps$a;
952
+ ResourceItemsList.propTypes = propTypes$b;
953
+ ResourceItemsList.defaultProps = defaultProps$b;
993
954
 
994
- var _excluded$2 = ["id", "component"];
995
- var propTypes$9 = {
955
+ var _excluded$1 = ["id", "component"];
956
+ var propTypes$a = {
996
957
  resource: PropTypes.resource.isRequired,
997
958
  defaultActions: PropTypes$1.arrayOf(PropTypes$1.object) // eslint-disable-line react/forbid-prop-types
998
959
  };
999
960
 
1000
- var defaultProps$9 = {
961
+ var defaultProps$a = {
1001
962
  defaultActions: ['create']
1002
963
  };
1003
964
  var ResourceIndexPage = function ResourceIndexPage(_ref) {
@@ -1032,7 +993,7 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1032
993
  var componentsManager = useComponentsManager();
1033
994
  var _useLocation = useLocation(),
1034
995
  search = _useLocation.search;
1035
- var navigate = useNavigate();
996
+ var history = useHistory();
1036
997
  var query = useMemo(function () {
1037
998
  return parse(search);
1038
999
  }, [search]);
@@ -1051,21 +1012,19 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1051
1012
  var value = submitQuery[key];
1052
1013
  return value !== null ? _objectSpread(_objectSpread({}, currentQuery), {}, _defineProperty({}, key, value)) : currentQuery;
1053
1014
  }, null) : null;
1054
- navigate("".concat(url).concat(newQuery !== null ? "?".concat(stringify(newQuery, {
1015
+ history.push("".concat(url).concat(newQuery !== null ? "?".concat(stringify(newQuery, {
1055
1016
  arrayFormat: 'bracket'
1056
1017
  })) : ''));
1057
- }, [navigate, url, query, paginated]);
1018
+ }, [history, url, query, paginated]);
1058
1019
  var onQueryReset = useCallback(function () {
1059
1020
  var queryString = stringify(null, {
1060
1021
  arrayFormat: 'bracket'
1061
1022
  });
1062
- navigate("".concat(url, "?").concat(queryString));
1063
- }, [navigate, url, paginated]);
1023
+ history.push("".concat(url, "?").concat(queryString));
1024
+ }, [history, url, paginated]);
1064
1025
  var onClickCloseAlert = useCallback(function () {
1065
- navigate(url, {
1066
- replace: true
1067
- });
1068
- }, [navigate, url]);
1026
+ history.replace(url);
1027
+ }, [history, url]);
1069
1028
  return /*#__PURE__*/React.createElement(ResourceProvider, {
1070
1029
  resource: resource
1071
1030
  }, /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement(PageHeader, {
@@ -1076,7 +1035,7 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1076
1035
  var id = _ref5.id,
1077
1036
  _ref5$component = _ref5.component,
1078
1037
  component = _ref5$component === void 0 ? Button : _ref5$component,
1079
- actionProps = _objectWithoutProperties(_ref5, _excluded$2);
1038
+ actionProps = _objectWithoutProperties(_ref5, _excluded$1);
1080
1039
  var ActionComponent = isString(component) ? componentsManager.getComponent(component) : component;
1081
1040
  return ActionComponent !== null ? /*#__PURE__*/React.createElement(ActionComponent, Object.assign({
1082
1041
  key: "action-".concat(id)
@@ -1123,13 +1082,13 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1123
1082
  onQueryReset: onQueryReset
1124
1083
  }))));
1125
1084
  };
1126
- ResourceIndexPage.propTypes = propTypes$9;
1127
- ResourceIndexPage.defaultProps = defaultProps$9;
1085
+ ResourceIndexPage.propTypes = propTypes$a;
1086
+ ResourceIndexPage.defaultProps = defaultProps$a;
1128
1087
 
1129
- var propTypes$8 = {
1088
+ var propTypes$9 = {
1130
1089
  resource: PropTypes.resource.isRequired
1131
1090
  };
1132
- var defaultProps$8 = {};
1091
+ var defaultProps$9 = {};
1133
1092
  var ResourceShowPage = function ResourceShowPage(_ref) {
1134
1093
  var resource = _ref.resource;
1135
1094
  return /*#__PURE__*/React.createElement(ResourceProvider, {
@@ -1140,12 +1099,12 @@ var ResourceShowPage = function ResourceShowPage(_ref) {
1140
1099
  className: "container-sm"
1141
1100
  }, "Show page")));
1142
1101
  };
1143
- ResourceShowPage.propTypes = propTypes$8;
1144
- ResourceShowPage.defaultProps = defaultProps$8;
1102
+ ResourceShowPage.propTypes = propTypes$9;
1103
+ ResourceShowPage.defaultProps = defaultProps$9;
1145
1104
 
1146
1105
  /* eslint-disable react/jsx-props-no-spreading */
1147
- var propTypes$7 = {};
1148
- var defaultProps$7 = {};
1106
+ var propTypes$8 = {};
1107
+ var defaultProps$8 = {};
1149
1108
  var HomePage = function HomePage() {
1150
1109
  var route = useUrlGenerator();
1151
1110
  var resources = usePanneauResources();
@@ -1181,26 +1140,26 @@ var HomePage = function HomePage() {
1181
1140
  }));
1182
1141
  })));
1183
1142
  };
1184
- HomePage.propTypes = propTypes$7;
1185
- HomePage.defaultProps = defaultProps$7;
1143
+ HomePage.propTypes = propTypes$8;
1144
+ HomePage.defaultProps = defaultProps$8;
1186
1145
 
1187
- var propTypes$6 = {};
1188
- var defaultProps$6 = {};
1146
+ var propTypes$7 = {};
1147
+ var defaultProps$7 = {};
1189
1148
  var AccountPage = function AccountPage() {
1190
1149
  return /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement("div", {
1191
1150
  className: "container-sm py-4"
1192
1151
  }, "Account page"));
1193
1152
  };
1194
- AccountPage.propTypes = propTypes$6;
1195
- AccountPage.defaultProps = defaultProps$6;
1153
+ AccountPage.propTypes = propTypes$7;
1154
+ AccountPage.defaultProps = defaultProps$7;
1196
1155
 
1197
1156
  /* eslint-disable react/jsx-props-no-spreading */
1198
- var propTypes$5 = {
1157
+ var propTypes$6 = {
1199
1158
  fields: PropTypes.fields,
1200
1159
  className: PropTypes$1.string,
1201
1160
  onSuccess: PropTypes$1.func
1202
1161
  };
1203
- var defaultProps$5 = {
1162
+ var defaultProps$6 = {
1204
1163
  fields: [{
1205
1164
  name: 'email',
1206
1165
  type: 'email',
@@ -1272,14 +1231,14 @@ var LoginForm = function LoginForm(_ref) {
1272
1231
  })
1273
1232
  });
1274
1233
  };
1275
- LoginForm.propTypes = propTypes$5;
1276
- LoginForm.defaultProps = defaultProps$5;
1234
+ LoginForm.propTypes = propTypes$6;
1235
+ LoginForm.defaultProps = defaultProps$6;
1277
1236
 
1278
- var propTypes$4 = {
1237
+ var propTypes$5 = {
1279
1238
  children: PropTypes$1.node.isRequired,
1280
1239
  fullscreen: PropTypes$1.bool
1281
1240
  };
1282
- var defaultProps$4 = {
1241
+ var defaultProps$5 = {
1283
1242
  fullscreen: false
1284
1243
  };
1285
1244
  var GuestLayout = function GuestLayout(_ref) {
@@ -1305,12 +1264,12 @@ var GuestLayout = function GuestLayout(_ref) {
1305
1264
  })
1306
1265
  }, children)));
1307
1266
  };
1308
- GuestLayout.propTypes = propTypes$4;
1309
- GuestLayout.defaultProps = defaultProps$4;
1267
+ GuestLayout.propTypes = propTypes$5;
1268
+ GuestLayout.defaultProps = defaultProps$5;
1310
1269
 
1311
1270
  /* eslint-disable react/jsx-props-no-spreading */
1312
- var propTypes$3 = {};
1313
- var defaultProps$3 = {};
1271
+ var propTypes$4 = {};
1272
+ var defaultProps$4 = {};
1314
1273
  var LoginPage = function LoginPage() {
1315
1274
  var route = useUrlGenerator();
1316
1275
  var onSuccess = useCallback(function () {
@@ -1336,8 +1295,8 @@ var LoginPage = function LoginPage() {
1336
1295
  onSuccess: onSuccess
1337
1296
  })))));
1338
1297
  };
1339
- LoginPage.propTypes = propTypes$3;
1340
- LoginPage.defaultProps = defaultProps$3;
1298
+ LoginPage.propTypes = propTypes$4;
1299
+ LoginPage.defaultProps = defaultProps$4;
1341
1300
 
1342
1301
  var messages = defineMessages({
1343
1302
  metaTitle401: {
@@ -1432,10 +1391,10 @@ var messages = defineMessages({
1432
1391
  }]
1433
1392
  }
1434
1393
  });
1435
- var propTypes$2 = {
1394
+ var propTypes$3 = {
1436
1395
  statusCode: PropTypes.statusCode
1437
1396
  };
1438
- var defaultProps$2 = {
1397
+ var defaultProps$3 = {
1439
1398
  statusCode: null
1440
1399
  };
1441
1400
  var ErrorPage = function ErrorPage(_ref) {
@@ -1450,20 +1409,37 @@ var ErrorPage = function ErrorPage(_ref) {
1450
1409
  className: "col-12 col-sm-8 col-md-6"
1451
1410
  }, /*#__PURE__*/React.createElement("h1", null, /*#__PURE__*/React.createElement(Label, null, messages["title".concat(statusCode || 404)])), /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement(Label, null, messages["description".concat(statusCode || 404)]))))));
1452
1411
  };
1453
- ErrorPage.propTypes = propTypes$2;
1454
- ErrorPage.defaultProps = defaultProps$2;
1412
+ ErrorPage.propTypes = propTypes$3;
1413
+ ErrorPage.defaultProps = defaultProps$3;
1455
1414
 
1456
- var _excluded$1 = ["path", "component", "exact"];
1457
- var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1458
- var route = _ref.route,
1459
- componentsManager = _ref.componentsManager,
1460
- _ref$pages = _ref.pages,
1461
- pages = _ref$pages === void 0 ? {} : _ref$pages;
1415
+ var basePages = /*#__PURE__*/Object.freeze({
1416
+ __proto__: null,
1417
+ ResourceCreate: ResourceCreatePage,
1418
+ ResourceDelete: ResourceDeletePage,
1419
+ ResourceEdit: ResourceEditPage,
1420
+ ResourceIndex: ResourceIndexPage,
1421
+ ResourceShow: ResourceShowPage,
1422
+ Home: HomePage,
1423
+ Account: AccountPage,
1424
+ Login: LoginPage,
1425
+ Error: ErrorPage
1426
+ });
1427
+
1428
+ var _excluded = ["path", "component", "exact"],
1429
+ _excluded2 = ["id"];
1430
+ var propTypes$2 = {
1431
+ resource: PropTypes.resource.isRequired
1432
+ };
1433
+ var defaultProps$2 = {};
1434
+ var ResourceRoutes = function ResourceRoutes(_ref) {
1435
+ var resource = _ref.resource;
1462
1436
  var resourceId = resource.id,
1463
1437
  _resource$pages = resource.pages,
1464
- resourcePages = _resource$pages === void 0 ? {} : _resource$pages,
1438
+ pages = _resource$pages === void 0 ? {} : _resource$pages,
1465
1439
  _resource$extraRoutes = resource.extraRoutes,
1466
1440
  extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes;
1441
+ var route = useUrlGenerator();
1442
+ var componentsManager = useComponentsManager();
1467
1443
 
1468
1444
  // Load custom pages from resource
1469
1445
  var _ref2 = pages || {},
@@ -1477,85 +1453,96 @@ var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1477
1453
  editPage = _ref2$edit === void 0 ? null : _ref2$edit,
1478
1454
  _ref2$delete = _ref2["delete"],
1479
1455
  deletePage = _ref2$delete === void 0 ? null : _ref2$delete;
1480
- var _ref3 = resourcePages || {},
1481
- _ref3$index = _ref3.index,
1482
- resourceIndexPage = _ref3$index === void 0 ? null : _ref3$index,
1483
- _ref3$show = _ref3.show,
1484
- resourceShowPage = _ref3$show === void 0 ? null : _ref3$show,
1485
- _ref3$create = _ref3.create,
1486
- resourceCreatePage = _ref3$create === void 0 ? null : _ref3$create,
1487
- _ref3$edit = _ref3.edit,
1488
- resourceEditPage = _ref3$edit === void 0 ? null : _ref3$edit,
1489
- _ref3$delete = _ref3["delete"],
1490
- resourceDeletePage = _ref3$delete === void 0 ? null : _ref3$delete;
1491
- var ResourceIndexComponent = componentsManager.getComponent(resourceIndexPage === null || resourceIndexPage === void 0 ? void 0 : resourceIndexPage.component) || componentsManager.getComponent(indexPage === null || indexPage === void 0 ? void 0 : indexPage.component) || ResourceIndexPage;
1492
- var ResourceShowComponent = componentsManager.getComponent(resourceShowPage === null || resourceShowPage === void 0 ? void 0 : resourceShowPage.component) || componentsManager.getComponent(showPage === null || showPage === void 0 ? void 0 : showPage.component) || ResourceShowPage;
1493
- var ResourceCreateComponent = componentsManager.getComponent(resourceCreatePage === null || resourceCreatePage === void 0 ? void 0 : resourceCreatePage.component) || componentsManager.getComponent(createPage === null || createPage === void 0 ? void 0 : createPage.component) || ResourceCreatePage;
1494
- var ResourceEditComponent = componentsManager.getComponent(resourceEditPage === null || resourceEditPage === void 0 ? void 0 : resourceEditPage.component) || componentsManager.getComponent(editPage === null || editPage === void 0 ? void 0 : editPage.component) || ResourceEditPage;
1495
- var ResourceDeleteComponent = componentsManager.getComponent(resourceDeletePage === null || resourceDeletePage === void 0 ? void 0 : resourceDeletePage.component) || componentsManager.getComponent(deletePage === null || deletePage === void 0 ? void 0 : deletePage.component) || ResourceDeletePage;
1496
- return [/*#__PURE__*/React.createElement(Route, {
1456
+ var ResourceIndexComponent = indexPage !== null && typeof indexPage.component !== 'undefined' ? componentsManager.getComponent(indexPage.component) : ResourceIndexPage;
1457
+ var ResourceShowComponent = showPage !== null && typeof showPage.component !== 'undefined' ? componentsManager.getComponent(showPage.component) : ResourceShowPage;
1458
+ var ResourceCreateComponent = createPage !== null && typeof createPage.component !== 'undefined' ? componentsManager.getComponent(createPage.component) : ResourceCreatePage;
1459
+ var ResourceEditComponent = editPage !== null && typeof editPage.component !== 'undefined' ? componentsManager.getComponent(editPage.component) : ResourceEditPage;
1460
+ var ResourceDeleteComponent = deletePage !== null && typeof deletePage.component !== 'undefined' ? componentsManager.getComponent(deletePage.component) : ResourceDeletePage;
1461
+ return /*#__PURE__*/React.createElement(Switch, null, extraRoutes.map(function (_ref3) {
1462
+ var path = _ref3.path,
1463
+ component = _ref3.component,
1464
+ _ref3$exact = _ref3.exact,
1465
+ exact = _ref3$exact === void 0 ? true : _ref3$exact,
1466
+ pageProps = _objectWithoutProperties(_ref3, _excluded);
1467
+ var RouteComponent = componentsManager.getComponent(component);
1468
+ return RouteComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1469
+ key: "route-".concat(path),
1470
+ path: path,
1471
+ exact: exact,
1472
+ render: function render(_ref4) {
1473
+ var _ref4$match$params = _ref4.match.params,
1474
+ id = _ref4$match$params.id,
1475
+ params = _objectWithoutProperties(_ref4$match$params, _excluded2);
1476
+ return /*#__PURE__*/React.createElement(RouteComponent, Object.assign({
1477
+ resource: resource,
1478
+ itemId: id
1479
+ }, pageProps, params));
1480
+ }
1481
+ }) : null;
1482
+ }), /*#__PURE__*/React.createElement(Route, {
1497
1483
  path: route('resources.index', {
1498
1484
  resource: resourceId
1499
1485
  }),
1500
1486
  exact: true,
1501
- element: /*#__PURE__*/React.createElement(ResourceIndexComponent, {
1502
- resource: resource
1503
- })
1487
+ render: function render() {
1488
+ return /*#__PURE__*/React.createElement(ResourceIndexComponent, {
1489
+ resource: resource
1490
+ });
1491
+ }
1504
1492
  }), /*#__PURE__*/React.createElement(Route, {
1505
1493
  path: route('resources.create', {
1506
1494
  resource: resourceId
1507
1495
  }),
1508
1496
  exact: true,
1509
- element: /*#__PURE__*/React.createElement(ResourceCreateComponent, {
1510
- resource: resource
1511
- })
1497
+ render: function render() {
1498
+ return /*#__PURE__*/React.createElement(ResourceCreateComponent, {
1499
+ resource: resource
1500
+ });
1501
+ }
1512
1502
  }), /*#__PURE__*/React.createElement(Route, {
1513
1503
  path: route('resources.show', {
1514
1504
  resource: resourceId,
1515
1505
  id: ':id'
1516
1506
  }),
1517
1507
  exact: true,
1518
- element: /*#__PURE__*/React.createElement(ResourceShowComponent, {
1519
- resource: resource
1520
- })
1508
+ render: function render(_ref5) {
1509
+ var id = _ref5.match.params.id;
1510
+ return /*#__PURE__*/React.createElement(ResourceShowComponent, {
1511
+ resource: resource,
1512
+ itemId: id
1513
+ });
1514
+ }
1521
1515
  }), /*#__PURE__*/React.createElement(Route, {
1522
1516
  path: route('resources.edit', {
1523
1517
  resource: resourceId,
1524
1518
  id: ':id'
1525
1519
  }),
1526
1520
  exact: true,
1527
- element: /*#__PURE__*/React.createElement(ResourceEditComponent, {
1528
- resource: resource
1529
- })
1521
+ render: function render(_ref6) {
1522
+ var id = _ref6.match.params.id;
1523
+ return /*#__PURE__*/React.createElement(ResourceEditComponent, {
1524
+ resource: resource,
1525
+ itemId: id
1526
+ });
1527
+ }
1530
1528
  }), /*#__PURE__*/React.createElement(Route, {
1531
1529
  path: route('resources.delete', {
1532
1530
  resource: resourceId,
1533
1531
  id: ':id'
1534
1532
  }),
1535
1533
  exact: true,
1536
- element: /*#__PURE__*/React.createElement(ResourceDeleteComponent, {
1537
- resource: resource
1538
- })
1539
- })].concat(_toConsumableArray(extraRoutes.map(function (_ref4) {
1540
- var path = _ref4.path,
1541
- component = _ref4.component,
1542
- _ref4$exact = _ref4.exact,
1543
- exact = _ref4$exact === void 0 ? true : _ref4$exact,
1544
- pageProps = _objectWithoutProperties(_ref4, _excluded$1);
1545
- var RouteComponent = componentsManager.getComponent(component);
1546
- return RouteComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1547
- key: "route-".concat(path),
1548
- path: path,
1549
- exact: exact,
1550
- element: /*#__PURE__*/React.createElement(RouteComponent, Object.assign({
1551
- resource: resource
1552
- }, pageProps))
1553
- }) : null;
1554
- })));
1534
+ render: function render(_ref7) {
1535
+ var id = _ref7.match.params.id;
1536
+ return /*#__PURE__*/React.createElement(ResourceDeleteComponent, {
1537
+ resource: resource,
1538
+ itemId: id
1539
+ });
1540
+ }
1541
+ }));
1555
1542
  };
1543
+ ResourceRoutes.propTypes = propTypes$2;
1544
+ ResourceRoutes.defaultProps = defaultProps$2;
1556
1545
 
1557
- var _excluded = ["home", "login", "account", "error", "index", "show", "create", "edit", "delete"],
1558
- _excluded2 = ["path", "route", "component", "exact"];
1559
1546
  var propTypes$1 = {
1560
1547
  statusCode: PropTypes.statusCode
1561
1548
  };
@@ -1564,9 +1551,13 @@ var defaultProps$1 = {
1564
1551
  };
1565
1552
  var PanneauRoutes = function PanneauRoutes(_ref) {
1566
1553
  var initialStatusCode = _ref.statusCode;
1554
+ var _usePanneau = usePanneau(),
1555
+ _usePanneau$pages = _usePanneau.pages,
1556
+ pages = _usePanneau$pages === void 0 ? {} : _usePanneau$pages;
1567
1557
  var routes = useRoutes();
1568
1558
  var _useLocation = useLocation(),
1569
- pathname = _useLocation.pathname;
1559
+ pathname = _useLocation.pathname; // search
1560
+
1570
1561
  var _useState = useState({
1571
1562
  statusCode: initialStatusCode,
1572
1563
  pathname: pathname
@@ -1574,26 +1565,27 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
1574
1565
  _useState2 = _slicedToArray(_useState, 2),
1575
1566
  _useState2$ = _useState2[0],
1576
1567
  statusCode = _useState2$.statusCode,
1577
- lastPathname = _useState2$.pathname,
1568
+ initialPathname = _useState2$.pathname,
1578
1569
  setInitialRequest = _useState2[1];
1579
1570
  var user = useUser();
1580
1571
  var route = useUrlGenerator();
1581
1572
  var resources = usePanneauResources();
1582
- var componentsManager = usePagesComponentsManager();
1573
+
1574
+ // const nextUrl = useMemo(() => {
1575
+ // const query = parseQuery(search);
1576
+ // return query !== null ? query.next || null : null;
1577
+ // }, [search]);
1578
+
1583
1579
  useEffect(function () {
1584
- if (pathname !== lastPathname) {
1580
+ if (pathname !== initialPathname) {
1585
1581
  setInitialRequest({
1586
1582
  pathname: pathname,
1587
1583
  statusCode: null
1588
1584
  });
1589
1585
  }
1590
- }, [pathname, lastPathname]);
1586
+ }, [pathname, initialPathname]);
1591
1587
 
1592
1588
  // Custom Pages
1593
- var _usePanneau = usePanneau(),
1594
- _usePanneau$pages = _usePanneau.pages,
1595
- pages = _usePanneau$pages === void 0 ? null : _usePanneau$pages,
1596
- routesDefinition = _usePanneau.routes;
1597
1589
  var _ref2 = pages || {},
1598
1590
  _ref2$home = _ref2.home,
1599
1591
  homePage = _ref2$home === void 0 ? null : _ref2$home,
@@ -1603,94 +1595,55 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
1603
1595
  accountPage = _ref2$account === void 0 ? null : _ref2$account,
1604
1596
  _ref2$error = _ref2.error,
1605
1597
  errorPage = _ref2$error === void 0 ? null : _ref2$error;
1606
- _ref2.index;
1607
- _ref2.show;
1608
- _ref2.create;
1609
- _ref2.edit;
1610
- _ref2["delete"];
1611
- var otherPages = _objectWithoutProperties(_ref2, _excluded);
1612
- var customRoutes = useMemo(function () {
1613
- return [].concat(_toConsumableArray(Object.keys(routesDefinition).filter(function (key) {
1614
- return key.match(/^(resources\.|auth\.)/) === null && key !== 'home' && key !== 'account';
1615
- }).filter(function (key) {
1616
- var routeDef = routesDefinition[key];
1617
- return isObject(routeDef) && typeof routeDef.component !== 'undefined' && typeof routeDef.path !== 'undefined';
1618
- }).map(function (key) {
1619
- return routesDefinition[key];
1620
- })), _toConsumableArray(Object.keys(otherPages).map(function (key) {
1621
- return otherPages[key];
1622
- }).filter(function (_ref3) {
1623
- var _ref3$path = _ref3.path,
1624
- path = _ref3$path === void 0 ? null : _ref3$path,
1625
- _ref3$route = _ref3.route,
1626
- pageRoute = _ref3$route === void 0 ? null : _ref3$route;
1627
- return path !== null || pageRoute !== null;
1628
- })));
1629
- }, [routesDefinition, otherPages]);
1630
- var HomeComponent = componentsManager.getComponent(homePage === null || homePage === void 0 ? void 0 : homePage.component) || HomePage;
1631
- var LoginComponent = componentsManager.getComponent(loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || LoginPage;
1632
- var AccountComponent = componentsManager.getComponent(accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || AccountPage;
1633
- var ErrorComponent = componentsManager.getComponent(errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || ErrorPage;
1634
-
1635
- // If there is an error status code
1636
- if (statusCode !== null) {
1637
- return /*#__PURE__*/React.createElement(ErrorComponent, {
1638
- statusCode: statusCode
1639
- });
1640
- }
1641
-
1642
- // If user is unauthenticated
1643
- if (user === null) {
1644
- return /*#__PURE__*/React.createElement(Routes, null, /*#__PURE__*/React.createElement(Route, {
1645
- path: routes['auth.login'],
1646
- exact: true,
1647
- element: /*#__PURE__*/React.createElement(LoginComponent, null)
1648
- }), /*#__PURE__*/React.createElement(Route, {
1649
- path: "*",
1650
- element: /*#__PURE__*/React.createElement(Navigate, {
1651
- to: "".concat(route('auth.login'), "?next=").concat(encodeURIComponent(pathname)),
1652
- replace: true
1653
- })
1654
- }));
1655
- }
1656
-
1657
- // Normal routes
1658
- return /*#__PURE__*/React.createElement(Routes, null, /*#__PURE__*/React.createElement(Route, {
1598
+ var HomeComponent = getComponentFromName((homePage === null || homePage === void 0 ? void 0 : homePage.component) || 'home', basePages, homePage === null || homePage === void 0 ? void 0 : homePage.component);
1599
+ var LoginComponent = getComponentFromName((loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || 'login', basePages, loginPage === null || loginPage === void 0 ? void 0 : loginPage.component);
1600
+ var AccountComponent = getComponentFromName((accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || 'account', basePages, accountPage === null || accountPage === void 0 ? void 0 : accountPage.component);
1601
+ var ErrorComponent = getComponentFromName((errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || 'error', basePages, errorPage === null || errorPage === void 0 ? void 0 : errorPage.component);
1602
+ return /*#__PURE__*/React.createElement(Switch, null, statusCode !== null ? /*#__PURE__*/React.createElement(Route, {
1603
+ path: "*",
1604
+ render: function render() {
1605
+ return /*#__PURE__*/React.createElement(ErrorComponent, {
1606
+ statusCode: statusCode
1607
+ });
1608
+ }
1609
+ }) : null, user === null ? /*#__PURE__*/React.createElement(Route, {
1610
+ path: "*",
1611
+ exact: true,
1612
+ component: LoginComponent
1613
+ }) : null, user !== null ? /*#__PURE__*/React.createElement(Route, {
1659
1614
  path: routes.home,
1660
1615
  exact: true,
1661
- element: /*#__PURE__*/React.createElement(HomeComponent, null)
1616
+ component: HomeComponent
1617
+ }) : /*#__PURE__*/React.createElement(Redirect, {
1618
+ from: routes.home,
1619
+ exact: true,
1620
+ to: route('login')
1662
1621
  }), resources.map(function (resource) {
1663
- var _ref4 = resource || {},
1664
- resourceId = _ref4.id;
1665
- return /*#__PURE__*/React.createElement(Fragment, {
1666
- key: "resource-".concat(resourceId)
1667
- }, createResourceRoutes(resource, {
1668
- route: route,
1669
- componentsManager: componentsManager,
1670
- pages: pages
1671
- }));
1622
+ var _ref3 = resource || {},
1623
+ resourceId = _ref3.id;
1624
+ return user !== null ? /*#__PURE__*/React.createElement(Route, {
1625
+ key: "resource-".concat(resourceId),
1626
+ path: route('resources.index', {
1627
+ resource: resourceId
1628
+ }),
1629
+ render: function render() {
1630
+ return /*#__PURE__*/React.createElement(ResourceRoutes, {
1631
+ resource: resource
1632
+ });
1633
+ }
1634
+ }) : /*#__PURE__*/React.createElement(Redirect, {
1635
+ key: "resource-".concat(resourceId),
1636
+ from: route('resources.index', {
1637
+ resource: resourceId
1638
+ }),
1639
+ to: "".concat(route('login'), "?next=").concat(encodeURIComponent(pathname))
1640
+ });
1672
1641
  }), /*#__PURE__*/React.createElement(Route, {
1673
- path: routes.account,
1674
- exact: true,
1675
- element: /*#__PURE__*/React.createElement(AccountComponent, null)
1676
- }), customRoutes.map(function (_ref5) {
1677
- var _ref5$path = _ref5.path,
1678
- path = _ref5$path === void 0 ? null : _ref5$path,
1679
- _ref5$route = _ref5.route,
1680
- pageRoute = _ref5$route === void 0 ? null : _ref5$route,
1681
- component = _ref5.component,
1682
- _ref5$exact = _ref5.exact,
1683
- exact = _ref5$exact === void 0 ? true : _ref5$exact,
1684
- props = _objectWithoutProperties(_ref5, _excluded2);
1685
- var PageComponent = componentsManager.getComponent(component);
1686
- return PageComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1687
- path: path || routes[pageRoute],
1688
- exact: exact,
1689
- element: /*#__PURE__*/React.createElement(PageComponent, props)
1690
- }) : null;
1642
+ path: route('auth.account'),
1643
+ component: AccountComponent
1691
1644
  }), /*#__PURE__*/React.createElement(Route, {
1692
1645
  path: "*",
1693
- element: /*#__PURE__*/React.createElement(ErrorComponent, null)
1646
+ component: ErrorComponent
1694
1647
  }));
1695
1648
  };
1696
1649
  PanneauRoutes.propTypes = propTypes$1;