@panneau/app 1.0.3-y.0 → 1.0.4

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';
@@ -15,12 +15,11 @@ import FormsProvider from '@panneau/forms';
15
15
  import { useResourceValues, IntlProvider } from '@panneau/intl';
16
16
  import ListsProvider from '@panneau/lists';
17
17
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
18
+ import { getComponentFromName } from '@panneau/core/utils';
18
19
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
19
- import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
20
20
  import { parse, stringify } from 'query-string';
21
21
  import { FormattedMessage, defineMessages } from 'react-intl';
22
22
  import { useResourceUrlGenerator, useForm } from '@panneau/core/hooks';
23
- import { getComponentFromName } from '@panneau/core/utils';
24
23
  import classNames from 'classnames';
25
24
  import Button from '@panneau/element-button';
26
25
  import Form from '@panneau/element-form';
@@ -37,7 +36,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
37
36
  import FormGroup from '@panneau/element-form-group';
38
37
 
39
38
  var _excluded$5 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
40
- var propTypes$m = {
39
+ var propTypes$n = {
41
40
  resource: PropTypes.resource.isRequired,
42
41
  action: PropTypes$1.string,
43
42
  previous: PropTypes$1.string,
@@ -51,7 +50,7 @@ var propTypes$m = {
51
50
  errors: PropTypes$1.objectOf(PropTypes$1.arrayOf(PropTypes$1.string)),
52
51
  className: PropTypes$1.string
53
52
  };
54
- var defaultProps$m = {
53
+ var defaultProps$n = {
55
54
  action: null,
56
55
  previous: null,
57
56
  status: null,
@@ -142,11 +141,11 @@ var DeleteForm = function DeleteForm(_ref) {
142
141
  }]
143
142
  })))));
144
143
  };
145
- DeleteForm.propTypes = propTypes$m;
146
- DeleteForm.defaultProps = defaultProps$m;
144
+ DeleteForm.propTypes = propTypes$n;
145
+ DeleteForm.defaultProps = defaultProps$n;
147
146
 
148
147
  var _excluded$4 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
149
- var propTypes$l = {
148
+ var propTypes$m = {
150
149
  component: PropTypes$1.string,
151
150
  resource: PropTypes.resource.isRequired,
152
151
  item: PropTypes$1.object,
@@ -155,7 +154,7 @@ var propTypes$l = {
155
154
  onSuccess: PropTypes$1.func,
156
155
  isDelete: PropTypes$1.bool
157
156
  };
158
- var defaultProps$l = {
157
+ var defaultProps$m = {
159
158
  component: null,
160
159
  item: null,
161
160
  type: null,
@@ -297,15 +296,15 @@ var ResourceForm = function ResourceForm(_ref) {
297
296
  onChange: setValue
298
297
  })));
299
298
  };
300
- ResourceForm.propTypes = propTypes$l;
301
- ResourceForm.defaultProps = defaultProps$l;
299
+ ResourceForm.propTypes = propTypes$m;
300
+ ResourceForm.defaultProps = defaultProps$m;
302
301
 
303
- var propTypes$k = {
302
+ var propTypes$l = {
304
303
  className: PropTypes$1.string,
305
304
  itemClassName: PropTypes$1.string,
306
305
  linkClassName: PropTypes$1.string
307
306
  };
308
- var defaultProps$k = {
307
+ var defaultProps$l = {
309
308
  className: null,
310
309
  itemClassName: null,
311
310
  linkClassName: null
@@ -331,7 +330,7 @@ var AccountMenu = function AccountMenu(_ref) {
331
330
  "value": "Account"
332
331
  }]
333
332
  }),
334
- href: route('account'),
333
+ href: route('panneau.account'),
335
334
  dropdown: [
336
335
  // {
337
336
  // label: (
@@ -340,7 +339,7 @@ var AccountMenu = function AccountMenu(_ref) {
340
339
  // description="Menu label"
341
340
  // />
342
341
  // ),
343
- // href: route('account'),
342
+ // href: route('panneau.account'),
344
343
  // },
345
344
  {
346
345
  label: /*#__PURE__*/React.createElement(FormattedMessage, {
@@ -361,7 +360,7 @@ var AccountMenu = function AccountMenu(_ref) {
361
360
  "value": "Login"
362
361
  }]
363
362
  }),
364
- href: route('auth.login')
363
+ href: route('login')
365
364
  }];
366
365
  }, [user, route, onClickLogout]);
