@panneau/app 2.0.92 → 3.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/es/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
+ import { useLocation, createPathToRegexpMatcher, useMemoryLocationHook } from '@folklore/routes';
3
4
  import PropTypes from 'prop-types';
4
5
  import React, { useCallback, useMemo, useState, useEffect, Fragment } from 'react';
5
- import { useLocation, useNavigate, useParams, Route, Routes, Navigate, MemoryRouter } from 'react-router';
6
- import { Link, BrowserRouter } from 'react-router-dom';
6
+ import { Route, Switch, Redirect, Router } from 'wouter';
7
7
  import { useUser, useLogout, useAuth, AuthProvider } from '@panneau/auth';
8
8
  import { PropTypes as PropTypes$1 } from '@panneau/core';
9
9
  import { useUrlGenerator, usePanneauResources, usePanneau, usePanneauColorScheme, ResourceProvider, useComponentsManager, useFormsComponents, useRoutes, usePagesComponentsManager, PanneauProvider, UppyProvider, RoutesProvider, ModalProvider, ComponentsProvider } from '@panneau/core/contexts';
@@ -26,6 +26,7 @@ import ResourceForm from '@panneau/form-resource';
26
26
  import classNames from 'classnames';
27
27
  import { Modals } from '@panneau/element-modal';
28
28
  import isArray from 'lodash/isArray';
29
+ import Link from '@panneau/element-link';
29
30
  import Menu from '@panneau/element-menu';
30
31
  import Navbar from '@panneau/element-navbar';
31
32
  import Label from '@panneau/element-label';
