@entur-partner/common 5.3.1 → 6.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.
@@ -1,7 +1,7 @@
1
1
  import { BusinessCapability } from '@entur-partner/permission-client-node';
2
2
  import React from 'react';
3
- import { RouteComponentProps, RouteProps } from 'react-router-dom';
4
- interface PermissionCheckedRouteProps extends RouteComponentProps, Omit<RouteProps, 'location'> {
3
+ import { PathRouteProps } from 'react-router-dom';
4
+ interface PermissionCheckedRouteProps extends PathRouteProps, Omit<PathRouteProps, 'location'> {
5
5
  actualPermissions: BusinessCapability[];
6
6
  all?: BusinessCapability[];
7
7
  oneOf?: BusinessCapability[];
@@ -1,5 +1,5 @@
1
1
  import './UserMenu.scss';
2
- import { FC } from 'react';
2
+ import React, { FC } from 'react';
3
3
  import { Environment } from './environment';
4
4
  interface UserMenuProps {
5
5
  userName: string;
@@ -19,4 +19,8 @@ interface UserMenuProps {
19
19
  onNavigateToMyProfile: () => void;
20
20
  }
21
21
  export declare const UserMenu: FC<UserMenuProps>;
22
+ export declare const VersionCustomOverflowMenuItems: React.FC<{
23
+ title: string;
24
+ setOpen: (isOpen: boolean) => void;
25
+ }>;
22
26
  export {};
@@ -347,7 +347,6 @@ var UserMenu = function UserMenu(_ref) {
347
347
  showVersionItem = _ref.showVersionItem,
348
348
  showMyProfileItem = _ref.showMyProfileItem,
349
349
  onNavigateToMyProfile = _ref.onNavigateToMyProfile;
350
- var history = reactRouterDom.useHistory();
351
350
  var triggerClassList = cx__default["default"](['eps-user-menu__trigger-button', className]);
352
351
 
353
352
  var _useState = React.useState(false),
@@ -388,19 +387,10 @@ var UserMenu = function UserMenu(_ref) {
388
387
  }, React__default["default"].createElement(icons.UKIcon, {
389
388
  size: "1rem",
390
389
  inline: true
391
- })), messages.switchLanguage), showVersionItem && messages.appVersion && React__default["default"].createElement(CustomOverflowMenuItem, {
392
- onClick: function onClick() {
393
- history.push('/app-version');
394
- setOpen(false);
395
- },
396
- className: "eps-overflow-menu__item"
397
- }, React__default["default"].createElement("span", {
398
- "aria-hidden": true
399
- }, React__default["default"].createElement(icons.ChannelsIcon, {
400
- className: "eps-version-icon",
401
- size: "1rem",
402
- inline: true
403
- })), messages.appVersion), showMyProfileItem && messages.myProfile && React__default["default"].createElement(reactRouterDom.Link, {
390
+ })), messages.switchLanguage), showVersionItem && messages.appVersion && React__default["default"].createElement(VersionCustomOverflowMenuItems, {
391
+ title: messages.appVersion,
392
+ setOpen: setOpen
393
+ }), showMyProfileItem && messages.myProfile && React__default["default"].createElement(reactRouterDom.Link, {
404
394
  to: "/permission-admin/my-profile",
405
395
  style: {
406
396
  textDecoration: 'none'
@@ -488,6 +478,26 @@ var CustomOverflowMenuItem = function CustomOverflowMenuItem(props) {
488
478
  }, props));
489
479
  };
490
480
 