367
366
  return items !== null ? /*#__PURE__*/React.createElement(Menu, {
@@ -372,15 +371,15 @@ var AccountMenu = function AccountMenu(_ref) {
372
371
  dropdownAlign: "end"
373
372
  }) : null;
374
373
  };
375
- AccountMenu.propTypes = propTypes$k;
376
- AccountMenu.defaultProps = defaultProps$k;
374
+ AccountMenu.propTypes = propTypes$l;
375
+ AccountMenu.defaultProps = defaultProps$l;
377
376
 
378
- var propTypes$j = {
377
+ var propTypes$k = {
379
378
  className: PropTypes$1.string,
380
379
  itemClassName: PropTypes$1.string,
381
380
  linkClassName: PropTypes$1.string
382
381
  };
383
- var defaultProps$j = {
382
+ var defaultProps$k = {
384
383
  className: null,
385
384
  itemClassName: null,
386
385
  linkClassName: null
@@ -417,12 +416,12 @@ var ResourcesMenu = function ResourcesMenu(_ref) {
417
416
  linkClassName: linkClassName
418
417
  });
419
418
  };
420
- ResourcesMenu.propTypes = propTypes$j;
421
- ResourcesMenu.defaultProps = defaultProps$j;
419
+ ResourcesMenu.propTypes = propTypes$k;
420
+ ResourcesMenu.defaultProps = defaultProps$k;
422
421
 
423
422
  /* eslint-disable react/jsx-props-no-spreading */
424
- var propTypes$i = {};
425
- var defaultProps$i = {};
423
+ var propTypes$j = {};
424
+ var defaultProps$j = {};
426
425
  var MainNavbar = function MainNavbar(props) {
427
426
  var _usePanneau = usePanneau(),
428
427
  name = _usePanneau.name;
@@ -445,14 +444,14 @@ var MainNavbar = function MainNavbar(props) {
445
444
  linkClassName: "nav-link"
446
445
  }));
447
446
  };
448
- MainNavbar.propTypes = propTypes$i;
449
- MainNavbar.defaultProps = defaultProps$i;
447
+ MainNavbar.propTypes = propTypes$j;
448
+ MainNavbar.defaultProps = defaultProps$j;
450
449
 
451
- var propTypes$h = {
450
+ var propTypes$i = {
452
451
  children: PropTypes$1.node.isRequired,
453
452
  fullscreen: PropTypes$1.bool
454
453
  };
455
- var defaultProps$h = {
454
+ var defaultProps$i = {
456
455
  fullscreen: false
457
456
  };
458
457
  var MainLayout = function MainLayout(_ref) {
@@ -472,17 +471,17 @@ var MainLayout = function MainLayout(_ref) {
472
471
  }, _defineProperty(_ref2, "bg-".concat(background), background !== null), _defineProperty(_ref2, "text-".concat(text), text !== null), _ref2)])
473
472
  }, children));
474
473
  };
475
- MainLayout.propTypes = propTypes$h;
476
- MainLayout.defaultProps = defaultProps$h;
474
+ MainLayout.propTypes = propTypes$i;
475
+ MainLayout.defaultProps = defaultProps$i;
477
476
 
478
- var propTypes$g = {
477
+ var propTypes$h = {
479
478
  title: PropTypes.label,
480
479
  actions: PropTypes$1.node,
481
480
  small: PropTypes$1.bool,
482
481
  className: PropTypes$1.string,
483
482
  children: PropTypes$1.node
484
483
  };
485
- var defaultProps$g = {
484
+ var defaultProps$h = {
486
485
  title: null,
487
486
  actions: null,
488
487
  small: false,
@@ -520,22 +519,22 @@ var PageHeader = function PageHeader(_ref) {
520
519
  className: "col-12 col-md-8 col-lg-7"
521
520
  }, inner)) : inner), children);
522
521
  };
523
- PageHeader.propTypes = propTypes$g;
524
- PageHeader.defaultProps = defaultProps$g;
522
+ PageHeader.propTypes = propTypes$h;
523
+ PageHeader.defaultProps = defaultProps$h;
525
524
 
526
- var propTypes$f = {
525
+ var propTypes$g = {
527
526
  resource: PropTypes.resource.isRequired
528
527
  };
529
- var defaultProps$f = {};
528
+ var defaultProps$g = {};
530
529
  var ResourceCreatePage = function ResourceCreatePage(_ref) {
531
530
  var resource = _ref.resource;
532
- var navigate = useNavigate();
531
+ var history = useHistory();
533
532
  var _useLocation = useLocation(),
534
533
  search = _useLocation.search;
535
534
  var resourceRoute = useResourceUrlGenerator(resource);
536
535
  var onSuccess = useCallback(function () {
537
- navigate("".concat(resourceRoute('index'), "?created=true"));
538
- }, [navigate, resourceRoute]);
536
+ history.push("".concat(resourceRoute('index'), "?created=true"));
537
+ }, [history, resourceRoute]);
539
538
  var _useMemo = useMemo(function () {
540
539
  return parse(search);
541
540
  }, [search]),