@@ -136,7 +137,8 @@ var ResourcesMenu = function ResourcesMenu(_ref) {
136
137
  itemClassName = _ref.itemClassName,
137
138
  linkClassName = _ref.linkClassName;
138
139
  var _useLocation = useLocation(),
139
- pathname = _useLocation.pathname;
140
+ _useLocation2 = _slicedToArray(_useLocation, 1),
141
+ pathname = _useLocation2[0].pathname;
140
142
  var resources = usePanneauResources();
141
143
  var resourceRoute = useResourceUrlGenerator();
142
144
  var items = useMemo(function () {
@@ -226,7 +228,7 @@ var MainNavbar = function MainNavbar(props) {
226
228
  return /*#__PURE__*/React.createElement(Navbar, Object.assign({
227
229
  theme: background
228
230
  }, props), name !== null ? /*#__PURE__*/React.createElement(Link, {
229
- to: route('home'),
231
+ href: route('home'),
230
232
  className: "navbar-brand"
231
233
  }, name) : null, items);
232
234
  };
@@ -322,9 +324,10 @@ var propTypes$e = {
322
324
  var defaultProps$d = {};
323
325
  var ResourceCreatePage = function ResourceCreatePage(_ref) {
324
326
  var resource = _ref.resource;
325
- var navigate = useNavigate();
326
327
  var _useLocation = useLocation(),
327
- search = _useLocation.search;
328
+ _useLocation2 = _slicedToArray(_useLocation, 2),
329
+ search = _useLocation2[0].search,
330
+ navigate = _useLocation2[1];
328
331
  var resourceRoute = useResourceUrlGenerator(resource);
329
332
  var _useMemo = useMemo(function () {
330
333
  return queryString.parse(search);
@@ -368,16 +371,17 @@ var ResourceCreatePage = function ResourceCreatePage(_ref) {
368
371
  ResourceCreatePage.propTypes = propTypes$e;
369
372
  ResourceCreatePage.defaultProps = defaultProps$d;
370
373
 
371
- // import PropTypes from 'prop-types';
372
374
  var propTypes$d = {
375
+ itemId: PropTypes.string.isRequired,
373
376
  resource: PropTypes$1.resource.isRequired
374
377
  };
375
378
  var defaultProps$c = {};
376
379
  var ResourceDeletePage = function ResourceDeletePage(_ref) {
377
- var resource = _ref.resource;
378
- var _useParams = useParams(),
379
- itemId = _useParams.id;
380
- var navigate = useNavigate();
380
+ var itemId = _ref.itemId,
381
+ resource = _ref.resource;
382
+ var _useLocation = useLocation(),
383
+ _useLocation2 = _slicedToArray(_useLocation, 2),
384
+ navigate = _useLocation2[1];
381
385
  var resourceRoute = useResourceUrlGenerator(resource);
382
386
  var _useResourceItem = useResourceItem(resource, itemId),
383
387
  item = _useResourceItem.item;
@@ -423,13 +427,13 @@ ResourceDeletePage.propTypes = propTypes$d;
423
427
  ResourceDeletePage.defaultProps = defaultProps$c;
424
428
 
425
429
  var propTypes$c = {
430
+ itemId: PropTypes.string.isRequired,
426
431
  resource: PropTypes$1.resource.isRequired
427
432
  };
428
433
  var defaultProps$b = {};
429
434
  var ResourceEditPage = function ResourceEditPage(_ref) {
430
- var resource = _ref.resource;
431
- var _useParams = useParams(),
432
- itemId = _useParams.id;
435
+ var itemId = _ref.itemId,
436
+ resource = _ref.resource;
433
437
  var _useResourceItem = useResourceItem(resource, itemId),
434
438
  item = _useResourceItem.item;
435
439
  var _ref2 = item || {},
@@ -621,8 +625,9 @@ var ResourceIndexPage = function ResourceIndexPage(_ref) {
621
625
  var resourceValues = useResourceValues(resource);
622
626
  var componentsManager = useComponentsManager();
623
627
  var _useLocation = useLocation(),
624
- search = _useLocation.search;
625
- var navigate = useNavigate();
628
+ _useLocation2 = _slicedToArray(_useLocation, 2),
629
+ search = _useLocation2[0].search,
630
+ navigate = _useLocation2[1];
626
631
  var query = useMemo(function () {
627
632
  return queryString.parse(search);
628
633
  }, [search]);
@@ -718,14 +723,14 @@ ResourceIndexPage.propTypes = propTypes$9;
718
723
  ResourceIndexPage.defaultProps = defaultProps$9;
719
724
 
720
725
  var propTypes$8 = {
721
- resource: PropTypes$1.resource.isRequired
726
+ resource: PropTypes$1.resource.isRequired,
727
+ itemId: PropTypes.string.isRequired
722
728
  };
723
729
  var defaultProps$8 = {};
724
730
  var ResourceShowPage = function ResourceShowPage(_ref) {
725
- var resource = _ref.resource;
731
+ var resource = _ref.resource,
732
+ itemId = _ref.itemId;
726
733
  var name = resource.name;
727
- var _useParams = useParams(),
728
- itemId = _useParams.id;
729
734
  var _useResourceItem = useResourceItem(resource, itemId),
730
735
  item = _useResourceItem.item;
731
736
  var _ref2 = item || {},
@@ -774,7 +779,7 @@ var HomePage = function HomePage() {
774
779
  return /*#__PURE__*/React.createElement(Link, {
775
780
  className: "d-block my-2",
776
781
  key: "resource-link-".concat(resourceId),
777
- to: route('resources.index', {
782
+ href: route('resources.index', {
778
783
  resource: resourceId
779
784
  })
780
785
  }, /*#__PURE__*/React.createElement(FormattedMessage, {
@@ -1029,7 +1034,7 @@ var ErrorPage = function ErrorPage(_ref) {
1029
1034
  ErrorPage.propTypes = propTypes$2;
1030
1035
  ErrorPage.defaultProps = defaultProps$2;
1031
1036
 
1032
- var _excluded$1 = ["path", "component", "exact"];
1037
+ var _excluded$1 = ["path", "component"];
1033
1038
  var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1034
1039
  var route = _ref.route,
1035
1040
  componentsManager = _ref.componentsManager,
@@ -1070,73 +1075,72 @@ var createResourceRoutes = function createResourceRoutes(resource, _ref) {
1070
1075
  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;
1071
1076
  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;
1072
1077
  return [/*#__PURE__*/React.createElement(Route, {
1073
- key: "".concat(resourceId, "-index"),
1074
- path: route('resources.index', {
1075
- resource: resourceId
1076
- }),
1077
- exact: true,
1078
- element: /*#__PURE__*/React.createElement(ResourceIndexComponent, {
1079
- resource: resource
1080
- })
1081
- }), /*#__PURE__*/React.createElement(Route, {
1082
1078
  key: "".concat(resourceId, "-create"),
1083
1079
  path: route('resources.create', {
1084
1080
  resource: resourceId
1085
1081
  }),
1086
- exact: true,
1087
- element: /*#__PURE__*/React.createElement(ResourceCreateComponent, {
1082
+ exact: true
1083
+ }, function () {
1084
+ return /*#__PURE__*/React.createElement(ResourceCreateComponent, {
1088
1085
  resource: resource
1089
- })
1086
+ });
1090
1087
  }), /*#__PURE__*/React.createElement(Route, {
1091
1088
  key: "".concat(resourceId, "-show"),
1092
1089
  path: route('resources.show', {
1093
1090
  resource: resourceId,
1094
1091
  id: ':id'
1095
- }),
1096
- exact: true,
1097
- element: /*#__PURE__*/React.createElement(ResourceShowComponent, {
1098
- resource: resource
1099
1092
  })
1093
+ }, function () {
1094
+ return /*#__PURE__*/React.createElement(ResourceShowComponent, {
1095
+ resource: resource
1096
+ });
1100
1097
  }), /*#__PURE__*/React.createElement(Route, {
1101
1098
  key: "".concat(resourceId, "-edit"),
1102
1099
  path: route('resources.edit', {
1103
1100
  resource: resourceId,
1104
1101
  id: ':id'
1105
- }),
1106
- exact: true,
1107
- element: /*#__PURE__*/React.createElement(ResourceEditComponent, {
1108
- resource: resource
1109
1102
  })
1103
+ }, function () {
1104
+ return /*#__PURE__*/React.createElement(ResourceEditComponent, {
1105
+ resource: resource
1106
+ });
1110
1107
  }), /*#__PURE__*/React.createElement(Route, {
1111
1108
  key: "".concat(resourceId, "-delete"),
1112
1109
  path: route('resources.delete', {
1113
1110
  resource: resourceId,
1114
1111
  id: ':id'
1115
- }),
1116
- exact: true,
1117
- element: /*#__PURE__*/React.createElement(ResourceDeleteComponent, {
1118
- resource: resource
1119
1112
  })
1113
+ }, function () {
1114
+ return /*#__PURE__*/React.createElement(ResourceDeleteComponent, {
1115
+ resource: resource
1116
+ });
1120
1117
  })].concat(_toConsumableArray(extraRoutes.map(function (_ref4) {
1121
1118
  var path = _ref4.path,
1122
1119
  component = _ref4.component,
1123
- _ref4$exact = _ref4.exact,
1124
- exact = _ref4$exact === void 0 ? true : _ref4$exact,
1125
1120
  pageProps = _objectWithoutProperties(_ref4, _excluded$1);
1126
1121
  var RouteComponent = componentsManager.getComponent(component);
1127
1122
  return RouteComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1128
1123
  key: "route-".concat(path),
1129
- path: path,
1130
- exact: exact,
1131
- element: /*#__PURE__*/React.createElement(RouteComponent, Object.assign({
1124
+ path: path
1125
+ }, function () {
1126
+ return /*#__PURE__*/React.createElement(RouteComponent, Object.assign({
1132
1127
  resource: resource
1133
- }, pageProps))
1128
+ }, pageProps));
1134
1129
  }) : null;
1135
- })));
1130
+ })), [/*#__PURE__*/React.createElement(Route, {
1131
+ key: "".concat(resourceId, "-index"),
1132
+ path: route('resources.index', {
1133
+ resource: resourceId
1134
+ })
1135
+ }, function () {
1136
+ return /*#__PURE__*/React.createElement(ResourceIndexComponent, {
1137
+ resource: resource
1138
+ });
1139
+ })]);
1136
1140
  };
1137
1141
 
1138
1142
  var _excluded = ["home", "login", "account", "error", "index", "show", "create", "edit", "delete"],
1139
- _excluded2 = ["path", "route", "component", "exact"];
1143
+ _excluded2 = ["path", "route", "component"];
1140
1144
  var propTypes$1 = {
1141
1145
  statusCode: PropTypes$1.statusCode
1142
1146
  };
@@ -1147,7 +1151,8 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
1147
1151
  var initialStatusCode = _ref.statusCode;
1148
1152
  var routes = useRoutes();
1149
1153
  var _useLocation = useLocation(),
1150
- pathname = _useLocation.pathname;
1154
+ _useLocation2 = _slicedToArray(_useLocation, 1),
1155
+ pathname = _useLocation2[0].pathname;
1151
1156
  var _useState = useState({
1152
1157
  statusCode: initialStatusCode,
1153
1158
  pathname: pathname
@@ -1222,32 +1227,21 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
1222
1227
 
1223
1228
  // If user is unauthenticated
1224
1229
  if (user === null) {
1225
- return /*#__PURE__*/React.createElement(Routes, null, /*#__PURE__*/React.createElement(Route, {
1226
- path: routes['auth.login'],
1227
- exact: true,
1228
- element: /*#__PURE__*/React.createElement(LoginComponent, loginPage)
1229
- }), /*#__PURE__*/React.createElement(Route, {
1230
- path: "*",
1231
- element: /*#__PURE__*/React.createElement(Navigate, {
1232
- to: "".concat(route('auth.login'), "?next=").concat(encodeURIComponent(pathname)),
1233
- replace: true
1234
- })
1235
- }));
1230
+ return /*#__PURE__*/React.createElement(Switch, null, /*#__PURE__*/React.createElement(Route, {
1231
+ path: routes['auth.login']
1232
+ }, /*#__PURE__*/React.createElement(LoginComponent, loginPage)), /*#__PURE__*/React.createElement(Route, null, /*#__PURE__*/React.createElement(Redirect, {
1233
+ to: "".concat(route('auth.login'), "?next=").concat(encodeURIComponent(pathname)),
1234
+ replace: true
1235
+ })));
1236
1236
  }
1237
1237
 
1238
1238
  // Normal routes
1239
- return /*#__PURE__*/React.createElement(Routes, null, /*#__PURE__*/React.createElement(Route, {
1240
- path: routes.home,
1241
- exact: true,
1242
- element: /*#__PURE__*/React.createElement(HomeComponent, homePage)
1243
- }), user !== null ? /*#__PURE__*/React.createElement(Route, {
1244
- path: routes['auth.login'],
1245
- exact: true,
1246
- element: /*#__PURE__*/React.createElement(Navigate, {
1247
- to: routes.home,
1248
- replace: true
1249
- })
1250
- }) : null, resources.map(function (resource) {
1239
+ return /*#__PURE__*/React.createElement(Switch, null, user !== null ? /*#__PURE__*/React.createElement(Route, {
1240
+ path: routes['auth.login']
1241
+ }, /*#__PURE__*/React.createElement(Redirect, {
1242
+ to: routes.home,
1243
+ replace: true
1244
+ })) : null, resources.map(function (resource) {
1251
1245
  var _ref4 = resource || {},
1252
1246
  resourceId = _ref4.id;
1253
1247
  return /*#__PURE__*/React.createElement(Fragment, {
@@ -1258,34 +1252,28 @@ var PanneauRoutes = function PanneauRoutes(_ref) {
1258
1252
  pages: pages
1259
1253
  }));
1260
1254
  }), /*#__PURE__*/React.createElement(Route, {
1261
- path: routes.account,
1262
- exact: true,
1263
- element: /*#__PURE__*/React.createElement(AccountComponent, accountPage)
1264
- }), customRoutes.map(function (_ref5) {
1255
+ path: routes.account
1256
+ }, /*#__PURE__*/React.createElement(AccountComponent, accountPage)), customRoutes.map(function (_ref5) {
1265
1257
  var _ref5$path = _ref5.path,
1266
1258
  path = _ref5$path === void 0 ? null : _ref5$path,
1267
1259
  _ref5$route = _ref5.route,
1268
1260
  pageRoute = _ref5$route === void 0 ? null : _ref5$route,
1269
1261
  component = _ref5.component,
1270
- _ref5$exact = _ref5.exact,
1271
- exact = _ref5$exact === void 0 ? true : _ref5$exact,
1272
1262
  props = _objectWithoutProperties(_ref5, _excluded2);
1273
1263
  var PageComponent = componentsManager.getComponent(component);
1274
1264
  var finalPath = path || routes[pageRoute];
1275
1265
  return PageComponent !== null ? /*#__PURE__*/React.createElement(Route, {
1276
1266
  key: "custom-route-".concat(finalPath),
1277
- path: path || routes[pageRoute],
1278
- exact: exact,
1279
- element: /*#__PURE__*/React.createElement(PageComponent, props)
1280
- }) : null;
1267
+ path: path || routes[pageRoute]
1268
+ }, /*#__PURE__*/React.createElement(PageComponent, props)) : null;
1281
1269
  }), /*#__PURE__*/React.createElement(Route, {
1282
- path: "*",
1283
- element: /*#__PURE__*/React.createElement(ErrorComponent, null)
1284
- }));
1270
+ path: routes.home
1271
+ }, /*#__PURE__*/React.createElement(HomeComponent, homePage)), /*#__PURE__*/React.createElement(Route, null, /*#__PURE__*/React.createElement(ErrorComponent, null)));
1285
1272
  };
1286
1273
  PanneauRoutes.propTypes = propTypes$1;
1287
1274
  PanneauRoutes.defaultProps = defaultProps$1;
1288
1275
 
1276
+ var pathToRegexpMatcher = createPathToRegexpMatcher();
1289
1277
  var propTypes = {
1290
1278
  definition: PropTypes$1.panneauDefinition.isRequired,
1291
1279
  components: PropTypes.oneOfType([PropTypes.objectOf(PropTypes.elementType), PropTypes.objectOf(PropTypes.objectOf(PropTypes.elementType))]),
@@ -1323,7 +1311,7 @@ var Container = function Container(_ref) {
1323
1311
  _definition$settings2 = _definition$settings === void 0 ? {} : _definition$settings,
1324
1312
  _definition$settings3 = _definition$settings2.memoryRouter,
1325
1313
  usesMemoryRouter = _definition$settings3 === void 0 ? false : _definition$settings3;
1326
- var Router = memoryRouter || usesMemoryRouter ? MemoryRouter : BrowserRouter;
1314
+ var isMemoryRouter = memoryRouter || usesMemoryRouter || false;
1327
1315
  var extraMessages = useMemo(function () {
1328
1316
  var _definition$intl3 = definition.intl,
1329
1317
  _definition$intl4 = _definition$intl3 === void 0 ? {} : _definition$intl3,
@@ -1348,7 +1336,11 @@ var Container = function Container(_ref) {
1348
1336
  var onLogout = useCallback(function () {
1349
1337
  window.location.reload();
1350
1338
  }, [baseUrl]);
1351
- return /*#__PURE__*/React.createElement(Router, null, /*#__PURE__*/React.createElement(IntlProvider, {
1339
+ var memoryLocationHook = useMemoryLocationHook();
1340
+ return /*#__PURE__*/React.createElement(Router, {
1341
+ hook: isMemoryRouter ? memoryLocationHook : null,
1342
+ matcher: pathToRegexpMatcher
1343
+ }, /*#__PURE__*/React.createElement(IntlProvider, {
1352
1344
  locale: locale,
1353
1345
  locales: locales,
1354
1346
  extraMessages: extraMessages