481
+ var VersionCustomOverflowMenuItems = function VersionCustomOverflowMenuItems(_ref3) {
482
+ var title = _ref3.title,
483
+ setOpen = _ref3.setOpen;
484
+ var navigate = reactRouterDom.useNavigate(); // Hide useNavigate from standalone micro-frontends because it is not under RouterProvider
485
+
486
+ return React__default["default"].createElement(CustomOverflowMenuItem, {
487
+ onClick: function onClick() {
488
+ navigate('/app-version');
489
+ setOpen(false);
490
+ },
491
+ className: "eps-overflow-menu__item"
492
+ }, React__default["default"].createElement("span", {
493
+ "aria-hidden": true
494
+ }, React__default["default"].createElement(icons.ChannelsIcon, {
495
+ className: "eps-version-icon",
496
+ size: "1rem",
497
+ inline: true
498
+ })), title);
499
+ };
500
+
491
501
  function elementContainsEventTarget(element, event) {
492
502
  if (!element) {
493
503
  return false;
@@ -940,41 +950,25 @@ var RouteLeavingGuard = function RouteLeavingGuard(_ref) {
940
950
  shouldBlockNavigation = _ref.shouldBlockNavigation,
941
951
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
942
952
 
943
- var history = reactRouterDom.useHistory();
944
-
945
- var _useState = React.useState('ALLOW'),
946
- status = _useState[0],
947
- setStatus = _useState[1];
948
-
949
- var _useState2 = React.useState(history.location),
950
- lastLocation = _useState2[0],
951
- setLastLocation = _useState2[1];
952
-
953
- var closeModal = function closeModal() {
954
- setStatus('ALLOW');
955
- };
956
-
957
- var allowNavigation = function allowNavigation(nextLocation) {
958
- if (shouldBlockNavigation(nextLocation) && status === 'ALLOW') {
959
- setStatus('BLOCKED');
960
- setLastLocation(nextLocation);
961
- return false;
953
+ util.assertIsDefined(reactRouterDom.useInRouterContext() ? true : undefined, "RouteLeavingGuard must be used within a data router.");
954
+ var blocker = reactRouterDom.useBlocker(function (_ref2) {
955
+ var currentLocation = _ref2.currentLocation,
956
+ nextLocation = _ref2.nextLocation;
957
+ return currentLocation.pathname !== nextLocation.pathname && shouldBlockNavigation(nextLocation);
958
+ });
959
+ return React__default["default"].createElement(ConfirmModal, _extends({
960
+ onDismiss: function onDismiss() {
961
+ if (blocker.state === 'blocked') {
962
+ blocker.reset();
963
+ }
964
+ },
965
+ open: blocker.state === 'blocked',
966
+ onConfirm: function onConfirm() {
967
+ if (blocker.state === 'blocked') {
968
+ blocker.proceed();
969
+ }
962
970
  }
963
-
964
- return true;
965
- };
966
-
967
- var handleConfirm = function handleConfirm() {
968
- history.push(lastLocation.pathname);
969
- };
970
-
971
- return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(reactRouterDom.Prompt, {
972
- message: allowNavigation
973
- }), React__default["default"].createElement(ConfirmModal, _extends({
974
- onDismiss: closeModal,
975
- open: status === 'BLOCKED',
976
- onConfirm: handleConfirm
977
- }, rest), children));
971
+ }, rest), children);
978
972
  };
979
973
 
980
974
  var Pager = function Pager(_ref) {
@@ -1044,19 +1038,11 @@ var PermissionCheckedRoute = function PermissionCheckedRoute(_ref) {
1044
1038
  onReject = _ref.onReject,
1045
1039
  props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
1046
1040
 
1047
- var redirect = React__default["default"].createElement(reactRouterDom.Redirect, {
1048
- to: {
1049
- pathname: '/unauthorized',
1050
- state: {
1051
- from: props.location
1052
- }
1053
- }
1054
- });
1055
1041
  return React__default["default"].createElement(PermissionCheck, {
1056
1042
  permissions: actualPermissions,
1057
1043
  all: all,
1058
1044
  oneOf: oneOf,
1059
- fallback: onReject ? onReject : redirect
1045
+ fallback: onReject != null ? onReject : reactRouterDom.redirect('/unauthorized')
1060
1046
  }, React__default["default"].createElement(reactRouterDom.Route, _extends({}, props), children));
1061
1047
  };
1062
1048