@@ -569,26 +568,26 @@ var ResourceCreatePage = function ResourceCreatePage(_ref) {
569
568
  onSuccess: onSuccess
570
569
  }))))));
571
570
  };
572
- ResourceCreatePage.propTypes = propTypes$f;
573
- ResourceCreatePage.defaultProps = defaultProps$f;
571
+ ResourceCreatePage.propTypes = propTypes$g;
572
+ ResourceCreatePage.defaultProps = defaultProps$g;
574
573
 
575
574
  // import Button from '../buttons/Button';
576
575
 
577
- var propTypes$e = {
578
- resource: PropTypes.resource.isRequired
576
+ var propTypes$f = {
577
+ resource: PropTypes.resource.isRequired,
578
+ itemId: PropTypes$1.string.isRequired
579
579
  };
580
- var defaultProps$e = {};
580
+ var defaultProps$f = {};
581
581
  var ResourceDeletePage = function ResourceDeletePage(_ref) {
582
- var resource = _ref.resource;
583
- var _useParams = useParams(),
584
- itemId = _useParams.id;
585
- var navigate = useNavigate();
582
+ var resource = _ref.resource,
583
+ itemId = _ref.itemId;
584
+ var history = useHistory();
586
585
  var resourceRoute = useResourceUrlGenerator(resource);
587
586
  var _useResourceItem = useResourceItem(resource, itemId),
588
587
  item = _useResourceItem.item;
589
588
  var onSuccess = useCallback(function () {
590
- return navigate("".concat(resourceRoute('index'), "?deleted=true"));
591
- }, [navigate, resourceRoute]);
589
+ return history.push("".concat(resourceRoute('index'), "?deleted=true"));
590
+ }, [history, resourceRoute]);
592
591
 
593
592
  // Navigate back
594
593
  var _ref2 = history || {},
@@ -627,19 +626,19 @@ var ResourceDeletePage = function ResourceDeletePage(_ref) {
627
626
  isDelete: true
628
627
  }) : null)))));
629
628
  };
630
- ResourceDeletePage.propTypes = propTypes$e;
631
- ResourceDeletePage.defaultProps = defaultProps$e;
629
+ ResourceDeletePage.propTypes = propTypes$f;
630
+ ResourceDeletePage.defaultProps = defaultProps$f;
632
631
 
633
632
  // import Button from '../buttons/Button';
634
633
 
635
- var propTypes$d = {
636
- resource: PropTypes.resource.isRequired
634
+ var propTypes$e = {
635
+ resource: PropTypes.resource.isRequired,
636
+ itemId: PropTypes$1.string.isRequired
637
637
  };
638
- var defaultProps$d = {};
638
+ var defaultProps$e = {};
639
639
  var ResourceEditPage = function ResourceEditPage(_ref) {
640
- var resource = _ref.resource;
641
- var _useParams = useParams(),
642
- itemId = _useParams.id;
640
+ var resource = _ref.resource,
641
+ itemId = _ref.itemId;
643
642
  var _useResourceItem = useResourceItem(resource, itemId),
644
643
  item = _useResourceItem.item;
645
644
  var _ref2 = item || {},
@@ -684,14 +683,14 @@ var ResourceEditPage = function ResourceEditPage(_ref) {
684
683
  onSuccess: onSuccess
685
684
  }) : null)))));
686
685
  };
687
- ResourceEditPage.propTypes = propTypes$d;
688
- ResourceEditPage.defaultProps = defaultProps$d;
686
+ ResourceEditPage.propTypes = propTypes$e;
687
+ ResourceEditPage.defaultProps = defaultProps$e;
689
688
 
690
- var propTypes$c = {
689
+ var propTypes$d = {
691
690
  resource: PropTypes.resource.isRequired,
692
691
  className: PropTypes$1.string
693
692
  };
694
- var defaultProps$c = {
693
+ var defaultProps$d = {
695
694
  className: null
696
695
  };
697
696
  var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
@@ -759,11 +758,11 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
759
758
  onClickOutside: onDropdownClickOutside
760
759
  })) : button;
761
760
  };
