@panneau/app 1.1.1 → 2.0.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 DELETED
@@ -1,1737 +0,0 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
- import PropTypes$1 from 'prop-types';
4
- import React, { useMemo, useCallback, useState, useEffect } from 'react';
5
- import { useLocation, useHistory, Switch, Route, Redirect, MemoryRouter } from 'react-router';
6
- import { Link, BrowserRouter } from 'react-router-dom';
7
- import { useUser, useLogout, useAuth, AuthProvider } from '@panneau/auth';
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';
10
- import { useResourceStore, useResourceUpdate, useResourceDestroy, useResourceItem, useResourceItems, ApiProvider } from '@panneau/data';
11
- import DisplaysProvider from '@panneau/displays';
12
- import FieldsProvider from '@panneau/fields';
13
- import FiltersProvider from '@panneau/filters';
14
- import FormsProvider from '@panneau/forms';
15
- import { useResourceValues, IntlProvider } from '@panneau/intl';
16
- import ListsProvider from '@panneau/lists';
17
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
18
- import { getComponentFromName } from '@panneau/core/utils';
19
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
20
- import { parse, stringify } from 'query-string';
21
- import { FormattedMessage, defineMessages } from 'react-intl';
22
- import { useResourceUrlGenerator, useForm } from '@panneau/core/hooks';
23
- import classNames from 'classnames';
24
- import Button from '@panneau/element-button';
25
- import Form from '@panneau/element-form';
26
- import Navbar from '@panneau/element-navbar';
27
- import Menu from '@panneau/element-menu';
28
- import Label from '@panneau/element-label';
29
- import isString from 'lodash/isString';
30
- import Alert from '@panneau/element-alert';
31
- import Dropdown from '@panneau/element-dropdown';
32
- import Pagination from '@panneau/element-pagination';
33
- import _toPropertyKey from '@babel/runtime/helpers/toPropertyKey';
34
- import { faUndo } from '@fortawesome/free-solid-svg-icons';
35
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
36
- import FormGroup from '@panneau/element-form-group';
37
-
38
- var _excluded$5 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
39
- var propTypes$n = {
40
- resource: PropTypes.resource.isRequired,
41
- action: PropTypes$1.string,
42
- previous: PropTypes$1.string,
43
- fields: PropTypes.fields.isRequired,
44
- value: PropTypes$1.object,
45
- // eslint-disable-line react/forbid-prop-types
46
- onChange: PropTypes$1.func.isRequired,
47
- onSubmit: PropTypes$1.func,
48
- status: PropTypes.formStatus,
49
- generalError: PropTypes$1.string,
50
- errors: PropTypes$1.objectOf(PropTypes$1.arrayOf(PropTypes$1.string)),
51
- className: PropTypes$1.string
52
- };
53
- var defaultProps$n = {
54
- action: null,
55
- previous: null,
56
- status: null,
57
- value: null,
58
- onSubmit: null,
59
- generalError: null,
60
- errors: null,
61
- className: null
62
- };
63
- var DeleteForm = function DeleteForm(_ref) {
64
- var resource = _ref.resource,
65
- action = _ref.action,
66
- previous = _ref.previous;
67
- _ref.status;
68
- var value = _ref.value,
69
- onSubmit = _ref.onSubmit;
70
- _ref.errors;
71
- var generalError = _ref.generalError,
72
- className = _ref.className,
73
- props = _objectWithoutProperties(_ref, _excluded$5);
74
- var _ref2 = value || {},
75
- _ref2$id = _ref2.id,
76
- id = _ref2$id === void 0 ? null : _ref2$id;
77
- var resourceValues = useResourceValues(resource, {
78
- id: id
79
- });
80
- return /*#__PURE__*/React.createElement(Form, Object.assign({
81
- className: classNames(['form', _defineProperty({
82
- 'invalid-feedback': generalError !== null
83
- }, className, className !== null)]),
84
- action: action,
85
- onSubmit: onSubmit,
86
- withoutActions: true,
87
- withoutErrors: true
88
- }, props), /*#__PURE__*/React.createElement("div", {
89
- className: "card"
90
- }, /*#__PURE__*/React.createElement("div", {
91
- className: "card-body"
92
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
93
- values: resourceValues,
94
- id: "yzfiXJ",
95
- defaultMessage: [{
96
- "type": 0,
97
- "value": "Are you sure you want to delete "
98
- }, {
99
- "type": 1,
100
- "value": "the_singular"
101
- }, {
102
- "type": 0,
103
- "value": " #"
104
- }, {
105
- "type": 1,
106
- "value": "id"
107
- }, {
108
- "type": 0,
109
- "value": "?"
110
- }]
111
- }), generalError ? /*#__PURE__*/React.createElement("p", {
112
- className: "text-danger"
113
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
114
- id: "y9zauY",
115
- defaultMessage: [{
116
- "type": 0,
117
- "value": "An error occured and we could not delete this item successfully."
118
- }]
119
- })) : null), /*#__PURE__*/React.createElement("div", {
120
- className: "card-body d-flex"
121
- }, previous !== null ? /*#__PURE__*/React.createElement(Button, {
122
- href: previous,
123
- className: "me-2",
124
- theme: "secondary",
125
- outline: true
126
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
127
- id: "PyxZY2",
128
- defaultMessage: [{
129
- "type": 0,
130
- "value": "Cancel"
131
- }]
132
- })) : null, /*#__PURE__*/React.createElement(Button, {
133
- type: "submit",
134
- className: "ms-auto",
135
- theme: "danger"
136
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
137
- id: "Bhu3B2",
138
- defaultMessage: [{
139
- "type": 0,
140
- "value": "Delete"
141
- }]
142
- })))));
143
- };
144
- DeleteForm.propTypes = propTypes$n;
145
- DeleteForm.defaultProps = defaultProps$n;
146
-
147
- var _excluded$4 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
148
- var propTypes$m = {
149
- component: PropTypes$1.string,
150
- resource: PropTypes.resource.isRequired,
151
- item: PropTypes$1.object,
152
- // eslint-disable-line react/forbid-prop-types
153
- type: PropTypes$1.string,
154
- onSuccess: PropTypes$1.func,
155
- isDelete: PropTypes$1.bool
156
- };
157
- var defaultProps$m = {
158
- component: null,
159
- item: null,
160
- type: null,
161
- onSuccess: null,
162
- isDelete: false
163
- };
164
- var ResourceForm = function ResourceForm(_ref) {
165
- var component = _ref.component,
166
- resource = _ref.resource,
167
- onSuccess = _ref.onSuccess,
168
- item = _ref.item,
169
- type = _ref.type,
170
- isDelete = _ref.isDelete,
171
- props = _objectWithoutProperties(_ref, _excluded$4);
172
- var locales = useLocales();
173
- var FormComponents = useFormsComponents();
174
- var _resource$fields = resource.fields,
175
- resourceFields = _resource$fields === void 0 ? [] : _resource$fields,
176
- _resource$types = resource.types,
177
- resourceTypes = _resource$types === void 0 ? [] : _resource$types,
178
- forms = resource.forms;
179
- var resourceType = type !== null ? resourceTypes.find(function (it) {
180
- return it.id === type;
181
- }) || null : null;
182
- var _ref2 = resourceType || {},
183
- _ref2$fields = _ref2.fields,
184
- resourceTypeFields = _ref2$fields === void 0 ? null : _ref2$fields;
185
- var isCreate = item === null || !item.id;
186
-
187
- // Pick fields from resource root or form
188
- var _ref3 = forms || {},
189
- _ref3$default = _ref3["default"],
190
- defaultForm = _ref3$default === void 0 ? null : _ref3$default,
191
- _ref3$create = _ref3.create,
192
- createForm = _ref3$create === void 0 ? null : _ref3$create,
193
- _ref3$edit = _ref3.edit,
194
- editForm = _ref3$edit === void 0 ? null : _ref3$edit,
195
- _ref3$delete = _ref3["delete"],
196
- deleteForm = _ref3$delete === void 0 ? null : _ref3$delete;
197
- var _ref4 = defaultForm || {},
198
- _ref4$fields = _ref4.fields,
199
- defaultFields = _ref4$fields === void 0 ? null : _ref4$fields,
200
- defaultComponent = _ref4.component;
201
- var createOrEditSource = isCreate ? createForm || {} : editForm || {};
202
- var _ref5 = isDelete ? deleteForm || {} : createOrEditSource || {},
203
- _ref5$fields = _ref5.fields,
204
- formFields = _ref5$fields === void 0 ? null : _ref5$fields,
205
- _ref5$component = _ref5.component,
206
- formComponent = _ref5$component === void 0 ? null : _ref5$component;
207
- var finalFields = useMemo(function () {
208
- return (formFields || defaultFields || resourceTypeFields || resourceFields).filter(function (_ref6) {
209
- var _ref6$settings = _ref6.settings,
210
- _ref6$settings2 = _ref6$settings === void 0 ? {} : _ref6$settings,
211
- _ref6$settings2$hidde = _ref6$settings2.hiddenInForm,
212
- hiddenInForm = _ref6$settings2$hidde === void 0 ? false : _ref6$settings2$hidde;
213
- return !hiddenInForm;
214
- });
215
- }, [formFields, defaultFields, resourceTypeFields, resourceFields]);
216
-
217
- // Form routes
218
- var resourceRoute = useResourceUrlGenerator(resource);
219
- var _useResourceStore = useResourceStore(resource),
220
- store = _useResourceStore.store;
221
- var _useResourceUpdate = useResourceUpdate(resource, item != null ? item.id : null),
222
- update = _useResourceUpdate.update;
223
- var _useResourceDestroy = useResourceDestroy(resource, item != null ? item.id : null),
224
- destroy = _useResourceDestroy.destroy;
225
-
226
- // Post actions
227
- var postAction = isCreate ? store : update;
228
- var postForm = useCallback(function (action, data) {
229
- return isDelete ? destroy() : postAction(data);
230
- }, [postAction, isDelete, destroy, store, update]);
231
-
232
- // Form state
233
- var getInitialValue = useCallback(function () {
234
- return item !== null ? item : finalFields.reduce(function (defaultValues, _ref7) {
235
- var name = _ref7.name,
236
- _ref7$defaultValue = _ref7.defaultValue,
237
- defaultValue = _ref7$defaultValue === void 0 ? null : _ref7$defaultValue;
238
- return defaultValue !== null ? _objectSpread(_objectSpread({}, defaultValues), {}, _defineProperty({}, name, defaultValue)) : defaultValues;
239
- }, type !== null ? {
240
- type: type
241
- } : null);
242
- }, [item, type, finalFields]);
243
- var _useState = useState(getInitialValue()),
244
- _useState2 = _slicedToArray(_useState, 2),
245
- value = _useState2[0],
246
- setValueState = _useState2[1];
247
- var setValue = useCallback(function (newValue) {
248
- // console.log('new value in resource form', newValue); // eslint-disable-line
249
- setValueState(newValue);
250
- }, [setValueState]);
251
- var _useForm = useForm({
252
- fields: finalFields,
253
- value: value,
254
- postForm: postForm,
255
- setValue: setValue,
256
- onComplete: onSuccess,
257
- locales: locales
258
- }),
259
- fields = _useForm.fields,
260
- onSubmit = _useForm.onSubmit,
261
- status = _useForm.status,
262
- generalError = _useForm.generalError,
263
- errors = _useForm.errors;
264
-
265
- // Form action
266
- var modifyAction = isCreate ? resourceRoute('store') : resourceRoute('update', {
267
- id: item.id
268
- });
269
- var action = isDelete ? resourceRoute('destroy', {
270
- id: item.id
271
- }) : modifyAction;
272
- var defaultFormName = isDelete ? component || formComponent || null : component || formComponent || defaultComponent || 'normal';
273
-
274
- // Form component
275
- var FormComponent = getComponentFromName(defaultFormName, FormComponents, isDelete ? DeleteForm : component);
276
-
277
- // Lisen to item value change - this is important
278
- useEffect(function () {
279
- // console.log('get initial value from the top'); // eslint-disable-line
280
- setValue(getInitialValue());
281
- }, [getInitialValue, setValue]);
282
- return /*#__PURE__*/React.createElement(FormProvider, {
283
- value: value,
284
- setValue: setValue
285
- }, /*#__PURE__*/React.createElement(FormComponent, Object.assign({}, props, {
286
- status: status,
287
- resource: resource,
288
- item: item,
289
- fields: fields,
290
- generalError: generalError,
291
- errors: errors,
292
- action: action,
293
- onSubmit: onSubmit,
294
- isCreate: isCreate,
295
- value: value,
296
- onChange: setValue
297
- })));
298
- };
299
- ResourceForm.propTypes = propTypes$m;
300
- ResourceForm.defaultProps = defaultProps$m;
301
-
302
- var propTypes$l = {
303
- className: PropTypes$1.string,
304
- itemClassName: PropTypes$1.string,
305
- linkClassName: PropTypes$1.string
306
- };
307
- var defaultProps$l = {
308
- className: null,
309
- itemClassName: null,
310
- linkClassName: null
311
- };
312
- var AccountMenu = function AccountMenu(_ref) {
313
- var className = _ref.className,
314
- itemClassName = _ref.itemClassName,
315
- linkClassName = _ref.linkClassName;
316
- var route = useUrlGenerator();
317
- var user = useUser();
318
- var logout = useLogout();
319
- var onClickLogout = useCallback(function (e) {
320
- e.preventDefault();
321
- logout();
322
- }, [logout, route]);
323
- var items = useMemo(function () {
324
- return user !== null ? [{
325
- id: 'account',
326
- label: /*#__PURE__*/React.createElement(FormattedMessage, {
327
- id: "IuqEHB",
328
- defaultMessage: [{
329
- "type": 0,
330
- "value": "Account"
331
- }]
332
- }),
333
- href: route('panneau.account'),
334
- dropdown: [
335
- // {
336
- // label: (
337
- // <FormattedMessage
338
- // defaultMessage="Update account"
339
- // description="Menu label"
340
- // />
341
- // ),
342
- // href: route('panneau.account'),
343
- // },
344
- {
345
- label: /*#__PURE__*/React.createElement(FormattedMessage, {
346
- id: "REIcPg",
347
- defaultMessage: [{
348
- "type": 0,
349
- "value": "Logout"
350
- }]
351
- }),
352
- href: route('auth.logout'),
353
- onClick: onClickLogout
354
- }]
355
- }] : [{
356
- label: /*#__PURE__*/React.createElement(FormattedMessage, {
357
- id: "d0g58T",
358
- defaultMessage: [{
359
- "type": 0,
360
- "value": "Login"
361
- }]
362
- }),
363
- href: route('login')
364
- }];
365
- }, [user, route, onClickLogout]);
366
- return items !== null ? /*#__PURE__*/React.createElement(Menu, {
367
- className: className,
368
- itemClassName: itemClassName,
369
- linkClassName: linkClassName,
370
- items: items,
371
- dropdownAlign: "end"
372
- }) : null;
373
- };
374
- AccountMenu.propTypes = propTypes$l;
375
- AccountMenu.defaultProps = defaultProps$l;
376
-
377
- var propTypes$k = {
378
- className: PropTypes$1.string,
379
- itemClassName: PropTypes$1.string,
380
- linkClassName: PropTypes$1.string
381
- };
382
- var defaultProps$k = {
383
- className: null,
384
- itemClassName: null,
385
- linkClassName: null
386
- };
387
- var ResourcesMenu = function ResourcesMenu(_ref) {
388
- var className = _ref.className,
389
- itemClassName = _ref.itemClassName,
390
- linkClassName = _ref.linkClassName;
391
- var _useLocation = useLocation(),
392
- pathname = _useLocation.pathname;
393
- var resources = usePanneauResources();
394
- var resourceRoute = useResourceUrlGenerator();
395
- var items = useMemo(function () {
396
- return resources.filter(function (_ref2) {
397
- var _ref2$settings = _ref2.settings,
398
- _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
399
- _ref2$settings2$hideI = _ref2$settings2.hideInNavbar,
400
- hideInNavbar = _ref2$settings2$hideI === void 0 ? false : _ref2$settings2$hideI;
401
- return !hideInNavbar;
402
- }).map(function (it) {
403
- var url = resourceRoute(it, 'index');
404
- return {
405
- id: it.id,
406
- label: it.name,
407
- href: url,
408
- active: pathname.substr(0, url.length) === url
409
- };
410
- });
411
- }, [resources, pathname, resourceRoute]);
412
- return /*#__PURE__*/React.createElement(Menu, {
413
- items: items,
414
- className: className,
415
- itemClassName: itemClassName,
416
- linkClassName: linkClassName
417
- });
418
- };
419
- ResourcesMenu.propTypes = propTypes$k;
420
- ResourcesMenu.defaultProps = defaultProps$k;
421
-
422
- /* eslint-disable react/jsx-props-no-spreading */
423
- var propTypes$j = {};
424
- var defaultProps$j = {};
425
- var MainNavbar = function MainNavbar(props) {
426
- var _usePanneau = usePanneau(),
427
- name = _usePanneau.name;
428
- var _usePanneauColorSchem = usePanneauColorScheme(),
429
- background = _usePanneauColorSchem.background;
430
- var route = useUrlGenerator();
431
- var user = useUser();
432
- return /*#__PURE__*/React.createElement(Navbar, Object.assign({
433
- theme: background
434
- }, props), name !== null ? /*#__PURE__*/React.createElement(Link, {
435
- to: route('home'),
436
- className: "navbar-brand"
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
- }));
446
- };
447
- MainNavbar.propTypes = propTypes$j;
448
- MainNavbar.defaultProps = defaultProps$j;
449
-
450
- var propTypes$i = {
451
- children: PropTypes$1.node.isRequired,
452
- fullscreen: PropTypes$1.bool
453
- };
454
- var defaultProps$i = {
455
- fullscreen: false
456
- };
457
- var MainLayout = function MainLayout(_ref) {
458
- var _ref2;
459
- var children = _ref.children,
460
- fullscreen = _ref.fullscreen;
461
- var _usePanneauColorSchem = usePanneauColorScheme(),
462
- background = _usePanneauColorSchem.background,
463
- text = _usePanneauColorSchem.text;
464
- return /*#__PURE__*/React.createElement("div", {
465
- className: classNames(['d-flex', 'flex-column', 'min-vh-100'])
466
- }, /*#__PURE__*/React.createElement(MainNavbar, {
467
- className: classNames(['border-bottom', 'sticky-top', 'px-3'])
468
- }), /*#__PURE__*/React.createElement("div", {
469
- className: classNames(['flex-grow-1', (_ref2 = {
470
- 'd-flex flex-column': fullscreen
471
- }, _defineProperty(_ref2, "bg-".concat(background), background !== null), _defineProperty(_ref2, "text-".concat(text), text !== null), _ref2)])
472
- }, children));
473
- };
474
- MainLayout.propTypes = propTypes$i;
475
- MainLayout.defaultProps = defaultProps$i;
476
-
477
- var propTypes$h = {
478
- title: PropTypes.label,
479
- actions: PropTypes$1.node,
480
- small: PropTypes$1.bool,
481
- className: PropTypes$1.string,
482
- children: PropTypes$1.node
483
- };
484
- var defaultProps$h = {
485
- title: null,
486
- actions: null,
487
- small: false,
488
- className: null,
489
- children: null
490
- };
491
- var PageHeader = function PageHeader(_ref) {
492
- var _ref2;
493
- var title = _ref.title,
494
- actions = _ref.actions,
495
- small = _ref.small,
496
- className = _ref.className,
497
- children = _ref.children;
498
- // TODO: fix page header components
499
- // const { components } = usePanneau();
500
- var _usePanneauColorSchem = usePanneauColorScheme(),
501
- text = _usePanneauColorSchem.text,
502
- background = _usePanneauColorSchem.background;
503
- // console.log('page-header', components); // eslint-disable-line
504
-
505
- var inner = /*#__PURE__*/React.createElement("div", {
506
- className: "d-flex align-items-center flex-wrap"
507
- }, title !== null ? /*#__PURE__*/React.createElement("h1", {
508
- className: "mb-0"
509
- }, /*#__PURE__*/React.createElement(Label, null, title)) : null, actions !== null ? /*#__PURE__*/React.createElement("div", {
510
- className: "ms-auto"
511
- }, actions) : null);
512
- return /*#__PURE__*/React.createElement("div", {
513
- className: classNames(['py-4', (_ref2 = {}, _defineProperty(_ref2, "bg-".concat(background), background !== null), _defineProperty(_ref2, "text-".concat(text), text !== null), _defineProperty(_ref2, "border-bottom", background || text !== null), _defineProperty(_ref2, className, className !== null), _ref2)])
514
- }, /*#__PURE__*/React.createElement("div", {
515
- className: "container-sm"
516
- }, small ? /*#__PURE__*/React.createElement("div", {
517
- className: "row justify-content-center"
518
- }, /*#__PURE__*/React.createElement("div", {
519
- className: "col-12 col-md-8 col-lg-7"
520
- }, inner)) : inner), children);
521
- };
522
- PageHeader.propTypes = propTypes$h;
523
- PageHeader.defaultProps = defaultProps$h;
524
-
525
- var propTypes$g = {
526
- resource: PropTypes.resource.isRequired
527
- };
528
- var defaultProps$g = {};
529
- var ResourceCreatePage = function ResourceCreatePage(_ref) {
530
- var resource = _ref.resource;
531
- var history = useHistory();
532
- var _useLocation = useLocation(),
533
- search = _useLocation.search;
534
- var resourceRoute = useResourceUrlGenerator(resource);
535
- var onSuccess = useCallback(function () {
536
- history.push("".concat(resourceRoute('index'), "?created=true"));
537
- }, [history, resourceRoute]);
538
- var _useMemo = useMemo(function () {
539
- return parse(search);
540
- }, [search]),
541
- _useMemo$type = _useMemo.type,
542
- type = _useMemo$type === void 0 ? null : _useMemo$type;
543
- var resourceValues = useResourceValues(resource);
544
- return /*#__PURE__*/React.createElement(ResourceProvider, {
545
- resource: resource
546
- }, /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement(PageHeader, {
547
- title: /*#__PURE__*/React.createElement(FormattedMessage, {
548
- values: resourceValues,
549
- id: "6viUpq",
550
- defaultMessage: [{
551
- "type": 0,
552
- "value": "Create "
553
- }, {
554
- "type": 1,
555
- "value": "a_singular"
556
- }]
557
- }),
558
- small: true
559
- }), /*#__PURE__*/React.createElement("div", {
560
- className: "container-sm py-4"
561
- }, /*#__PURE__*/React.createElement("div", {
562
- className: "row justify-content-center"
563
- }, /*#__PURE__*/React.createElement("div", {
564
- className: "col-12 col-md-8 col-lg-7"
565
- }, /*#__PURE__*/React.createElement(ResourceForm, {
566
- resource: resource,
567
- type: type,
568
- onSuccess: onSuccess
569
- }))))));
570
- };
571
- ResourceCreatePage.propTypes = propTypes$g;
572
- ResourceCreatePage.defaultProps = defaultProps$g;
573
-
574
- // import Button from '../buttons/Button';
575
-
576
- var propTypes$f = {
577
- resource: PropTypes.resource.isRequired,
578
- itemId: PropTypes$1.string.isRequired
579
- };
580
- var defaultProps$f = {};
581
- var ResourceDeletePage = function ResourceDeletePage(_ref) {
582
- var resource = _ref.resource,
583
- itemId = _ref.itemId;
584
- var history = useHistory();
585
- var resourceRoute = useResourceUrlGenerator(resource);
586
- var _useResourceItem = useResourceItem(resource, itemId),
587
- item = _useResourceItem.item;
588
- var onSuccess = useCallback(function () {
589
- return history.push("".concat(resourceRoute('index'), "?deleted=true"));
590
- }, [history, resourceRoute]);
591
-
592
- // Navigate back
593
- var _ref2 = history || {},
594
- _ref2$entries = _ref2.entries,
595
- entries = _ref2$entries === void 0 ? [] : _ref2$entries;
596
- var previousEntry = entries !== null && entries.length > 1 ? entries[entries.length - 2] : null;
597
- var previous = (previousEntry === null || previousEntry === void 0 ? void 0 : previousEntry.pathname) || null;
598
- var resourceValues = useResourceValues(resource);
599
- return /*#__PURE__*/React.createElement(ResourceProvider, {
600
- resource: resource
601
- }, /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement(PageHeader, {
602
- title: /*#__PURE__*/React.createElement(FormattedMessage, {
603
- values: resourceValues,
604
- id: "zN5N/Q",
605
- defaultMessage: [{
606
- "type": 0,
607
- "value": "Delete "
608
- }, {
609
- "type": 1,
610
- "value": "a_singular"
611
- }]
612
- }),
613
- small: true
614
- }), /*#__PURE__*/React.createElement("div", {
615
- className: "container-sm py-4"
616
- }, /*#__PURE__*/React.createElement("div", {
617
- className: "row justify-content-center"
618
- }, /*#__PURE__*/React.createElement("div", {
619
- className: "col-12 col-md-8 col-lg-7"
620
- }, item !== null ? /*#__PURE__*/React.createElement(ResourceForm, {
621
- component: "",
622
- resource: resource,
623
- item: item,
624
- onSuccess: onSuccess,
625
- previous: previous,
626
- isDelete: true
627
- }) : null)))));
628
- };
629
- ResourceDeletePage.propTypes = propTypes$f;
630
- ResourceDeletePage.defaultProps = defaultProps$f;
631
-
632
- // import Button from '../buttons/Button';
633
-
634
- var propTypes$e = {
635
- resource: PropTypes.resource.isRequired,
636
- itemId: PropTypes$1.string.isRequired
637
- };
638
- var defaultProps$e = {};
639
- var ResourceEditPage = function ResourceEditPage(_ref) {
640
- var resource = _ref.resource,
641
- itemId = _ref.itemId;
642
- var _useResourceItem = useResourceItem(resource, itemId),
643
- item = _useResourceItem.item;
644
- var _ref2 = item || {},
645
- _ref2$type = _ref2.type,
646
- type = _ref2$type === void 0 ? null : _ref2$type;
647
- var _useState = useState(item),
648
- _useState2 = _slicedToArray(_useState, 2),
649
- editItem = _useState2[0],
650
- setEditItem = _useState2[1];
651
- var onSuccess = useCallback(function (newItem) {
652
- return setEditItem(newItem);
653
- }, []);
654
- useEffect(function () {
655
- setEditItem(item);
656
- }, [item, setEditItem]);
657
- var resourceValues = useResourceValues(resource);
658
- return /*#__PURE__*/React.createElement(ResourceProvider, {
659
- resource: resource
660
- }, /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement(PageHeader, {
661
- title: /*#__PURE__*/React.createElement(FormattedMessage, {
662
- values: resourceValues,
663
- id: "mCfzkJ",
664
- defaultMessage: [{
665
- "type": 0,
666
- "value": "Edit "
667
- }, {
668
- "type": 1,
669
- "value": "a_singular"
670
- }]
671
- }),
672
- small: true
673
- }), /*#__PURE__*/React.createElement("div", {
674
- className: "container-sm py-4"
675
- }, /*#__PURE__*/React.createElement("div", {
676
- className: "row justify-content-center"
677
- }, /*#__PURE__*/React.createElement("div", {
678
- className: "col-12 col-md-8 col-lg-7"
679
- }, editItem !== null ? /*#__PURE__*/React.createElement(ResourceForm, {
680
- resource: resource,
681
- item: editItem,
682
- type: type,
683
- onSuccess: onSuccess
684
- }) : null)))));
685
- };
686
- ResourceEditPage.propTypes = propTypes$e;
687
- ResourceEditPage.defaultProps = defaultProps$e;
688
-
689
- var propTypes$d = {
690
- resource: PropTypes.resource.isRequired,
691
- className: PropTypes$1.string
692
- };
693
- var defaultProps$d = {
694
- className: null
695
- };
696
- var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
697
- var resource = _ref.resource,
698
- className = _ref.className;
699
- var _resource$types = resource.types,
700
- types = _resource$types === void 0 ? null : _resource$types;
701
- // const intl = useIntl();
702
- var resourceRoute = useResourceUrlGenerator(resource);
703
- var resourceValues = useResourceValues(resource);
704
- var _useState = useState(false),
705
- _useState2 = _slicedToArray(_useState, 2),
706
- dropdownOpened = _useState2[0],
707
- setDropdownOpened = _useState2[1];
708
- var onClickDropdown = useCallback(function (e) {
709
- e.preventDefault();
710
- setDropdownOpened(function (opened) {
711
- return !opened;
712
- });
713
- }, [setDropdownOpened]);
714
- var finalTypes = types !== null ? types.filter(function (_ref2) {
715
- var _ref2$settings = _ref2.settings,
716
- _ref2$settings2 = _ref2$settings === void 0 ? {} : _ref2$settings,
717
- _ref2$settings2$canCr = _ref2$settings2.canCreate,
718
- canCreate = _ref2$settings2$canCr === void 0 ? true : _ref2$settings2$canCr;
719
- return canCreate;
720
- }) : null;
721
- var hasMultipleTypes = finalTypes !== null && finalTypes.length > 1;
722
- var onDropdownClickOutside = useCallback(function () {
723
- setDropdownOpened(false);
724
- }, [setDropdownOpened]);
725
- var button = /*#__PURE__*/React.createElement(Button, {
726
- href: !hasMultipleTypes ? "".concat(resourceRoute('create')).concat(finalTypes !== null && finalTypes.length === 1 ? "?type=".concat(finalTypes[0].id) : '') : '#',
727
- size: "lg",
728
- theme: "primary",
729
- className: classNames([_defineProperty({
730
- 'dropdown-toggle': hasMultipleTypes
731
- }, className, className !== null)]),
732
- onClick: hasMultipleTypes ? onClickDropdown : null
733
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
734
- values: resourceValues,
735
- id: "l+ddDH",
736
- defaultMessage: [{
737
- "type": 0,
738
- "value": "Create "
739
- }, {
740
- "type": 1,
741
- "value": "a_singular"
742
- }]
743
- }));
744
- return hasMultipleTypes ? /*#__PURE__*/React.createElement("div", {
745
- className: classNames(['dropdown', {
746
- show: dropdownOpened
747
- }])
748
- }, button, /*#__PURE__*/React.createElement(Dropdown, {
749
- items: finalTypes.map(function (it) {
750
- return {
751
- id: it.id,
752
- label: it.name,
753
- href: "".concat(resourceRoute('create'), "?type=").concat(it.id)
754
- };
755
- }),
756
- visible: dropdownOpened,
757
- align: "end",
758
- onClickOutside: onDropdownClickOutside
759
- })) : button;
760
- };
761
- ResourceCreateButtom.propTypes = propTypes$d;
762
- ResourceCreateButtom.defaultProps = defaultProps$d;
763
-
764
- var _excluded$3 = ["component", "name", "groupLabel"];
765
- var propTypes$c = {
766
- filters: PropTypes$1.arrayOf(PropTypes$1.shape({
767
- id: PropTypes$1.string.isRequired,
768
- component: PropTypes$1.string.isRequired
769
- })),
770
- value: PropTypes$1.object,
771
- // eslint-disable-line react/forbid-prop-types
772
- onChange: PropTypes$1.func,
773
- onReset: PropTypes$1.func,
774
- withContainer: PropTypes$1.bool,
775
- withReset: PropTypes$1.bool,
776
- defaultValue: PropTypes$1.objectOf(PropTypes$1.object),
777
- // eslint-disable-line react/forbid-prop-types
778
- className: PropTypes$1.string
779
- };
780
- var defaultProps$c = {
781
- filters: [],
782
- value: null,
783
- onChange: null,
784
- onReset: null,
785
- withContainer: false,
786
- withReset: true,
787
- defaultValue: {
788
- page: null
789
- },
790
- className: null
791
- };
792
- var ResourceFilters = function ResourceFilters(_ref) {
793
- var filters = _ref.filters,
794
- value = _ref.value,
795
- onChange = _ref.onChange,
796
- onReset = _ref.onReset,
797
- withContainer = _ref.withContainer,
798
- withReset = _ref.withReset,
799
- defaultValue = _ref.defaultValue,
800
- className = _ref.className;
801
- var FilterComponents = useFiltersComponents();
802
- var _usePanneauColorSchem = usePanneauColorScheme(),
803
- background = _usePanneauColorSchem.background;
804
- var currentFilters = filters || [];
805
- var onFiltersReset = useCallback(function () {
806
- if (onReset !== null) {
807
- onReset(null);
808
- }
809
- }, [onReset]);
810
- var hasActiveFilter = (currentFilters || []).reduce(function (isActive, item) {
811
- if (value !== null && value[item.name]) {
812
- return true;
813
- }
814
- return isActive;
815
- }, false);
816
-
817
- // console.log('value', value);
818
-
819
- return /*#__PURE__*/React.createElement(Navbar, {
820
- className: classNames([_defineProperty({
821
- 'navbar-expand-md': withContainer
822
- }, className, className !== null), 'justify-content-start', 'align-items-start', 'flex-column', 'flex-md-row']),
823
- theme: background,
824
- withoutCollapse: true
825
- }, currentFilters.map(function (_ref3, index) {
826
- var component = _ref3.component,
827
- name = _ref3.name,
828
- groupLabel = _ref3.groupLabel,
829
- filterProps = _objectWithoutProperties(_ref3, _excluded$3);
830
- var FilterComponent = getComponentFromName(component, FilterComponents, null);
831
- var filterValue = value !== null && value[name] ? value[name] : null;
832
- var onFilterChange = useCallback(function (newFilterValue) {
833
- if (name !== null && onChange !== null) {
834
- onChange(_objectSpread(_objectSpread({}, value), {}, _defineProperty({}, name, newFilterValue), defaultValue));
835
- }
836
- }, [onChange, name, value, defaultValue]);
837
- var onFilterClear = useCallback(function () {
838
- if (name !== null && onChange !== null) {
839
- var _ref4 = value || {};
840
- _ref4[name];
841
- var newValue = _objectWithoutProperties(_ref4, [name].map(_toPropertyKey));
842
- onChange(_objectSpread(_objectSpread({}, newValue), defaultValue));
843
- }
844
- }, [onChange, name, value, defaultValue]);
845
- return FilterComponent !== null ? /*#__PURE__*/React.createElement(FormGroup, {
846
- key: "filter-".concat(name, "-").concat(index + 1),
847
- label: groupLabel,
848
- className: "me-4"
849
- }, /*#__PURE__*/React.createElement(FilterComponent, Object.assign({}, filterProps, {
850
- value: filterValue,
851
- onChange: onFilterChange,
852
- onClear: onFilterClear
853
- }))) : null;
854
- }), withReset && hasActiveFilter && currentFilters.length > 0 ? /*#__PURE__*/React.createElement(Button, {
855
- theme: "primary",
856
- onClick: onFiltersReset
857
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
858
- icon: faUndo
859
- })) : null);
860
- };
861
- ResourceFilters.propTypes = propTypes$c;
862
- ResourceFilters.defaultProps = defaultProps$c;
863
-
864
- var _excluded$2 = ["component", "showPagination", "filters"],
865
- _excluded2$1 = ["page"];
866
- var propTypes$b = {
867
- resource: PropTypes.resource.isRequired,
868
- query: PropTypes$1.object,
869
- // eslint-disable-line react/forbid-prop-types
870
- paginated: PropTypes$1.bool,
871
- baseUrl: PropTypes$1.string,
872
- component: PropTypes$1.oneOfType([PropTypes$1.elementType, PropTypes$1.string]),
873
- componentProps: PropTypes$1.object,
874
- // eslint-disable-line react/forbid-prop-types
875
- onQueryChange: PropTypes$1.func,
876
- onQueryReset: PropTypes$1.func
877
- };
878
- var defaultProps$b = {
879
- query: null,
880
- paginated: true,
881
- component: null,
882
- baseUrl: null,
883
- componentProps: null,
884
- onQueryChange: null,
885
- onQueryReset: null
886
- };
887
- var ResourceItemsList = function ResourceItemsList(_ref) {
888
- var resource = _ref.resource,
889
- query = _ref.query,
890
- baseUrl = _ref.baseUrl,
891
- onQueryChange = _ref.onQueryChange,
892
- onQueryReset = _ref.onQueryReset,
893
- paginated = _ref.paginated;
894
- var _resource$index = resource.index,
895
- _resource$index2 = _resource$index === void 0 ? {} : _resource$index,
896
- _resource$index2$comp = _resource$index2.component,
897
- listComponent = _resource$index2$comp === void 0 ? null : _resource$index2$comp,
898
- _resource$index2$show = _resource$index2.showPagination,
899
- showPagination = _resource$index2$show === void 0 ? true : _resource$index2$show,
900
- _resource$index2$filt = _resource$index2.filters,
901
- filters = _resource$index2$filt === void 0 ? null : _resource$index2$filt,
902
- listProps = _objectWithoutProperties(_resource$index2, _excluded$2);
903
- var _usePanneauColorSchem = usePanneauColorScheme(),
904
- _usePanneauColorSchem2 = _usePanneauColorSchem.background,
905
- theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2;
906
- var ListComponents = useListsComponents();
907
- var _useMemo = useMemo(function () {
908
- var _ref2 = query || {},
909
- _ref2$page = _ref2.page,
910
- currentPage = _ref2$page === void 0 ? 1 : _ref2$page,
911
- rest = _objectWithoutProperties(_ref2, _excluded2$1);
912
- return [currentPage, rest];
913
- }, [query]),
914
- _useMemo2 = _slicedToArray(_useMemo, 2),
915
- page = _useMemo2[0],
916
- queryWithoutPage = _useMemo2[1];
917
- var itemsProps = useResourceItems(resource, queryWithoutPage, paginated ? parseInt(page, 10) : null);
918
- var _ref3 = itemsProps || {},
919
- _ref3$lastPage = _ref3.lastPage,
920
- lastPage = _ref3$lastPage === void 0 ? 0 : _ref3$lastPage,
921
- _ref3$total = _ref3.total,
922
- total = _ref3$total === void 0 ? 0 : _ref3$total;
923
- var ListComponent = getComponentFromName(listComponent || 'table', ListComponents);
924
- return /*#__PURE__*/React.createElement(React.Fragment, null, filters !== null ? /*#__PURE__*/React.createElement(ResourceFilters, {
925
- filters: filters,
926
- value: query,
927
- onChange: onQueryChange,
928
- onReset: onQueryReset
929
- }) : null, paginated && showPagination ? /*#__PURE__*/React.createElement(Pagination, {
930
- page: page,
931
- lastPage: lastPage,
932
- total: total,
933
- url: baseUrl,
934
- query: query,
935
- className: "mt-1 mb-1"
936
- }) : null, ListComponent !== null ? /*#__PURE__*/React.createElement(ListComponent, Object.assign({}, itemsProps, listProps, {
937
- resource: resource,
938
- baseUrl: baseUrl,
939
- query: query,
940
- onQueryChange: onQueryChange,
941
- onQueryReset: onQueryReset,
942
- theme: theme
943
- })) : null, paginated && showPagination ? /*#__PURE__*/React.createElement(Pagination, {
944
- page: page,
945
- lastPage: lastPage,
946
- total: total,
947
- url: baseUrl,
948
- query: query,
949
- className: "mt-4 mb-1"
950
- }) : null);
951
- };
952
- ResourceItemsList.propTypes = propTypes$b;
953
- ResourceItemsList.defaultProps = defaultProps$b;
954
-
955
- var _excluded$1 = ["id", "component"];
956
- var propTypes$a = {
957
- resource: PropTypes.resource.isRequired,
958
- defaultActions: PropTypes$1.arrayOf(PropTypes$1.object) // eslint-disable-line react/forbid-prop-types
959
- };
960
-
961
- var defaultProps$a = {
962
- defaultActions: ['create']
963
- };
964
- var ResourceIndexPage = function ResourceIndexPage(_ref) {
965
- var resource = _ref.resource,
966
- defaultActions = _ref.defaultActions;
967
- var name = resource.name,
968
- _resource$settings = resource.settings,
969
- settings = _resource$settings === void 0 ? {} : _resource$settings,
970
- _resource$index = resource.index,
971
- index = _resource$index === void 0 ? {} : _resource$index;
972
- var _ref2 = settings || {},
973
- _ref2$canCreate = _ref2.canCreate,
974
- canCreate = _ref2$canCreate === void 0 ? true : _ref2$canCreate,
975
- _ref2$indexIsPaginate = _ref2.indexIsPaginated,
976
- paginated = _ref2$indexIsPaginate === void 0 ? false : _ref2$indexIsPaginate;
977
- var _ref3 = index || {},
978
- _ref3$actions = _ref3.actions,
979
- actions = _ref3$actions === void 0 ? null : _ref3$actions;
980
- var finalActions = useMemo(function () {
981
- return (actions || defaultActions.filter(function (it) {
982
- return it !== 'create' || canCreate;
983
- })).map(function (it) {
984
- return it === 'create' ? {
985
- id: 'create',
986
- component: ResourceCreateButtom,
987
- size: 'lg',
988
- theme: 'primary'
989
- } : it;
990
- });
991
- }, [canCreate, actions]);
992
- var resourceValues = useResourceValues(resource);
993
- var componentsManager = useComponentsManager();
994
- var _useLocation = useLocation(),
995
- search = _useLocation.search;
996
- var history = useHistory();
997
- var query = useMemo(function () {
998
- return parse(search);
999
- }, [search]);
1000
- var listQuery = useMemo(function () {
1001
- return query;
1002
- }, [query]); // TODO: omit routes
1003
- var _ref4 = query || {},
1004
- _ref4$created = _ref4.created,
1005
- created = _ref4$created === void 0 ? false : _ref4$created,
1006
- _ref4$deleted = _ref4.deleted,
1007
- deleted = _ref4$deleted === void 0 ? false : _ref4$deleted;
1008
- var resourceRoute = useResourceUrlGenerator(resource);
1009
- var url = resourceRoute('index');
1010
- var onQueryChange = useCallback(function (submitQuery) {
1011
- var newQuery = submitQuery !== null ? Object.keys(submitQuery).reduce(function (currentQuery, key) {
1012
- var value = submitQuery[key];
1013
- return value !== null ? _objectSpread(_objectSpread({}, currentQuery), {}, _defineProperty({}, key, value)) : currentQuery;
1014
- }, null) : null;
1015
- history.push("".concat(url).concat(newQuery !== null ? "?".concat(stringify(newQuery, {
1016
- arrayFormat: 'bracket'
1017
- })) : ''));
1018
- }, [history, url, query, paginated]);
1019
- var onQueryReset = useCallback(function () {
1020
- var queryString = stringify(null, {
1021
- arrayFormat: 'bracket'
1022
- });
1023
- history.push("".concat(url, "?").concat(queryString));
1024
- }, [history, url, paginated]);
1025
- var onClickCloseAlert = useCallback(function () {
1026
- history.replace(url);
1027
- }, [history, url]);
1028
- return /*#__PURE__*/React.createElement(ResourceProvider, {
1029
- resource: resource
1030
- }, /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement(PageHeader, {
1031
- title: name,
1032
- actions: finalActions.length > 0 ? /*#__PURE__*/React.createElement("div", {
1033
- className: "d-flex align-items-center"
1034
- }, finalActions.map(function (_ref5) {
1035
- var id = _ref5.id,
1036
- _ref5$component = _ref5.component,
1037
- component = _ref5$component === void 0 ? Button : _ref5$component,
1038
- actionProps = _objectWithoutProperties(_ref5, _excluded$1);
1039
- var ActionComponent = isString(component) ? componentsManager.getComponent(component) : component;
1040
- return ActionComponent !== null ? /*#__PURE__*/React.createElement(ActionComponent, Object.assign({
1041
- key: "action-".concat(id)
1042
- }, actionProps, ActionComponent !== Button ? {
1043
- resource: resource,
1044
- query: query,
1045
- onQueryChange: onQueryChange
1046
- } : {})) : null;
1047
- })) : null
1048
- }), /*#__PURE__*/React.createElement("div", {
1049
- className: classNames(['container-sm py-4'])
1050
- }, created ? /*#__PURE__*/React.createElement(Alert, {
1051
- className: "mb-4",
1052
- onClose: onClickCloseAlert
1053
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
1054
- values: resourceValues,
1055
- id: "bfP/d8",
1056
- defaultMessage: [{
1057
- "type": 1,
1058
- "value": "The_singular"
1059
- }, {
1060
- "type": 0,
1061
- "value": " has been created."
1062
- }]
1063
- })) : null, deleted ? /*#__PURE__*/React.createElement(Alert, {
1064
- className: "mb-4",
1065
- onClose: onClickCloseAlert
1066
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
1067
- values: resourceValues,
1068
- id: "dkRdks",
1069
- defaultMessage: [{
1070
- "type": 1,
1071
- "value": "The_singular"
1072
- }, {
1073
- "type": 0,
1074
- "value": " has been deleted."
1075
- }]
1076
- })) : null, /*#__PURE__*/React.createElement(ResourceItemsList, {
1077
- resource: resource,
1078
- baseUrl: url,
1079
- query: listQuery,
1080
- paginated: paginated,
1081
- onQueryChange: onQueryChange,
1082
- onQueryReset: onQueryReset
1083
- }))));
1084
- };
1085
- ResourceIndexPage.propTypes = propTypes$a;
1086
- ResourceIndexPage.defaultProps = defaultProps$a;
1087
-
1088
- var propTypes$9 = {
1089
- resource: PropTypes.resource.isRequired
1090
- };
1091
- var defaultProps$9 = {};
1092
- var ResourceShowPage = function ResourceShowPage(_ref) {
1093
- var resource = _ref.resource;
1094
- return /*#__PURE__*/React.createElement(ResourceProvider, {
1095
- resource: resource
1096
- }, /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement(PageHeader, {
1097
- title: resource === null || resource === void 0 ? void 0 : resource.name
1098
- }), /*#__PURE__*/React.createElement("div", {
1099
- className: "container-sm"
1100
- }, "Show page")));
1101
- };
1102
- ResourceShowPage.propTypes = propTypes$9;
1103
- ResourceShowPage.defaultProps = defaultProps$9;
1104
-
1105
- /* eslint-disable react/jsx-props-no-spreading */
1106
- var propTypes$8 = {};
1107
- var defaultProps$8 = {};
1108
- var HomePage = function HomePage() {
1109
- var route = useUrlGenerator();
1110
- var resources = usePanneauResources();
1111
- var visibleResources = resources.filter(function (_ref) {
1112
- var _ref$settings = _ref.settings,
1113
- _ref$settings2 = _ref$settings === void 0 ? {} : _ref$settings,
1114
- _ref$settings2$hideIn = _ref$settings2.hideInNavbar,
1115
- hideInNavbar = _ref$settings2$hideIn === void 0 ? false : _ref$settings2$hideIn;
1116
- return !hideInNavbar;
1117
- });
1118
- return /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement("div", {
1119
- className: "container-sm py-4"
1120
- }, visibleResources.map(function (resource) {
1121
- var _ref2 = resource || {},
1122
- resourceId = _ref2.id;
1123
- var resourceValues = useResourceValues(resource);
1124
- return /*#__PURE__*/React.createElement(Link, {
1125
- className: "d-block my-2",
1126
- key: "resource-link-".concat(resourceId),
1127
- to: route('resources.index', {
1128
- resource: resourceId
1129
- })
1130
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
1131
- values: resourceValues,
1132
- id: "FntHPK",
1133
- defaultMessage: [{
1134
- "type": 0,
1135
- "value": "View "
1136
- }, {
1137
- "type": 1,
1138
- "value": "the_plural"
1139
- }]
1140
- }));
1141
- })));
1142
- };
1143
- HomePage.propTypes = propTypes$8;
1144
- HomePage.defaultProps = defaultProps$8;
1145
-
1146
- var propTypes$7 = {};
1147
- var defaultProps$7 = {};
1148
- var AccountPage = function AccountPage() {
1149
- return /*#__PURE__*/React.createElement(MainLayout, null, /*#__PURE__*/React.createElement("div", {
1150
- className: "container-sm py-4"
1151
- }, "Account page"));
1152
- };
1153
- AccountPage.propTypes = propTypes$7;
1154
- AccountPage.defaultProps = defaultProps$7;
1155
-
1156
- /* eslint-disable react/jsx-props-no-spreading */
1157
- var propTypes$6 = {
1158
- fields: PropTypes.fields,
1159
- className: PropTypes$1.string,
1160
- onSuccess: PropTypes$1.func
1161
- };
1162
- var defaultProps$6 = {
1163
- fields: [{
1164
- name: 'email',
1165
- type: 'email',
1166
- size: 'lg',
1167
- label: /*#__PURE__*/React.createElement(FormattedMessage, {
1168
- id: "LI0Gz4",
1169
- defaultMessage: [{
1170
- "type": 0,
1171
- "value": "Email"
1172
- }]
1173
- })
1174
- }, {
1175
- name: 'password',
1176
- type: 'password',
1177
- size: 'lg',
1178
- label: /*#__PURE__*/React.createElement(FormattedMessage, {
1179
- id: "4yfet+",
1180
- defaultMessage: [{
1181
- "type": 0,
1182
- "value": "Password"
1183
- }]
1184
- })
1185
- }],
1186
- className: null,
1187
- onSuccess: null
1188
- };
1189
- var LoginForm = function LoginForm(_ref) {
1190
- var formFields = _ref.fields,
1191
- className = _ref.className,
1192
- onSuccess = _ref.onSuccess;
1193
- var url = useUrlGenerator();
1194
- var _useAuth = useAuth(),
1195
- login = _useAuth.login;
1196
- var postForm = useCallback(function (action, _ref2) {
1197
- var email = _ref2.email,
1198
- password = _ref2.password;
1199
- return login(email, password);
1200
- }, [login]);
1201
- var _useForm = useForm({
1202
- fields: formFields,
1203
- postForm: postForm,
1204
- onComplete: onSuccess
1205
- }),
1206
- value = _useForm.value,
1207
- setValue = _useForm.setValue,
1208
- fields = _useForm.fields,
1209
- onSubmit = _useForm.onSubmit,
1210
- status = _useForm.status,
1211
- generalError = _useForm.generalError,
1212
- errors = _useForm.errors;
1213
- var NormalForm = useFormComponent('normal');
1214
- return /*#__PURE__*/React.createElement(NormalForm, {
1215
- action: url('auth.login'),
1216
- method: "post",
1217
- fields: fields,
1218
- onSubmit: onSubmit,
1219
- className: className,
1220
- status: status,
1221
- generalError: generalError,
1222
- errors: errors,
1223
- value: value,
1224
- onChange: setValue,
1225
- submitButtonLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
1226
- id: "g6qbbX",
1227
- defaultMessage: [{
1228
- "type": 0,
1229
- "value": "Log in"
1230
- }]
1231
- })
1232
- });
1233
- };
1234
- LoginForm.propTypes = propTypes$6;
1235
- LoginForm.defaultProps = defaultProps$6;
1236
-
1237
- var propTypes$5 = {
1238
- children: PropTypes$1.node.isRequired,
1239
- fullscreen: PropTypes$1.bool
1240
- };
1241
- var defaultProps$5 = {
1242
- fullscreen: false
1243
- };
1244
- var GuestLayout = function GuestLayout(_ref) {
1245
- var _classNames;
1246
- var fullscreen = _ref.fullscreen,
1247
- children = _ref.children;
1248
- var _usePanneauColorSchem = usePanneauColorScheme(),
1249
- background = _usePanneauColorSchem.background,
1250
- text = _usePanneauColorSchem.text;
1251
- return /*#__PURE__*/React.createElement("div", {
1252
- className: classNames({
1253
- 'd-flex flex-column min-vh-100': fullscreen
1254
- })
1255
- }, /*#__PURE__*/React.createElement(MainNavbar, {
1256
- className: classNames(['sticky-top', 'px-3'])
1257
- }), /*#__PURE__*/React.createElement("div", {
1258
- className: classNames((_classNames = {
1259
- 'd-flex flex-column flex-grow-1': fullscreen
1260
- }, _defineProperty(_classNames, "bg-".concat(background), background !== null), _defineProperty(_classNames, "text-".concat(text), text !== null), _classNames))
1261
- }, /*#__PURE__*/React.createElement("div", {
1262
- className: classNames({
1263
- 'w-100 my-auto': fullscreen
1264
- })
1265
- }, children)));
1266
- };
1267
- GuestLayout.propTypes = propTypes$5;
1268
- GuestLayout.defaultProps = defaultProps$5;
1269
-
1270
- /* eslint-disable react/jsx-props-no-spreading */
1271
- var propTypes$4 = {};
1272
- var defaultProps$4 = {};
1273
- var LoginPage = function LoginPage() {
1274
- var route = useUrlGenerator();
1275
- var onSuccess = useCallback(function () {
1276
- window.location.href = route('home');
1277
- }, [route]);
1278
- return /*#__PURE__*/React.createElement(GuestLayout, {
1279
- fullscreen: true
1280
- }, /*#__PURE__*/React.createElement("div", {
1281
- className: "container-sm py-4"
1282
- }, /*#__PURE__*/React.createElement("div", {
1283
- className: "row justify-content-center"
1284
- }, /*#__PURE__*/React.createElement("div", {
1285
- className: "col-12 col-sm-8 col-md-6"
1286
- }, /*#__PURE__*/React.createElement("h1", {
1287
- className: "mb-4"
1288
- }, /*#__PURE__*/React.createElement(FormattedMessage, {
1289
- id: "AeOZq+",
1290
- defaultMessage: [{
1291
- "type": 0,
1292
- "value": "Login"
1293
- }]
1294
- })), /*#__PURE__*/React.createElement(LoginForm, {
1295
- onSuccess: onSuccess
1296
- })))));
1297
- };
1298
- LoginPage.propTypes = propTypes$4;
1299
- LoginPage.defaultProps = defaultProps$4;
1300
-
1301
- var messages = defineMessages({
1302
- metaTitle401: {
1303
- "id": "HOobY2",
1304
- "defaultMessage": [{
1305
- "type": 0,
1306
- "value": "Error 401"
1307
- }]
1308
- },
1309
- title401: {
1310
- "id": "6nwWPR",
1311
- "defaultMessage": [{
1312
- "type": 0,
1313
- "value": "Error 401"
1314
- }]
1315
- },
1316
- description401: {
1317
- "id": "82P2dS",
1318
- "defaultMessage": [{
1319
- "type": 0,
1320
- "value": "You are not authorized to access this page."
1321
- }]
1322
- },
1323
- metaTitle403: {
1324
- "id": "+6cCPF",
1325
- "defaultMessage": [{
1326
- "type": 0,
1327
- "value": "Error 403"
1328
- }]
1329
- },
1330
- title403: {
1331
- "id": "Pih2UO",
1332
- "defaultMessage": [{
1333
- "type": 0,
1334
- "value": "Error 403"
1335
- }]
1336
- },
1337
- description403: {
1338
- "id": "8HFiMs",
1339
- "defaultMessage": [{
1340
- "type": 0,
1341
- "value": "Access to this page is forbidden"
1342
- }]
1343
- },
1344
- metaTitle404: {
1345
- "id": "US/AMe",
1346
- "defaultMessage": [{
1347
- "type": 0,
1348
- "value": "Error 404"
1349
- }]
1350
- },
1351
- title404: {
1352
- "id": "6Ie+vL",
1353
- "defaultMessage": [{
1354
- "type": 0,
1355
- "value": "Error 404"
1356
- }]
1357
- },
1358
- description404: {
1359
- "id": "wKPI1y",
1360
- "defaultMessage": [{
1361
- "type": 0,
1362
- "value": "This page doesn’t exist"
1363
- }]
1364
- },
1365
- metaTitle500: {
1366
- "id": "ejwBSw",
1367
- "defaultMessage": [{
1368
- "type": 0,
1369
- "value": "Error 500"
1370
- }]
1371
- },
1372
- title500: {
1373
- "id": "owrRHV",
1374
- "defaultMessage": [{
1375
- "type": 0,
1376
- "value": "Error 500"
1377
- }]
1378
- },
1379
- description500: {
1380
- "id": "yALN2p",
1381
- "defaultMessage": [{
1382
- "type": 0,
1383
- "value": "There was an error"
1384
- }]
1385
- },
1386
- gotoHome: {
1387
- "id": "hezcGl",
1388
- "defaultMessage": [{
1389
- "type": 0,
1390
- "value": "Go to home page"
1391
- }]
1392
- }
1393
- });
1394
- var propTypes$3 = {
1395
- statusCode: PropTypes.statusCode
1396
- };
1397
- var defaultProps$3 = {
1398
- statusCode: null
1399
- };
1400
- var ErrorPage = function ErrorPage(_ref) {
1401
- var statusCode = _ref.statusCode;
1402
- return /*#__PURE__*/React.createElement(GuestLayout, {
1403
- fullscreen: true
1404
- }, /*#__PURE__*/React.createElement("div", {
1405
- className: "container-sm py-4"
1406
- }, /*#__PURE__*/React.createElement("div", {
1407
- className: "row justify-content-center"
1408
- }, /*#__PURE__*/React.createElement("div", {
1409
- className: "col-12 col-sm-8 col-md-6"
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)]))))));
1411
- };
1412
- ErrorPage.propTypes = propTypes$3;
1413
- ErrorPage.defaultProps = defaultProps$3;
1414
-
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;
1436
- var resourceId = resource.id,
1437
- _resource$pages = resource.pages,
1438
- pages = _resource$pages === void 0 ? {} : _resource$pages,
1439
- _resource$extraRoutes = resource.extraRoutes,
1440
- extraRoutes = _resource$extraRoutes === void 0 ? [] : _resource$extraRoutes;
1441
- var route = useUrlGenerator();
1442
- var componentsManager = useComponentsManager();
1443
-
1444
- // Load custom pages from resource
1445
- var _ref2 = pages || {},
1446
- _ref2$index = _ref2.index,
1447
- indexPage = _ref2$index === void 0 ? null : _ref2$index,
1448
- _ref2$show = _ref2.show,
1449
- showPage = _ref2$show === void 0 ? null : _ref2$show,
1450
- _ref2$create = _ref2.create,
1451
- createPage = _ref2$create === void 0 ? null : _ref2$create,
1452
- _ref2$edit = _ref2.edit,
1453
- editPage = _ref2$edit === void 0 ? null : _ref2$edit,
1454
- _ref2$delete = _ref2["delete"],
1455
- deletePage = _ref2$delete === void 0 ? null : _ref2$delete;
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, {
1483
- path: route('resources.index', {
1484
- resource: resourceId
1485
- }),
1486
- exact: true,
1487
- render: function render() {
1488
- return /*#__PURE__*/React.createElement(ResourceIndexComponent, {
1489
- resource: resource
1490
- });
1491
- }
1492
- }), /*#__PURE__*/React.createElement(Route, {
1493
- path: route('resources.create', {
1494
- resource: resourceId
1495
- }),
1496
- exact: true,
1497
- render: function render() {
1498
- return /*#__PURE__*/React.createElement(ResourceCreateComponent, {
1499
- resource: resource
1500
- });
1501
- }
1502
- }), /*#__PURE__*/React.createElement(Route, {
1503
- path: route('resources.show', {
1504
- resource: resourceId,
1505
- id: ':id'
1506
- }),
1507
- exact: true,
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
- }
1515
- }), /*#__PURE__*/React.createElement(Route, {
1516
- path: route('resources.edit', {
1517
- resource: resourceId,
1518
- id: ':id'
1519
- }),
1520
- exact: true,
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
- }
1528
- }), /*#__PURE__*/React.createElement(Route, {
1529
- path: route('resources.delete', {
1530
- resource: resourceId,
1531
- id: ':id'
1532
- }),
1533
- exact: true,
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
- }));
1542
- };
1543
- ResourceRoutes.propTypes = propTypes$2;
1544
- ResourceRoutes.defaultProps = defaultProps$2;
1545
-
1546
- var propTypes$1 = {
1547
- statusCode: PropTypes.statusCode
1548
- };
1549
- var defaultProps$1 = {
1550
- statusCode: null
1551
- };
1552
- var PanneauRoutes = function PanneauRoutes(_ref) {
1553
- var initialStatusCode = _ref.statusCode;
1554
- var _usePanneau = usePanneau(),
1555
- _usePanneau$pages = _usePanneau.pages,
1556
- pages = _usePanneau$pages === void 0 ? {} : _usePanneau$pages;
1557
- var routes = useRoutes();
1558
- var _useLocation = useLocation(),
1559
- pathname = _useLocation.pathname; // search
1560
-
1561
- var _useState = useState({
1562
- statusCode: initialStatusCode,
1563
- pathname: pathname
1564
- }),
1565
- _useState2 = _slicedToArray(_useState, 2),
1566
- _useState2$ = _useState2[0],
1567
- statusCode = _useState2$.statusCode,
1568
- initialPathname = _useState2$.pathname,
1569
- setInitialRequest = _useState2[1];
1570
- var user = useUser();
1571
- var route = useUrlGenerator();
1572
- var resources = usePanneauResources();
1573
-
1574
- // const nextUrl = useMemo(() => {
1575
- // const query = parseQuery(search);
1576
- // return query !== null ? query.next || null : null;
1577
- // }, [search]);
1578
-
1579
- useEffect(function () {
1580
- if (pathname !== initialPathname) {
1581
- setInitialRequest({
1582
- pathname: pathname,
1583
- statusCode: null
1584
- });
1585
- }
1586
- }, [pathname, initialPathname]);
1587
-
1588
- // Custom Pages
1589
- var _ref2 = pages || {},
1590
- _ref2$home = _ref2.home,
1591
- homePage = _ref2$home === void 0 ? null : _ref2$home,
1592
- _ref2$login = _ref2.login,
1593
- loginPage = _ref2$login === void 0 ? null : _ref2$login,
1594
- _ref2$account = _ref2.account,
1595
- accountPage = _ref2$account === void 0 ? null : _ref2$account,
1596
- _ref2$error = _ref2.error,
1597
- errorPage = _ref2$error === void 0 ? null : _ref2$error;
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, {
1614
- path: routes.home,
1615
- exact: true,
1616
- component: HomeComponent
1617
- }) : /*#__PURE__*/React.createElement(Redirect, {
1618
- from: routes.home,
1619
- exact: true,
1620
- to: route('login')
1621
- }), resources.map(function (resource) {
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
- });
1641
- }), /*#__PURE__*/React.createElement(Route, {
1642
- path: route('auth.account'),
1643
- component: AccountComponent
1644
- }), /*#__PURE__*/React.createElement(Route, {
1645
- path: "*",
1646
- component: ErrorComponent
1647
- }));
1648
- };
1649
- PanneauRoutes.propTypes = propTypes$1;
1650
- PanneauRoutes.defaultProps = defaultProps$1;
1651
-
1652
- var propTypes = {
1653
- definition: PropTypes.panneauDefinition.isRequired,
1654
- components: PropTypes$1.oneOfType([PropTypes$1.objectOf(PropTypes$1.elementType), PropTypes$1.objectOf(PropTypes$1.objectOf(PropTypes$1.elementType))]),
1655
- user: PropTypes.user,
1656
- memoryRouter: PropTypes$1.bool,
1657
- baseUrl: PropTypes$1.string,
1658
- uppy: PropTypes.uppy,
1659
- statusCode: PropTypes.statusCode
1660
- };
1661
- var defaultProps = {
1662
- components: null,
1663
- user: null,
1664
- memoryRouter: false,
1665
- baseUrl: null,
1666
- uppy: null,
1667
- statusCode: null
1668
- };
1669
- var Container = function Container(_ref) {
1670
- var definition = _ref.definition,
1671
- components = _ref.components,
1672
- user = _ref.user,
1673
- memoryRouter = _ref.memoryRouter,
1674
- baseUrl = _ref.baseUrl,
1675
- uppy = _ref.uppy,
1676
- statusCode = _ref.statusCode;
1677
- var _definition$intl = definition.intl,
1678
- _definition$intl2 = _definition$intl === void 0 ? {} : _definition$intl,
1679
- _definition$intl2$loc = _definition$intl2.locale,
1680
- locale = _definition$intl2$loc === void 0 ? 'en' : _definition$intl2$loc,
1681
- _definition$intl2$loc2 = _definition$intl2.locales,
1682
- locales = _definition$intl2$loc2 === void 0 ? [] : _definition$intl2$loc2,
1683
- _definition$routes = definition.routes,
1684
- routes = _definition$routes === void 0 ? {} : _definition$routes,
1685
- _definition$settings = definition.settings,
1686
- _definition$settings2 = _definition$settings === void 0 ? {} : _definition$settings,
1687
- _definition$settings3 = _definition$settings2.memoryRouter,
1688
- usesMemoryRouter = _definition$settings3 === void 0 ? false : _definition$settings3;
1689
- var Router = memoryRouter || usesMemoryRouter ? MemoryRouter : BrowserRouter;
1690
- var extraMessages = useMemo(function () {
1691
- var _definition$intl3 = definition.intl,
1692
- _definition$intl4 = _definition$intl3 === void 0 ? {} : _definition$intl3,
1693
- _definition$intl4$mes = _definition$intl4.messages,
1694
- messages = _definition$intl4$mes === void 0 ? null : _definition$intl4$mes,
1695
- _definition$resources = definition.resources,
1696
- resources = _definition$resources === void 0 ? [] : _definition$resources;
1697
- return _objectSpread(_objectSpread({}, messages), resources.reduce(function (allMessages, _ref2) {
1698
- var id = _ref2.id,
1699
- _ref2$intl = _ref2.intl,
1700
- _ref2$intl2 = _ref2$intl === void 0 ? {} : _ref2$intl,
1701
- _ref2$intl2$messages = _ref2$intl2.messages,
1702
- resourceMessages = _ref2$intl2$messages === void 0 ? {} : _ref2$intl2$messages;
1703
- return _objectSpread(_objectSpread({}, allMessages), Object.keys(resourceMessages).reduce(function (allResourceMessages, key) {
1704
- return _objectSpread(_objectSpread({}, allResourceMessages), {}, _defineProperty({}, "resources.".concat(id, ".").concat(key), resourceMessages[key]));
1705
- }, {}));
1706
- }, {}));
1707
- }, [definition]);
1708
- var onUnauthorized = useCallback(function () {
1709
- window.location.href = baseUrl;
1710
- }, [baseUrl]);
1711
- var onLogout = useCallback(function () {
1712
- window.location.reload();
1713
- }, [baseUrl]);
1714
- return /*#__PURE__*/React.createElement(Router, null, /*#__PURE__*/React.createElement(IntlProvider, {
1715
- locale: locale,
1716
- locales: locales,
1717
- extraMessages: extraMessages
1718
- }, /*#__PURE__*/React.createElement(PanneauProvider, {
1719
- definition: definition
1720
- }, /*#__PURE__*/React.createElement(UppyProvider, uppy, /*#__PURE__*/React.createElement(RoutesProvider, {
1721
- routes: routes
1722
- }, /*#__PURE__*/React.createElement(FieldsProvider, null, /*#__PURE__*/React.createElement(FormsProvider, null, /*#__PURE__*/React.createElement(ListsProvider, null, /*#__PURE__*/React.createElement(DisplaysProvider, null, /*#__PURE__*/React.createElement(FiltersProvider, null, /*#__PURE__*/React.createElement(ApiProvider, {
1723
- baseUrl: baseUrl,
1724
- onUnauthorized: onUnauthorized
1725
- }, /*#__PURE__*/React.createElement(AuthProvider, {
1726
- user: user,
1727
- onLogout: onLogout
1728
- }, /*#__PURE__*/React.createElement(ComponentsProvider, {
1729
- components: components
1730
- }, /*#__PURE__*/React.createElement(PanneauRoutes, {
1731
- statusCode: statusCode
1732
- }))))))))))))));
1733
- };
1734
- Container.propTypes = propTypes;
1735
- Container.defaultProps = defaultProps;
1736
-
1737
- export { GuestLayout, MainLayout, PageHeader, ResourceFilters, ResourceForm, ResourceItemsList, Container as default };