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