762
- ResourceCreateButtom.propTypes = propTypes$c;
763
- ResourceCreateButtom.defaultProps = defaultProps$c;
761
+ ResourceCreateButtom.propTypes = propTypes$d;
762
+ ResourceCreateButtom.defaultProps = defaultProps$d;
764
763
 
765
764
  var _excluded$3 = ["component", "name", "groupLabel"];
766
- var propTypes$b = {
765
+ var propTypes$c = {
767
766
  filters: PropTypes$1.arrayOf(PropTypes$1.shape({
768
767
  id: PropTypes$1.string.isRequired,
769
768
  component: PropTypes$1.string.isRequired
@@ -778,7 +777,7 @@ var propTypes$b = {
778
777
  // eslint-disable-line react/forbid-prop-types
779
778
  className: PropTypes$1.string
780
779
  };
781
- var defaultProps$b = {
780
+ var defaultProps$c = {
782
781
  filters: [],
783
782
  value: null,
784
783
  onChange: null,
@@ -859,12 +858,12 @@ var ResourceFilters = function ResourceFilters(_ref) {
859
858
  icon: faUndo
860
859
  })) : null);
861
860
  };
862
- ResourceFilters.propTypes = propTypes$b;
863
- ResourceFilters.defaultProps = defaultProps$b;
861
+ ResourceFilters.propTypes = propTypes$c;
862
+ ResourceFilters.defaultProps = defaultProps$c;
864
863
 
865
864
  var _excluded$2 = ["component", "showPagination", "filters"],
866
- _excluded2 = ["page"];
867
- var propTypes$a = {
865
+ _excluded2$1 = ["page"];
866
+ var propTypes$b = {
868
867
  resource: PropTypes.resource.isRequired,
869
868
  query: PropTypes$1.object,
870
869
  // eslint-disable-line react/forbid-prop-types
@@ -876,7 +875,7 @@ var propTypes$a = {
876
875
  onQueryChange: PropTypes$1.func,
877
876
  onQueryReset: PropTypes$1.func
878
877
  };
879
- var defaultProps$a = {
878
+ var defaultProps$b = {
880
879
  query: null,
881
880
  paginated: true,
882
881
  component: null,
@@ -909,7 +908,7 @@ var ResourceItemsList = function ResourceItemsList(_ref) {
909
908
  var _ref2 = query || {},
910
909
  _ref2$page = _ref2.page,
911
910
  currentPage = _ref2$page === void 0 ? 1 : _ref2$page,
912
- rest = _objectWithoutProperties(_ref2, _excluded2);
911
+ rest = _objectWithoutProperties(_ref2, _excluded2$1);
913
912
  return [currentPage, rest];
914
913
  }, [query]),
915
914
  _useMemo2 = _slicedToArray(_useMemo, 2),
@@ -950,16 +949,16 @@ var ResourceItemsList = function ResourceItemsList(_ref) {
950
949
  className: "mt-4 mb-1"
951
950
  }) : null);
952
951
  };
953
- ResourceItemsList.propTypes = propTypes$a;
954
- ResourceItemsList.defaultProps = defaultProps$a;
952
+ ResourceItemsList.propTypes = propTypes$b;
953
+ ResourceItemsList.defaultProps = defaultProps$b;
955
954
 
956
955
  var _excluded$1 = ["id", "component"];
957
- var propTypes$9 = {
956
+ var propTypes$a = {
958
957
  resource: PropTypes.resource.isRequired,
959
958
  defaultActions: PropTypes$1.arrayOf(PropTypes$1.object) // eslint-disable-line react/forbid-prop-types
960
959
  };
961
960
 
962
- var defaultProps$9 = {
961
+ var defaultProps$a = {
963
962
  defaultActions: ['create']
964
963
  };
965
964
  var ResourceIndexPage = function ResourceIndexPage(_ref) {
@@ -994,7 +993,7 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
994
993
  var componentsManager = useComponentsManager();
995
994
  var _useLocation = useLocation(),
996
995
  search = _useLocation.search;
997
- var navigate = useNavigate();
996
+ var history = useHistory();
998
997
  var query = useMemo(function () {
999
998
  return parse(search);
1000
999
  }, [search]);
@@ -1013,16 +1012,16 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1013
1012
  var value = submitQuery[key];
1014
1013
  return value !== null ? _objectSpread(_objectSpread({}, currentQuery), {}, _defineProperty({}, key, value)) : currentQuery;
1015
1014
  }, null) : null;
1016
- navigate("".concat(url).concat(newQuery !== null ? "?".concat(stringify(newQuery, {
1015
+ history.push("".concat(url).concat(newQuery !== null ? "?".concat(stringify(newQuery, {
1017
1016
  arrayFormat: 'bracket'
1018
1017
  })) : ''));
1019
- }, [navigate, url, query, paginated]);
1018
+ }, [history, url, query, paginated]);
1020
1019
  var onQueryReset = useCallback(function () {
1021
1020
  var queryString = stringify(null, {
1022
1021
  arrayFormat: 'bracket'
1023
1022
  });
1024
- navigate("".concat(url, "?").concat(queryString));
1025
- }, [navigate, url, paginated]);
1023
+ history.push("".concat(url, "?").concat(queryString));
1024
+ }, [history, url, paginated]);
1026
1025
  var onClickCloseAlert = useCallback(function () {
1027
1026
  history.replace(url);
1028
1027
  }, [history, url]);
@@ -1083,13 +1082,13 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
1083
1082
  onQueryReset: onQueryReset
1084
1083
  }))));
1085
1084
  };
1086
- ResourceIndexPage.propTypes = propTypes$9;
1087
- ResourceIndexPage.defaultProps = defaultProps$9;
1085
+ ResourceIndexPage.propTypes = propTypes$a;
1086
+ ResourceIndexPage.defaultProps = defaultProps$a;
1088
1087
 
1089
- var propTypes$8 = {
1088
+ var propTypes$9 = {
1090
1089
  resource: PropTypes.resource.isRequired
1091
1090
  };
1092
- var defaultProps$8 = {};
1091
+ var defaultProps$9 = {};
1093
1092
  var ResourceShowPage = function ResourceShowPage(_ref) {
1094
1093
  var resource = _ref.resource;
1095
1094
  return /*#__PURE__*/React.createElement(ResourceProvider, {
@@ -1100,12 +1099,12 @@ var ResourceShowPage = function ResourceShowPage(_ref) {
1100
1099
  className: "container-sm"
1101
1100
  }, "Show page")));
1102
1101
  };
1103
- ResourceShowPage.propTypes = propTypes$8;
1104
- ResourceShowPage.defaultProps = defaultProps$8;
1102
+ ResourceShowPage.propTypes = propTypes$9;
1103
+ ResourceShowPage.defaultProps = defaultProps$9;
1105
1104
 
1106
1105
  /* eslint-disable react/jsx-props-no-spreading */
1107
- var propTypes$7 = {};
1108
- var defaultProps$7 = {};
1106
+ var propTypes$8 = {};
1107
+ var defaultProps$8 = {};
1109
1108
  var HomePage = function HomePage() {
1110
1109
  var route = useUrlGenerator();
1111
1110
  var resources = usePanneauResources();
@@ -1141,26 +1140,26 @@ var HomePage = function HomePage() {
1141
1140
  }));
1142
1141
  })));
1143
1142
  };
1144
- HomePage.propTypes = propTypes$7;
1145
- HomePage.defaultProps = defaultProps$7;
1143
+ HomePage.propTypes = propTypes$8;
1144
+ HomePage.defaultProps = defaultProps$8;
1146
1145
 
1147
- var propTypes$6 = {};
1148
- var defaultProps$6 = {};
1146
+ var propTypes$7 = {};
1147
+ var defaultProps$7 = {};
1149
1148
  var AccountPage = function AccountPage() {
1150
1149
  return /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement("div", {
1151
1150
  className: "container-sm py-4"
1152
1151
  }, "Account page"));
1153
1152
  };
1154
- AccountPage.propTypes = propTypes$6;
1155
- AccountPage.defaultProps = defaultProps$6;
1153
+ AccountPage.propTypes = propTypes$7;
1154
+ AccountPage.defaultProps = defaultProps$7;
1156
1155
 
1157
1156
  /* eslint-disable react/jsx-props-no-spreading */
1158
- var propTypes$5 = {
1157
+ var propTypes$6 = {
1159
1158
  fields: PropTypes.fields,
1160
1159
  className: PropTypes$1.string,
1161
1160
  onSuccess: PropTypes$1.func
1162
1161
  };
1163
- var defaultProps$5 = {
1162
+ var defaultProps$6 = {
1164
1163
  fields: [{
1165
1164
  name: 'email',
1166
1165
  type: 'email',
@@ -1232,14 +1231,14 @@ var LoginForm = function LoginForm(_ref) {
1232
1231
  })
1233
1232
  });
1234
1233
  };
1235
- LoginForm.propTypes = propTypes$5;
1236
- LoginForm.defaultProps = defaultProps$5;
1234
+ LoginForm.propTypes = propTypes$6;
1235
+ LoginForm.defaultProps = defaultProps$6;
1237
1236
 
1238
- var propTypes$4 = {
1237
+ var propTypes$5 = {
1239
1238
  children: PropTypes$1.node.isRequired,
1240
1239
  fullscreen: PropTypes$1.bool
1241
1240
  };
1242
- var defaultProps$4 = {
1241
+ var defaultProps$5 = {
1243
1242
  fullscreen: false
1244
1243
  };
1245
1244
  var GuestLayout = function GuestLayout(_ref) {
@@ -1265,12 +1264,12 @@ var GuestLayout = function GuestLayout(_ref) {
1265
1264
  })
1266
1265
  }, children)));
1267
1266
  };
1268
- GuestLayout.propTypes = propTypes$4;
1269
- GuestLayout.defaultProps = defaultProps$4;
1267
+ GuestLayout.propTypes = propTypes$5;
1268
+ GuestLayout.defaultProps = defaultProps$5;
1270
1269
 
1271
1270
  /* eslint-disable react/jsx-props-no-spreading */
1272
- var propTypes$3 = {};
1273
- var defaultProps$3 = {};
1271
+ var propTypes$4 = {};
1272
+ var defaultProps$4 = {};
1274
1273
  var LoginPage = function LoginPage() {
1275
1274
  var route = useUrlGenerator();
1276
1275
  var onSuccess = useCallback(function () {
@@ -1296,8 +1295,8 @@ var LoginPage = function LoginPage() {
1296
1295
  onSuccess: onSuccess
1297
1296
  })))));
1298
1297
  };
1299
- LoginPage.propTypes = propTypes$3;
1300
- LoginPage.defaultProps = defaultProps$3;
1298
+ LoginPage.propTypes = propTypes$4;
1299
+ LoginPage.defaultProps = defaultProps$4;
1301
1300
 
1302
1301
  var messages = defineMessages({
1303
1302
  metaTitle401: {
@@ -1392,10 +1391,10 @@ var messages = defineMessages({
1392
1391
  }]
1393
1392
  }
1394
1393
  });
1395
- var propTypes$2 = {
1394
+ var propTypes$3 = {
1396
1395
  statusCode: PropTypes.statusCode
1397
1396
  };
1398
- var defaultProps$2 = {
1397
+ var defaultProps$3 = {
1399
1398
  statusCode: null
1400
1399
  };
1401
1400
  var ErrorPage = function ErrorPage(_ref) {
@@ -1410,20 +1409,37 @@ var ErrorPage = function ErrorPage(_ref) {
1410
1409
  className: "col-12 col-sm-8 col-md-6"
1411
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)]))))));
1412
1411
  };
1413
- ErrorPage.propTypes = propTypes$2;
1414
- ErrorPage.defaultProps = defaultProps$2;
1412
+ ErrorPage.propTypes = propTypes$3;
1413
+ ErrorPage.defaultProps = defaultProps$3;
1415
1414
 
1416
- var _excluded = ["path", "component", "exact"];
1417
- var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1418
- var route = _ref.route,
1419
- componentsManager = _ref.componentsManager,
1420
- _ref$pages = _ref.pages,
1421
- 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;
1422
1436
  var resourceId = resource.id,
1423
1437
  _resource$pages = resource.pages,
1424
- resourcePages = _resource$pages === void 0 ? {} : _resource$pages,
1438
+ pages = _resource$pages === void 0 ? {} : _resource$pages,
1425
1439
  _resource$extraRoutes = resource.extraRoutes,
1426
1440
  extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes;
1441
+ var route = useUrlGenerator();
1442
+ var componentsManager = useComponentsManager();
1427
1443
 
1428
1444
  // Load custom pages from resource
1429
1445
  var _ref2 = pages || {},
@@ -1437,82 +1453,95 @@ var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1437
1453
  editPage = _ref2$edit === void 0 ? null : _ref2$edit,
1438
1454
  _ref2$delete = _ref2["delete"],
1439
1455
  deletePage = _ref2$delete === void 0 ? null : _ref2$delete;
1440
- var _ref3 = resourcePages || {},
1441
- _ref3$index = _ref3.index,
1442
- resourceIndexPage = _ref3$index === void 0 ? null : _ref3$index,
1443
- _ref3$show = _ref3.show,
1444
- resourceShowPage = _ref3$show === void 0 ? null : _ref3$show,
1445
- _ref3$create = _ref3.create,
1446
- resourceCreatePage = _ref3$create === void 0 ? null : _ref3$create,
1447
- _ref3$edit = _ref3.edit,
1448
- resourceEditPage = _ref3$edit === void 0 ? null : _ref3$edit,
1449
- _ref3$delete = _ref3["delete"],
1450
- resourceDeletePage = _ref3$delete === void 0 ? null : _ref3$delete;
1451
- 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;
1452
- 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;
1453
- 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;
1454
- 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;
1455
- 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;
1456
- 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, {
1457
1483
  path: route('resources.index', {
1458
1484
  resource: resourceId
1459
1485
  }),
1460
1486
  exact: true,
1461
- element: /*#__PURE__*/React.createElement(ResourceIndexComponent, {
1462
- resource: resource
1463
- })
1487
+ render: function render() {
1488
+ return /*#__PURE__*/React.createElement(ResourceIndexComponent, {
1489
+ resource: resource
1490
+ });
1491
+ }
1464
1492
  }), /*#__PURE__*/React.createElement(Route, {
1465
1493
  path: route('resources.create', {
1466
1494
  resource: resourceId
1467
1495
  }),
1468
1496
  exact: true,
1469
- element: /*#__PURE__*/React.createElement(ResourceCreateComponent, {
1470
- resource: resource
1471
- })
1497
+ render: function render() {
1498
+ return /*#__PURE__*/React.createElement(ResourceCreateComponent, {
1499
+ resource: resource
1500
+ });
1501
+ }
1472
1502
  }), /*#__PURE__*/React.createElement(Route, {
1473
1503
  path: route('resources.show', {
1474
1504
  resource: resourceId,
1475
1505
  id: ':id'
1476
1506
  }),
1477
1507
  exact: true,
1478
- element: /*#__PURE__*/React.createElement(ResourceShowComponent, {
1479
- resource: resource
1480
- })
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
+ }
1481
1515
  }), /*#__PURE__*/React.createElement(Route, {
1482
1516
  path: route('resources.edit', {
1483
1517
  resource: resourceId,
1484
1518
  id: ':id'
1485
1519
  }),
1486
1520
  exact: true,
1487
- element: /*#__PURE__*/React.createElement(ResourceEditComponent, {
1488
- resource: resource
1489
- })
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
+ }
1490
1528
  }), /*#__PURE__*/React.createElement(Route, {
1491
1529
  path: route('resources.delete', {
1492
1530
  resource: resourceId,
1493
1531
  id: ':id'
1494
1532
  }),
1495
1533
  exact: true,
1496
- element: /*#__PURE__*/React.createElement(ResourceDeleteComponent, {
1497
- resource: resource
1498
- })
1499
- })].concat(_toConsumableArray(extraRoutes.map(function (_ref4) {
1500
- var path = _ref4.path,
1501
- component = _ref4.component,
1502
- _ref4$exact = _ref4.exact,
1503
- exact = _ref4$exact === void 0 ? true : _ref4$exact,
1504
- pageProps = _objectWithoutProperties(_ref4, _excluded);
1505
- var RouteComponent = componentsManager.getComponent(component);
1506
- return RouteComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1507
- key: "route-".concat(path),
1508
- path: path,
1509
- exact: exact,
1510
- element: /*#__PURE__*/React.createElement(RouteComponent, Object.assign({
1511
- resource: resource
1512
- }, pageProps))
1513
- }) : null;
1514
- })));
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
+ }));
1515
1542
  };
1543
+ ResourceRoutes.propTypes = propTypes$2;
1544
+ ResourceRoutes.defaultProps = defaultProps$2;
1516
1545
 
1517
1546
  var propTypes$1 = {
1518
1547
  statusCode: PropTypes.statusCode
@@ -1522,9 +1551,13 @@ var defaultProps$1 = {
1522
1551
  };
1523
1552
  var PanneauRoutes = function PanneauRoutes(_ref) {
1524
1553
  var initialStatusCode = _ref.statusCode;
1554
+ var _usePanneau = usePanneau(),
1555
+ _usePanneau$pages = _usePanneau.pages,
1556
+ pages = _usePanneau$pages === void 0 ? {} : _usePanneau$pages;
1525
1557
  var routes = useRoutes();
1526
1558
  var _useLocation = useLocation(),
1527
- pathname = _useLocation.pathname;
1559
+ pathname = _useLocation.pathname; // search
1560
+
1528
1561
  var _useState = useState({
1529
1562
  statusCode: initialStatusCode,
1530
1563
  pathname: pathname
@@ -1532,25 +1565,27 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
1532
1565
  _useState2 = _slicedToArray(_useState, 2),
1533
1566
  _useState2$ = _useState2[0],
1534
1567
  statusCode = _useState2$.statusCode,
1535
- lastPathname = _useState2$.pathname,
1568
+ initialPathname = _useState2$.pathname,
1536
1569
  setInitialRequest = _useState2[1];
1537
1570
  var user = useUser();
1538
1571
  var route = useUrlGenerator();
1539
1572
  var resources = usePanneauResources();
1540
- var componentsManager = usePagesComponentsManager();
1573
+
1574
+ // const nextUrl = useMemo(() => {
1575
+ // const query = parseQuery(search);
1576
+ // return query !== null ? query.next || null : null;
1577
+ // }, [search]);
1578
+
1541
1579
  useEffect(function () {
1542
- if (pathname !== lastPathname) {
1580
+ if (pathname !== initialPathname) {
1543
1581
  setInitialRequest({
1544
1582
  pathname: pathname,
1545
1583
  statusCode: null
1546
1584
  });
1547
1585
  }
1548
- }, [pathname, lastPathname]);
1586
+ }, [pathname, initialPathname]);
1549
1587
 
1550
1588
  // Custom Pages
1551
- var _usePanneau = usePanneau(),
1552
- _usePanneau$pages = _usePanneau.pages,
1553
- pages = _usePanneau$pages === void 0 ? null : _usePanneau$pages;
1554
1589
  var _ref2 = pages || {},
1555
1590
  _ref2$home = _ref2.home,
1556
1591
  homePage = _ref2$home === void 0 ? null : _ref2$home,
@@ -1560,55 +1595,55 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
1560
1595
  accountPage = _ref2$account === void 0 ? null : _ref2$account,
1561
1596
  _ref2$error = _ref2.error,
1562
1597
  errorPage = _ref2$error === void 0 ? null : _ref2$error;
1563
- var HomeComponent = componentsManager.getComponent(homePage === null || homePage === void 0 ? void 0 : homePage.component) || HomePage;
1564
- var LoginComponent = componentsManager.getComponent(loginPage === null || loginPage === void 0 ? void 0 : loginPage.component) || LoginPage;
1565
- var AccountComponent = componentsManager.getComponent(accountPage === null || accountPage === void 0 ? void 0 : accountPage.component) || AccountPage;
1566
- var ErrorComponent = componentsManager.getComponent(errorPage === null || errorPage === void 0 ? void 0 : errorPage.component) || ErrorPage;
1567
-
1568
- // If there is an error status code
1569
- if (statusCode !== null) {
1570
- return /*#__PURE__*/React.createElement(ErrorComponent, {
1571
- statusCode: statusCode
1572
- });
1573
- }
1574
-
1575
- // If user is unauthenticated
1576
- if (user === null) {
1577
- return /*#__PURE__*/React.createElement(Routes, null, /*#__PURE__*/React.createElement(Route, {
1578
- path: routes['auth.login'],
1579
- exact: true,
1580
- element: /*#__PURE__*/React.createElement(LoginComponent, null)
1581
- }), /*#__PURE__*/React.createElement(Route, {
1582
- path: "*",
1583
- element: /*#__PURE__*/React.createElement(Navigate, {
1584
- to: "".concat(route('auth.login'), "?next=").concat(encodeURIComponent(pathname)),
1585
- replace: true
1586
- })
1587
- }));
1588
- }
1589
-
1590
- // Normal routes
1591
- 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, {
1592
1614
  path: routes.home,
1593
1615
  exact: true,
1594
- 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')
1595
1621
  }), resources.map(function (resource) {
1596
1622
  var _ref3 = resource || {},
1597
1623
  resourceId = _ref3.id;
1598
- return /*#__PURE__*/React.createElement(Fragment, {
1599
- key: "resource-".concat(resourceId)
1600
- }, createResourceRoutes(resource, {
1601
- route: route,
1602
- componentsManager: componentsManager,
1603
- pages: pages
1604
- }));
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
+ });
1605
1641
  }), /*#__PURE__*/React.createElement(Route, {
1606
- path: routes.account,
1607
- exact: true,
1608
- element: /*#__PURE__*/React.createElement(AccountComponent, null)
1642
+ path: route('auth.account'),
1643
+ component: AccountComponent
1609
1644
  }), /*#__PURE__*/React.createElement(Route, {
1610
1645
  path: "*",
1611
- element: /*#__PURE__*/React.createElement(ErrorComponent, null)
1646
+ component: ErrorComponent
1612
1647
  }));
1613
1648
  };
1614
1649
  PanneauRoutes.propTypes = propTypes$1;