studiokit-scaffolding-js 5.2.0-next.2.4 → 5.2.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.
Files changed (124) hide show
  1. package/lib/components/Dropdowns/GroupsDropdown.d.ts +1 -1
  2. package/lib/components/Dropdowns/GroupsDropdown.js +2 -1
  3. package/lib/components/Dropdowns/UserDropdown.js +1 -1
  4. package/lib/components/Groups/ExternalGroups/Attach.js +3 -3
  5. package/lib/components/HOC/CollectionComponent.d.ts +2 -2
  6. package/lib/components/HOC/CollectionComponent.js +2 -1
  7. package/lib/components/HOC/CollectionFirstItemComponent.js +1 -1
  8. package/lib/components/HOC/CollectionItemComponent.d.ts +1 -1
  9. package/lib/components/HOC/CollectionItemComponent.js +2 -1
  10. package/lib/components/HOC/ConnectedModalComponent.js +2 -7
  11. package/lib/components/HOC/ModelErrorRedirectComponent.js +2 -2
  12. package/lib/components/HOC/SearchPersistorComponent.js +1 -1
  13. package/lib/components/Lti/CreateNonLtiGroupAlertDialog.d.ts +1 -1
  14. package/lib/components/Notifications.js +1 -2
  15. package/lib/components/UserRoles/index.d.ts +3 -3
  16. package/lib/components/UserRoles/index.js +8 -16
  17. package/lib/endpointMappings.d.ts +1 -0
  18. package/lib/endpointMappings.js +8 -6
  19. package/lib/hooks/useCollection.js +4 -1
  20. package/lib/hooks/useCollectionConfiguration.d.ts +5 -4
  21. package/lib/hooks/useCollectionItem.js +4 -1
  22. package/lib/index.d.ts +0 -1
  23. package/lib/index.js +1 -8
  24. package/lib/redux/actionCreator.d.ts +2 -8
  25. package/lib/redux/actionCreator.js +7 -45
  26. package/lib/redux/actions.d.ts +39 -0
  27. package/lib/redux/actions.js +65 -0
  28. package/lib/redux/configureReducers.d.ts +2 -3
  29. package/lib/redux/configureReducers.js +3 -3
  30. package/lib/redux/configureStore.js +10 -13
  31. package/lib/redux/helpers.js +3 -1
  32. package/lib/redux/reducers/authReducer.d.ts +2 -6
  33. package/lib/redux/reducers/authReducer.js +7 -10
  34. package/lib/redux/reducers/{modelsReducer.d.ts → fetchReducer.d.ts} +5 -11
  35. package/lib/redux/reducers/{modelsReducer.js → fetchReducer.js} +17 -19
  36. package/lib/redux/reducers/index.d.ts +2 -2
  37. package/lib/redux/reducers/index.js +3 -3
  38. package/lib/redux/reducers/modalsReducer.d.ts +4 -1
  39. package/lib/redux/reducers/modalsReducer.js +3 -3
  40. package/lib/redux/reducers/notificationsReducer.d.ts +5 -2
  41. package/lib/redux/reducers/notificationsReducer.js +9 -6
  42. package/lib/redux/reducers/searchReducer.d.ts +4 -1
  43. package/lib/redux/reducers/searchReducer.js +2 -2
  44. package/lib/redux/sagas/appInsightsSaga.js +3 -3
  45. package/lib/redux/sagas/authSaga.d.ts +15 -13
  46. package/lib/redux/sagas/authSaga.js +113 -112
  47. package/lib/redux/sagas/caliperSaga.js +8 -9
  48. package/lib/redux/sagas/clockOffsetSaga.js +1 -1
  49. package/lib/redux/sagas/configurationSaga.js +1 -1
  50. package/lib/redux/sagas/downtimeApiErrorSaga.js +5 -5
  51. package/lib/redux/sagas/fetchSaga.d.ts +97 -0
  52. package/lib/redux/sagas/fetchSaga.js +661 -0
  53. package/lib/redux/sagas/googleAnalyticsSaga.js +3 -4
  54. package/lib/redux/sagas/identityProviderSaga.js +13 -15
  55. package/lib/redux/sagas/initialDataLoadSaga.js +6 -5
  56. package/lib/redux/sagas/lockDownBrowserErrorSaga.js +2 -4
  57. package/lib/redux/sagas/noStoreSaga.d.ts +7 -8
  58. package/lib/redux/sagas/noStoreSaga.js +30 -26
  59. package/lib/redux/sagas/postLoginDataSaga.js +11 -12
  60. package/lib/redux/sagas/postLoginRedirectSaga.js +2 -2
  61. package/lib/redux/sagas/rootSaga.js +16 -10
  62. package/lib/redux/sagas/sentrySaga.js +32 -19
  63. package/lib/redux/sagas/userIdSaga.js +3 -3
  64. package/lib/services/fetchService.d.ts +17 -21
  65. package/lib/services/fetchService.js +64 -78
  66. package/lib/services/windowService.d.ts +0 -2
  67. package/lib/services/windowService.js +1 -6
  68. package/lib/setupTests.js +0 -16
  69. package/lib/startup.js +3 -6
  70. package/lib/types/Collection.d.ts +21 -21
  71. package/lib/types/auth/AuthAction.d.ts +6 -0
  72. package/lib/types/auth/Credentials.d.ts +4 -0
  73. package/lib/types/auth/TokenPersistenceService.d.ts +3 -3
  74. package/lib/types/auth/index.d.ts +2 -2
  75. package/lib/types/auth/index.js +2 -2
  76. package/lib/types/net/ErrorHandler.d.ts +1 -3
  77. package/lib/types/net/FetchAction.d.ts +41 -0
  78. package/lib/types/net/FetchConfig.d.ts +2 -1
  79. package/lib/types/net/FetchError.d.ts +7 -0
  80. package/lib/types/net/FetchError.js +5 -0
  81. package/lib/types/net/LoggerFunction.d.ts +1 -0
  82. package/lib/types/net/LoggerFunction.js +2 -0
  83. package/lib/types/net/Metadata.d.ts +1 -2
  84. package/lib/types/net/Metadata.js +3 -0
  85. package/lib/types/net/OAuthToken.js +3 -0
  86. package/lib/types/net/OAuthTokenResponse.d.ts +2 -0
  87. package/lib/types/net/OAuthTokenResponse.js +2 -0
  88. package/lib/types/net/TokenAccessFunction.d.ts +2 -2
  89. package/lib/types/net/index.d.ts +4 -3
  90. package/lib/types/net/index.js +4 -3
  91. package/lib/utils/collection.d.ts +4 -3
  92. package/lib/utils/collection.js +15 -17
  93. package/lib/utils/model.d.ts +2 -2
  94. package/lib/utils/quill.js +39 -33
  95. package/lib/utils/user.js +11 -11
  96. package/package.json +3 -3
  97. package/lib/redux/actions/AuthAction.d.ts +0 -54
  98. package/lib/redux/actions/AuthAction.js +0 -32
  99. package/lib/redux/actions/ModalAction.d.ts +0 -16
  100. package/lib/redux/actions/ModalAction.js +0 -8
  101. package/lib/redux/actions/ModelAction.d.ts +0 -117
  102. package/lib/redux/actions/ModelAction.js +0 -62
  103. package/lib/redux/actions/NotificationAction.d.ts +0 -9
  104. package/lib/redux/actions/NotificationAction.js +0 -8
  105. package/lib/redux/actions/SearchAction.d.ts +0 -8
  106. package/lib/redux/actions/SearchAction.js +0 -7
  107. package/lib/redux/actions/index.d.ts +0 -5
  108. package/lib/redux/actions/index.js +0 -17
  109. package/lib/redux/sagas/modelFetchSaga.d.ts +0 -65
  110. package/lib/redux/sagas/modelFetchSaga.js +0 -496
  111. package/lib/types/auth/CasV1LoginRequestBody.d.ts +0 -4
  112. package/lib/types/auth/LocalLoginRequestBody.d.ts +0 -5
  113. package/lib/types/net/FetchErrorData.d.ts +0 -13
  114. package/lib/types/net/FetchErrorData.js +0 -15
  115. package/lib/types/net/HTTPStatusCode.d.ts +0 -7
  116. package/lib/types/net/HTTPStatusCode.js +0 -11
  117. package/lib/types/net/OAuthTokenOrNull.d.ts +0 -2
  118. package/lib/utils/error.d.ts +0 -1
  119. package/lib/utils/error.js +0 -20
  120. package/lib/utils/prepareFetch.d.ts +0 -22
  121. package/lib/utils/prepareFetch.js +0 -182
  122. /package/lib/types/auth/{CasV1LoginRequestBody.js → AuthAction.js} +0 -0
  123. /package/lib/types/auth/{LocalLoginRequestBody.js → Credentials.js} +0 -0
  124. /package/lib/types/net/{OAuthTokenOrNull.js → FetchAction.js} +0 -0
@@ -13,5 +13,5 @@ declare class GroupsDropdown extends Component<Props> {
13
13
  renderGroupMenu: (groups: Group[]) => JSX.Element[] | null;
14
14
  render(): JSX.Element | null;
15
15
  }
16
- declare const _default: import("react-redux").ConnectedComponent<typeof GroupsDropdown, Pick<React.ClassAttributes<GroupsDropdown> & Props, "title" | "ref" | "id" | "key" | "anyRoleButLearner">>;
16
+ declare const _default: import("react-redux").ConnectedComponent<typeof GroupsDropdown, Pick<React.ClassAttributes<GroupsDropdown> & Props, "id" | "ref" | "title" | "key" | "anyRoleButLearner">>;
17
17
  export default _default;
@@ -37,6 +37,7 @@ var react_bootstrap_1 = require("react-bootstrap");
37
37
  var react_redux_1 = require("react-redux");
38
38
  var react_router_bootstrap_1 = require("react-router-bootstrap");
39
39
  var actionCreator_1 = require("../../redux/actionCreator");
40
+ var actions_1 = require("../../redux/actions");
40
41
  var date_1 = require("../../utils/date");
41
42
  var groupDates_1 = require("../../utils/groupDates");
42
43
  var groupRoles_1 = require("../../utils/groupRoles");
@@ -47,7 +48,7 @@ var GroupsDropdown = /** @class */ (function (_super) {
47
48
  function GroupsDropdown() {
48
49
  var _this = _super !== null && _super.apply(this, arguments) || this;
49
50
  _this.loadGroups = function () {
50
- actionCreator_1.dispatchModelFetchRequest({ modelName: 'groups' });
51
+ actionCreator_1.dispatchAction(actions_1.NET_ACTION.DATA_REQUESTED, { modelName: 'groups' });
51
52
  };
52
53
  _this.didToggle = function (isOpen) {
53
54
  if (isOpen) {
@@ -56,7 +56,7 @@ var IconStopImpersonating_1 = require("../Icons/IconStopImpersonating");
56
56
  var UserDetail_1 = require("../Impersonation/UserDetail");
57
57
  var ManagedNavDropdown_1 = require("./ManagedNavDropdown");
58
58
  var doLogOut = function () {
59
- actionCreator_1.dispatchAction({ type: actions_1.AUTH_ACTION_TYPE.LOG_OUT_REQUESTED });
59
+ actionCreator_1.dispatchAction(actions_1.AUTH_ACTION.LOG_OUT_REQUESTED, {});
60
60
  };
61
61
  var UserDropdown = function (_a) {
62
62
  var userInfo = _a.userInfo, children = _a.children, props = __rest(_a, ["userInfo", "children"]);
@@ -24,8 +24,8 @@ var react_bootstrap_1 = require("react-bootstrap");
24
24
  var uuid_1 = require("uuid");
25
25
  var constants_1 = require("../../../constants");
26
26
  var actionCreator_1 = require("../../../redux/actionCreator");
27
+ var actions_1 = require("../../../redux/actions");
27
28
  var noStoreSaga_1 = require("../../../redux/sagas/noStoreSaga");
28
- var types_1 = require("../../../types");
29
29
  var model_1 = require("../../../utils/model");
30
30
  var shard_1 = require("../../../utils/shard");
31
31
  var user_1 = require("../../../utils/user");
@@ -89,14 +89,14 @@ var ExternalGroupsAttach = /** @class */ (function (_super) {
89
89
  if (shard_1.isPurdueShard() && ownerSchedule.status === constants_1.MODEL_STATUS.UNINITIALIZED && !ownerSchedule.externalGroups) {
90
90
  noStoreSaga_1.registerNoStoreActionHook(ownerSchedule.hookId, function (data) {
91
91
  noStoreSaga_1.unregisterNoStoreActionHook(ownerSchedule.hookId);
92
- if (!data || types_1.isFetchErrorData(data)) {
92
+ if (data && data.errorData) {
93
93
  _this.setState({ isShowingErrorAlert: true, isUniTimeScheduleLoadingDone: true });
94
94
  }
95
95
  else {
96
96
  _this.setUserUniTimeGroups(userId, data.externalGroups);
97
97
  }
98
98
  });
99
- actionCreator_1.dispatchModelFetchRequest({
99
+ actionCreator_1.dispatchAction(actions_1.NET_ACTION.DATA_REQUESTED, {
100
100
  modelName: 'uniTimeInstructorSchedule',
101
101
  queryParams: {
102
102
  externalTermId: externalTermId,
@@ -15,7 +15,7 @@ export declare function configureCollectionComponent<TModel extends Model, TOwnP
15
15
  componentDidMount(): void;
16
16
  componentDidUpdate(prevProps: TOwnProps & CollectionComponentProps<TModel>): void;
17
17
  componentWillUnmount(): void;
18
- changeModelStatus: (newModelStatus: MODEL_STATUS, fetchingId?: string | number | undefined) => void;
18
+ changeModelStatus: (newModelStatus: MODEL_STATUS, fetchingId?: string | undefined) => void;
19
19
  getCollectionMethodConfig: () => CollectionMethodConfiguration;
20
20
  load: (params?: CollectionLoadParams) => void;
21
21
  stopPeriodicLoad: (taskId: string) => void;
@@ -46,7 +46,7 @@ export declare function configureCollectionComponent<TModel extends Model, TOwnP
46
46
  };
47
47
  contextType?: React.Context<any> | undefined;
48
48
  };
49
- export declare const configureMapStateToProps: <TModel extends Model, TOwnProps extends Pick<CollectionComponentProps<TModel>, "guid" | "match" | "modelName" | "pathParams" | "queryParams" | "location" | "history" | "staticContext" | "disableAutoLoad" | "disableAutoLoadOnParamsChange">>(modelName: string) => (state: BaseReduxState, ownProps: TOwnProps & Partial<CollectionComponentProps<TModel>>) => import("../../types").CollectionSelectorMethodResponse<Model>;
49
+ export declare const configureMapStateToProps: <TModel extends Model, TOwnProps extends Pick<CollectionComponentProps<TModel>, "match" | "queryParams" | "modelName" | "guid" | "location" | "history" | "staticContext" | "pathParams" | "disableAutoLoad" | "disableAutoLoadOnParamsChange">>(modelName: string) => (state: BaseReduxState, ownProps: TOwnProps & Partial<CollectionComponentProps<TModel>>) => import("../../types").CollectionSelectorMethodResponse<Model>;
50
50
  /**
51
51
  * HOC that provides "collection" related functionality, using redux `connect()`, react-router-dom `withRouter()`, and `GuidComponent`.
52
52
  *
@@ -99,7 +99,8 @@ function configureCollectionComponent(WrappedComponent, LoaderComponent) {
99
99
  collection_1.loadCollection(_this.getCollectionMethodConfig(), params);
100
100
  };
101
101
  _this.stopPeriodicLoad = function (taskId) {
102
- collection_1.stopCollectionPeriodicLoad(taskId);
102
+ var modelName = _this.props.modelName;
103
+ collection_1.stopCollectionPeriodicLoad(modelName, taskId);
103
104
  };
104
105
  _this.create = function (params) {
105
106
  collection_1.createItemInCollection(_this.getCollectionMethodConfig(), params);
@@ -86,7 +86,7 @@ function configureCollectionFirstItemComponent(WrappedComponent) {
86
86
  var modelMinusRelations = this.getModelMinusRelations(firstItem);
87
87
  var p = __spreadArrays(pathParams);
88
88
  if (firstItem.id) {
89
- p.push(firstItem.id);
89
+ p.push(firstItem.id.toString());
90
90
  }
91
91
  return (react_1.default.createElement(WrappedComponent, __assign({}, this.props, { pathParams: p, model: firstItem, modelMinusRelations: modelMinusRelations })));
92
92
  };
@@ -45,7 +45,7 @@ export declare function configureCollectionItemComponent<TModel extends Model, T
45
45
  };
46
46
  contextType?: React.Context<any> | undefined;
47
47
  };
48
- export declare const configureMapStateToProps: <TModel extends Model, TOwnProps extends Pick<CollectionItemComponentProps<TModel>, "guid" | "match" | "modelName" | "pathParams" | "queryParams" | "location" | "history" | "staticContext" | "disableAutoLoad" | "disableAutoLoadOnParamsChange">>(modelName: string) => (state: BaseReduxState, ownProps: TOwnProps) => import("../../types").CollectionSelectorMethodResponse<Model>;
48
+ export declare const configureMapStateToProps: <TModel extends Model, TOwnProps extends Pick<CollectionItemComponentProps<TModel>, "match" | "queryParams" | "modelName" | "guid" | "location" | "history" | "staticContext" | "pathParams" | "disableAutoLoad" | "disableAutoLoadOnParamsChange">>(modelName: string) => (state: BaseReduxState, ownProps: TOwnProps) => import("../../types").CollectionSelectorMethodResponse<Model>;
49
49
  /**
50
50
  * HOC that provides "collection" related functionality for a single item in a collection, using redux `connect()`, react-router-dom `withRouter()`, and `GuidComponent`.
51
51
  *
@@ -98,7 +98,8 @@ function configureCollectionItemComponent(WrappedComponent, LoaderComponent) {
98
98
  collection_1.loadCollectionItem(_this.getCollectionMethodConfig(), params);
99
99
  };
100
100
  _this.stopPeriodicLoad = function (taskId) {
101
- collection_1.stopCollectionPeriodicLoad(taskId);
101
+ var modelName = _this.props.modelName;
102
+ collection_1.stopCollectionPeriodicLoad(modelName, taskId);
102
103
  };
103
104
  _this.create = function (params) {
104
105
  var model = _this.props.model;
@@ -89,12 +89,7 @@ function configureConnectedModalComponent(WrappedComponent, isFullscreen) {
89
89
  var _b = _this.props, guid = _b.guid, modals = _b.modals;
90
90
  // Store each modal's GUID in redux with a zero-based index to determine the order in which they were opened
91
91
  var maxModal = lodash_1.maxBy(Object.values(modals), function (modal) { return modal.index; });
92
- actionCreator_1.dispatchAction({
93
- type: actions_1.MODAL_ACTION_TYPE.MODAL_ENTERING,
94
- guid: guid,
95
- index: ((_a = maxModal === null || maxModal === void 0 ? void 0 : maxModal.index) !== null && _a !== void 0 ? _a : -1) + 1,
96
- isFullscreen: isFullscreen
97
- });
92
+ actionCreator_1.dispatchAction(actions_1.ACTION.MODAL_ENTERING, { guid: guid, index: ((_a = maxModal === null || maxModal === void 0 ? void 0 : maxModal.index) !== null && _a !== void 0 ? _a : -1) + 1, isFullscreen: isFullscreen });
98
93
  _this.setState({
99
94
  isModalOpen: true
100
95
  });
@@ -103,7 +98,7 @@ function configureConnectedModalComponent(WrappedComponent, isFullscreen) {
103
98
  var guid = _this.props.guid;
104
99
  var isModalOpen = _this.state.isModalOpen;
105
100
  if (isModalOpen) {
106
- actionCreator_1.dispatchAction({ type: actions_1.MODAL_ACTION_TYPE.MODAL_EXITED, guid: guid });
101
+ actionCreator_1.dispatchAction(actions_1.ACTION.MODAL_EXITED, { guid: guid });
107
102
  }
108
103
  _this.setState({
109
104
  isModalOpen: false
@@ -71,13 +71,13 @@ function modelErrorRedirectComponent(WrappedComponent) {
71
71
  model._metadata &&
72
72
  model._metadata.hasError &&
73
73
  model._metadata.lastFetchErrorData &&
74
- model._metadata.lastFetchErrorData.status === 404;
74
+ model._metadata.lastFetchErrorData.code === 404;
75
75
  var errorRoute = previousModelStatus === modelStatus_1.MODEL_STATUS.UNINITIALIZED &&
76
76
  modelStatus === modelStatus_1.MODEL_STATUS.ERROR &&
77
77
  model._metadata &&
78
78
  model._metadata.hasError &&
79
79
  model._metadata.lastFetchErrorData &&
80
- model._metadata.lastFetchErrorData.status === 500;
80
+ model._metadata.lastFetchErrorData.code === 500;
81
81
  if (notFoundRoute) {
82
82
  var pathname = window.location.pathname;
83
83
  return (react_1.default.createElement(react_router_dom_1.Redirect, { to: {
@@ -200,7 +200,7 @@ var configureMapDispatchToProps = function (key) { return function (dispatch) {
200
200
  var dispatchPersistSearch = function (search) {
201
201
  var _a;
202
202
  dispatch({
203
- type: actions_1.SEARCH_ACTION_TYPE.PERSIST_SEARCH,
203
+ type: actions_1.ACTION.PERSIST_SEARCH,
204
204
  data: (_a = {},
205
205
  _a["" + key] = search,
206
206
  _a)
@@ -9,5 +9,5 @@ export interface CreateNonLtiGroupAlertDialogProps extends Omit<AlertDialogProps
9
9
  }
10
10
  export declare const CreateNonLtiGroupAlertDialog: FunctionComponent<CreateNonLtiGroupAlertDialogProps>;
11
11
  export declare const mapStateToProps: (state: BaseReduxState) => CreateNonLtiGroupAlertDialogReduxProps;
12
- declare const _default: import("react-redux").ConnectedComponent<React.FunctionComponent<CreateNonLtiGroupAlertDialogProps>, Pick<CreateNonLtiGroupAlertDialogProps, "description" | "id" | "isOpen" | "onProceed" | "proceedText" | "onCancel" | "cancelText" | "hideCancel" | "onDestroy" | "destroyText" | "manualBackground" | "externalHelpResourcePageUrl">>;
12
+ declare const _default: import("react-redux").ConnectedComponent<React.FunctionComponent<CreateNonLtiGroupAlertDialogProps>, Pick<CreateNonLtiGroupAlertDialogProps, "id" | "description" | "isOpen" | "onProceed" | "proceedText" | "onCancel" | "cancelText" | "hideCancel" | "onDestroy" | "destroyText" | "manualBackground" | "externalHelpResourcePageUrl">>;
13
13
  export default _default;
@@ -112,8 +112,7 @@ var Notifications = /** @class */ (function (_super) {
112
112
  if (!notification) {
113
113
  return;
114
114
  }
115
- actionCreator_1.dispatchAction({
116
- type: actions_1.NOTIFICATION_ACTION_TYPE.REMOVE_NOTIFICATION,
115
+ actionCreator_1.dispatchAction(actions_1.ACTION.REMOVE_NOTIFICATION, {
117
116
  notification: notification
118
117
  });
119
118
  };
@@ -1,5 +1,5 @@
1
1
  import React, { Component } from 'react';
2
- import { BaseReduxState, ExternalProvider, FetchErrorData, Model, ModelCollection, RoleDescriptions, UserRole, UserWithRoles } from '../../types';
2
+ import { BaseReduxState, ExternalProvider, FetchError, Model, ModelCollection, RoleDescriptions, UserRole, UserWithRoles } from '../../types';
3
3
  import { CollectionComponentWrappedProps } from '../HOC/CollectionComponent';
4
4
  export interface UserRolesReduxProps {
5
5
  /** Is the current user allowed to add, update, and delete user roles? */
@@ -96,7 +96,7 @@ export declare class UserRoles extends Component<UserRolesProps, UserRolesState>
96
96
  textForRole: (role: string, lowercase?: boolean) => string;
97
97
  singularArticleForRole: (role: string) => string;
98
98
  addUserRoles: (identifiers: string[], role: string) => void;
99
- didAdd: (data?: FetchErrorData | AddBusinessModel | undefined) => void;
99
+ didAdd: (data?: FetchError | AddBusinessModel | undefined) => void;
100
100
  updateUserRole: (userRoleToUpdate: UserRole, newRole: string) => void;
101
101
  didUpdate: (isSuccess: boolean) => void;
102
102
  alertRemoveUserRole: (userRoleToRemove: UserRole) => void;
@@ -107,5 +107,5 @@ export declare class UserRoles extends Component<UserRolesProps, UserRolesState>
107
107
  render(): JSX.Element;
108
108
  }
109
109
  export declare const mapStateToProps: (state: BaseReduxState, ownProps: UserRolesOwnProps) => UserRolesReduxProps;
110
- declare const _default: import("react-redux").ConnectedComponent<typeof UserRoles, Pick<React.ClassAttributes<UserRoles> & UserRolesProps, "guid" | "ref" | "modelName" | "pathParams" | "queryParams" | "externalProviders" | "model" | "key" | "readOnly" | "entityName" | "load" | "modelStatus" | "disableAutoLoad" | "disableAutoLoadOnParamsChange" | "modelArray" | "stopPeriodicLoad" | "create" | "update" | "delete" | "previousModelStatus" | "fetchingId" | "textForRole" | "defaultRole" | "roleDescriptions" | "renderAddDescription" | "isUpdateDisabled" | "isDeleteDisabled" | "allowMultipleRoles" | "requiredRole" | "isAddDisabled" | "modifyUserRoleActivityName" | "deleteOwnUserRoleActivityName" | "addRoleExcludeList" | "entity" | "filterUsers" | "onAdd" | "onUpdate" | "onRemove" | "renderTableDescription" | "lowercaseTextForRole" | "singularArticleForRole"> & UserRolesOwnProps>;
110
+ declare const _default: import("react-redux").ConnectedComponent<typeof UserRoles, Pick<React.ClassAttributes<UserRoles> & UserRolesProps, "ref" | "queryParams" | "modelName" | "externalProviders" | "model" | "key" | "readOnly" | "guid" | "entityName" | "load" | "pathParams" | "modelStatus" | "disableAutoLoad" | "disableAutoLoadOnParamsChange" | "modelArray" | "stopPeriodicLoad" | "create" | "update" | "delete" | "previousModelStatus" | "fetchingId" | "textForRole" | "defaultRole" | "roleDescriptions" | "renderAddDescription" | "isUpdateDisabled" | "isDeleteDisabled" | "allowMultipleRoles" | "requiredRole" | "isAddDisabled" | "modifyUserRoleActivityName" | "deleteOwnUserRoleActivityName" | "addRoleExcludeList" | "entity" | "filterUsers" | "onAdd" | "onUpdate" | "onRemove" | "renderTableDescription" | "lowercaseTextForRole" | "singularArticleForRole"> & UserRolesOwnProps>;
111
111
  export default _default;
@@ -42,18 +42,16 @@ var AlertDialog_1 = require("../../components/AlertDialog");
42
42
  var Loading_1 = require("../../components/Loading");
43
43
  var Add_1 = require("../../components/UserRoles/Add");
44
44
  var Table_1 = require("../../components/UserRoles/Table");
45
- var constants_1 = require("../../constants");
46
45
  var baseRole_1 = require("../../constants/baseRole");
47
46
  var modelStatus_1 = require("../../constants/modelStatus");
48
47
  var actionCreator_1 = require("../../redux/actionCreator");
49
48
  var actions_1 = require("../../redux/actions");
49
+ var fetchSaga_1 = require("../../redux/sagas/fetchSaga");
50
50
  var noStoreSaga_1 = require("../../redux/sagas/noStoreSaga");
51
- var types_1 = require("../../types");
52
51
  var baseActivity_1 = require("../../utils/baseActivity");
53
52
  var baseRole_2 = require("../../utils/baseRole");
54
53
  var domainIdentifier_1 = require("../../utils/domainIdentifier");
55
54
  var entityUserRole_1 = require("../../utils/entityUserRole");
56
- var prepareFetch_1 = require("../../utils/prepareFetch");
57
55
  var sort_1 = require("../../utils/sort");
58
56
  var user_1 = require("../../utils/user");
59
57
  var userRole_1 = require("../../utils/userRole");
@@ -128,7 +126,7 @@ var UserRoles = /** @class */ (function (_super) {
128
126
  _this.didAdd(data);
129
127
  });
130
128
  var rootModelName = entityUserRole_1.getRootModelName(_this.props);
131
- actionCreator_1.dispatchModelFetchRequest({
129
+ actionCreator_1.dispatchAction(actions_1.NET_ACTION.DATA_REQUESTED, {
132
130
  modelName: (rootModelName ? rootModelName + "." : '') + "addUserRoles",
133
131
  pathParams: entity ? [entity.id] : undefined,
134
132
  body: {
@@ -146,7 +144,7 @@ var UserRoles = /** @class */ (function (_super) {
146
144
  if (!roleForAdd || !identifiersToAdd || identifiersToAdd.length === 0) {
147
145
  throw new Error('didAdd was called in the incorrect state');
148
146
  }
149
- if (!data || types_1.isFetchErrorData(data)) {
147
+ if (!data || data.errorData) {
150
148
  var failMessage_1 = "The following identifiers were not added" + (entityName ? " to your " + entityName : '') + ":\r\n" + identifiersToAdd.join('\r\n');
151
149
  _this.setState({
152
150
  shouldResetAddForm: true,
@@ -157,7 +155,7 @@ var UserRoles = /** @class */ (function (_super) {
157
155
  });
158
156
  return;
159
157
  }
160
- var addedUserRoles = data.addedUserRoles, existingUserRoles = data.existingUserRoles, blockedUserRoles = data.blockedUserRoles, invalidIdentifiers = data.invalidIdentifiers, allowedDomains = data.allowedDomains, invalidDomainIdentifiers = data.invalidDomainIdentifiers;
158
+ var _c = data, addedUserRoles = _c.addedUserRoles, existingUserRoles = _c.existingUserRoles, blockedUserRoles = _c.blockedUserRoles, invalidIdentifiers = _c.invalidIdentifiers, allowedDomains = _c.allowedDomains, invalidDomainIdentifiers = _c.invalidDomainIdentifiers;
161
159
  var roleString = _this.textForRole(roleForAdd, true);
162
160
  var singularArticleString = _this.singularArticleForRole(roleForAdd);
163
161
  var addedNames = !!addedUserRoles && addedUserRoles.length > 0
@@ -209,15 +207,9 @@ var UserRoles = /** @class */ (function (_super) {
209
207
  // update redux with added userRoles
210
208
  var updatedModel_1 = lodash_1.cloneDeep(model);
211
209
  addedUserRoles.forEach(function (userRole) { return (updatedModel_1[userRole.id] = lodash_1.cloneDeep(userRole)); });
212
- // create a dummy action and call `prepareFetch` to get the final `modelPath`
213
- var modelPath = prepareFetch_1.prepareFetch({
214
- type: actions_1.MODEL_FETCH_REQUEST_ACTION_TYPE.FETCH_REQUEST,
215
- modelName: modelName,
216
- pathParams: pathParams
217
- }, constants_1.getEndpointMappings()).modelPath;
218
- actionCreator_1.dispatchAction({
219
- type: actions_1.MODEL_FETCH_RESULT_ACTION_TYPE.FETCH_RESULT_RECEIVED,
220
- modelPath: modelPath,
210
+ var prepareFetchResult = fetchSaga_1.prepareFetch({ type: actions_1.NET_ACTION.DATA_REQUESTED, modelName: modelName, pathParams: pathParams });
211
+ actionCreator_1.dispatchAction(actions_1.NET_ACTION.FETCH_RESULT_RECEIVED, {
212
+ modelName: prepareFetchResult.modelName,
221
213
  data: updatedModel_1
222
214
  });
223
215
  if (onAdd) {
@@ -236,7 +228,7 @@ var UserRoles = /** @class */ (function (_super) {
236
228
  failMessage: undefined
237
229
  });
238
230
  _this.props.update({
239
- id: userRoleToUpdate.id,
231
+ id: userRoleToUpdate.id.toString(),
240
232
  body: {},
241
233
  queryParams: {
242
234
  roleName: newRole
@@ -1,4 +1,5 @@
1
1
  import { EndpointMapping, EndpointMappings } from './types';
2
2
  export declare const entityUserRoleEndpointMappings: (endpointName: string) => EndpointMappings;
3
3
  export declare const groupEndpointMapping: EndpointMapping;
4
+ export declare const authEndpointMappings: EndpointMappings;
4
5
  export declare const endpointMappings: EndpointMappings;
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.endpointMappings = exports.groupEndpointMapping = exports.entityUserRoleEndpointMappings = void 0;
14
+ exports.endpointMappings = exports.authEndpointMappings = exports.groupEndpointMapping = exports.entityUserRoleEndpointMappings = void 0;
15
15
  var entityUserRoleEndpointMappings = function (endpointName) {
16
16
  var _a;
17
17
  return _a = {},
@@ -47,7 +47,7 @@ exports.groupEndpointMapping = __assign({ _config: {
47
47
  }
48
48
  }
49
49
  } }, exports.entityUserRoleEndpointMappings('groupUserRoles'));
50
- exports.endpointMappings = {
50
+ exports.authEndpointMappings = {
51
51
  codeFromLocalCredentials: {
52
52
  _config: {
53
53
  fetch: {
@@ -59,13 +59,13 @@ exports.endpointMappings = {
59
59
  codeFromCasV1: {
60
60
  _config: {
61
61
  fetch: {
62
- path: '/api/account/casV1',
62
+ path: '/api/account/CasV1',
63
63
  method: 'POST'
64
64
  }
65
65
  }
66
66
  },
67
67
  codeFromCasTicket: {
68
- _config: { fetch: { path: '/api/account/validateCasTicket' } }
68
+ _config: { fetch: { path: '/api/Account/ValidateCasTicket' } }
69
69
  },
70
70
  getToken: {
71
71
  _config: {
@@ -80,9 +80,11 @@ exports.endpointMappings = {
80
80
  },
81
81
  user: {
82
82
  userInfo: {
83
- _config: { fetch: { path: '/api/account/userInfo' } }
83
+ _config: { fetch: { path: '/api/Account/UserInfo' } }
84
84
  }
85
- },
85
+ }
86
+ };
87
+ exports.endpointMappings = {
86
88
  urlChecker: {
87
89
  _config: {
88
90
  fetch: {
@@ -14,6 +14,9 @@ function useCollection(props) {
14
14
  if (params === void 0) { params = {}; }
15
15
  collection_1.loadCollection(methodConfig, params);
16
16
  }, [methodConfig]);
17
+ var stopPeriodicLoad = react_1.useCallback(function (taskId) {
18
+ collection_1.stopCollectionPeriodicLoad(modelName, taskId);
19
+ }, [modelName]);
17
20
  var create = react_1.useCallback(function (params) {
18
21
  collection_1.createItemInCollection(methodConfig, params);
19
22
  }, [methodConfig]);
@@ -60,7 +63,7 @@ function useCollection(props) {
60
63
  previousModelStatus: previousModelStatus,
61
64
  fetchingId: fetchingId,
62
65
  load: load,
63
- stopPeriodicLoad: collection_1.stopCollectionPeriodicLoad,
66
+ stopPeriodicLoad: stopPeriodicLoad,
64
67
  create: create,
65
68
  update: update,
66
69
  delete: deleteItem
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { Dictionary } from 'lodash';
2
3
  import { CollectionCommonProps, CollectionCommonState, CollectionMethodConfiguration, CollectionSelectorMethod, Model, ModelCollection } from '../types';
3
4
  /** Configuration returned by `useCollectionConfiguration` for use in `useCollection` and `useCollectionItem` */
4
5
  export interface CollectionConfiguration<TModel extends Model> extends CollectionCommonState {
@@ -8,10 +9,10 @@ export interface CollectionConfiguration<TModel extends Model> extends Collectio
8
9
  modelArray?: TModel[];
9
10
  modelMinusRelations?: Partial<TModel>;
10
11
  previousModel: TModel | ModelCollection<TModel>;
11
- pathParams: Array<string | number>;
12
- previousPathParams: Array<string | number>;
13
- queryParams?: Record<string, string | number | boolean>;
14
- previousQueryParams?: Record<string, string | number | boolean>;
12
+ pathParams: string[];
13
+ previousPathParams: string[];
14
+ queryParams?: Dictionary<string>;
15
+ previousQueryParams?: Dictionary<string>;
15
16
  methodConfig: CollectionMethodConfiguration;
16
17
  isInitialized: boolean;
17
18
  setIsInitialized: (value: React.SetStateAction<boolean>) => void;
@@ -14,6 +14,9 @@ function useCollectionItem(props) {
14
14
  if (params === void 0) { params = {}; }
15
15
  collection_1.loadCollectionItem(methodConfig, params);
16
16
  }, [methodConfig]);
17
+ var stopPeriodicLoad = react_1.useCallback(function (taskId) {
18
+ collection_1.stopCollectionPeriodicLoad(modelName, taskId);
19
+ }, [modelName]);
17
20
  var create = react_1.useCallback(function (params) {
18
21
  collection_1.createCollectionItem(model, methodConfig, params);
19
22
  }, [model, methodConfig]);
@@ -53,7 +56,7 @@ function useCollectionItem(props) {
53
56
  modelStatus: modelStatus,
54
57
  previousModelStatus: previousModelStatus,
55
58
  load: load,
56
- stopPeriodicLoad: collection_1.stopCollectionPeriodicLoad,
59
+ stopPeriodicLoad: stopPeriodicLoad,
57
60
  create: create,
58
61
  update: update,
59
62
  delete: deleteItem
package/lib/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export * from './constants';
2
2
  export * from './types';
3
3
  export * from './redux/actions';
4
- export { dispatchAction, dispatchModelFetchRequest, dispatchPeriodicModelFetchRequest, dispatchPeriodicModelFetchTerminateAction, dispatchModelRemoveKeyAction, addNotification } from './redux/actionCreator';
5
4
  export { default as configureStore } from './redux/configureStore';
6
5
  export { setOtherDependentSagas } from './redux/sagas/rootSaga';
7
6
  export { setOnPostLoginSaga } from './redux/sagas/postLoginDataSaga';
package/lib/index.js CHANGED
@@ -13,17 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.setConfigureModelsReducer = exports.setOtherReducers = exports.updatePersistBlacklist = exports.setOnPostLoginSaga = exports.setOtherDependentSagas = exports.configureStore = exports.addNotification = exports.dispatchModelRemoveKeyAction = exports.dispatchPeriodicModelFetchTerminateAction = exports.dispatchPeriodicModelFetchRequest = exports.dispatchModelFetchRequest = exports.dispatchAction = void 0;
16
+ exports.setConfigureModelsReducer = exports.setOtherReducers = exports.updatePersistBlacklist = exports.setOnPostLoginSaga = exports.setOtherDependentSagas = exports.configureStore = void 0;
17
17
  __exportStar(require("./constants"), exports);
18
18
  __exportStar(require("./types"), exports);
19
19
  __exportStar(require("./redux/actions"), exports);
20
- var actionCreator_1 = require("./redux/actionCreator");
21
- Object.defineProperty(exports, "dispatchAction", { enumerable: true, get: function () { return actionCreator_1.dispatchAction; } });
22
- Object.defineProperty(exports, "dispatchModelFetchRequest", { enumerable: true, get: function () { return actionCreator_1.dispatchModelFetchRequest; } });
23
- Object.defineProperty(exports, "dispatchPeriodicModelFetchRequest", { enumerable: true, get: function () { return actionCreator_1.dispatchPeriodicModelFetchRequest; } });
24
- Object.defineProperty(exports, "dispatchPeriodicModelFetchTerminateAction", { enumerable: true, get: function () { return actionCreator_1.dispatchPeriodicModelFetchTerminateAction; } });
25
- Object.defineProperty(exports, "dispatchModelRemoveKeyAction", { enumerable: true, get: function () { return actionCreator_1.dispatchModelRemoveKeyAction; } });
26
- Object.defineProperty(exports, "addNotification", { enumerable: true, get: function () { return actionCreator_1.addNotification; } });
27
20
  var configureStore_1 = require("./redux/configureStore");
28
21
  Object.defineProperty(exports, "configureStore", { enumerable: true, get: function () { return __importDefault(configureStore_1).default; } });
29
22
  var rootSaga_1 = require("./redux/sagas/rootSaga");
@@ -1,10 +1,4 @@
1
1
  import { Action, Store } from 'redux';
2
- import { Notification } from '../types/Notification';
3
- import { ModelFetchRequestAction, ModelRemoveKeyAction, PeriodicModelFetchRequestAction, PeriodicModelFetchTerminationAction } from './actions';
4
2
  export declare const setStore: (storeParam: Store) => void;
5
- export declare const dispatchAction: <A extends Action<any>>(action: A) => void;
6
- export declare const dispatchModelFetchRequest: (action: Omit<ModelFetchRequestAction, 'type'>) => void;
7
- export declare const dispatchPeriodicModelFetchRequest: (action: Omit<PeriodicModelFetchRequestAction, 'type'>) => void;
8
- export declare const dispatchPeriodicModelFetchTerminateAction: (action: Omit<PeriodicModelFetchTerminationAction, 'type'>) => void;
9
- export declare const dispatchModelRemoveKeyAction: (action: Omit<ModelRemoveKeyAction, 'type'>) => void;
10
- export declare const addNotification: ({ text, type, modalId }: Omit<Notification, 'id'>) => void;
3
+ export declare const dispatchAction: (type: string, payload?: any) => void;
4
+ export declare const createAction: (type: string, payload?: any) => Action;
@@ -1,55 +1,17 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.addNotification = exports.dispatchModelRemoveKeyAction = exports.dispatchPeriodicModelFetchTerminateAction = exports.dispatchPeriodicModelFetchRequest = exports.dispatchModelFetchRequest = exports.dispatchAction = exports.setStore = void 0;
15
- var uuid_1 = require("uuid");
16
- var actions_1 = require("./actions");
17
- var NotificationAction_1 = require("./actions/NotificationAction");
3
+ exports.createAction = exports.dispatchAction = exports.setStore = void 0;
4
+ var lodash_1 = require("lodash");
18
5
  var store;
19
6
  var setStore = function (storeParam) {
20
7
  store = storeParam;
21
8
  };
22
9
  exports.setStore = setStore;
23
- var dispatchAction = function (action) {
24
- store.dispatch(action);
10
+ var dispatchAction = function (type, payload) {
11
+ store.dispatch(exports.createAction(type, payload));
25
12
  };
26
13
  exports.dispatchAction = dispatchAction;
27
- var dispatchModelFetchRequest = function (action) {
28
- exports.dispatchAction(__assign({ type: actions_1.MODEL_FETCH_REQUEST_ACTION_TYPE.FETCH_REQUEST }, action));
29
- };
30
- exports.dispatchModelFetchRequest = dispatchModelFetchRequest;
31
- var dispatchPeriodicModelFetchRequest = function (action) {
32
- exports.dispatchAction(__assign({ type: actions_1.MODEL_FETCH_REQUEST_ACTION_TYPE.PERIODIC_FETCH_REQUEST }, action));
33
- };
34
- exports.dispatchPeriodicModelFetchRequest = dispatchPeriodicModelFetchRequest;
35
- var dispatchPeriodicModelFetchTerminateAction = function (action) {
36
- exports.dispatchAction(__assign({ type: actions_1.PERIODIC_MODEL_FETCH_TERMINATION_ACTION_TYPE.TERMINATE }, action));
37
- };
38
- exports.dispatchPeriodicModelFetchTerminateAction = dispatchPeriodicModelFetchTerminateAction;
39
- var dispatchModelRemoveKeyAction = function (action) {
40
- exports.dispatchAction(__assign({ type: actions_1.MODEL_REMOVE_KEY_ACTION_TYPE }, action));
41
- };
42
- exports.dispatchModelRemoveKeyAction = dispatchModelRemoveKeyAction;
43
- var addNotification = function (_a) {
44
- var text = _a.text, type = _a.type, modalId = _a.modalId;
45
- exports.dispatchAction({
46
- type: NotificationAction_1.NOTIFICATION_ACTION_TYPE.ADD_NOTIFICATION,
47
- notification: {
48
- id: uuid_1.v4(),
49
- text: text,
50
- type: type,
51
- modalId: modalId
52
- }
53
- });
14
+ var createAction = function (type, payload) {
15
+ return lodash_1.merge({}, { type: type }, payload);
54
16
  };
55
- exports.addNotification = addNotification;
17
+ exports.createAction = createAction;
@@ -0,0 +1,39 @@
1
+ import { Notification } from '../types';
2
+ export declare enum NET_ACTION {
3
+ DATA_REQUESTED = "application/DATA_REQUESTED",
4
+ PERIODIC_DATA_REQUESTED = "application/PERIODIC_DATA_REQUESTED",
5
+ PERIODIC_TERMINATION_REQUESTED = "application/PERIODIC_TERMINATION_REQUESTED",
6
+ DATA_REQUESTED_USE_LATEST = "application/DATA_REQUESTED_USE_LATEST",
7
+ PERIODIC_TERMINATION_SUCCEEDED = "sagas/PERIODIC_TERMINATION_SUCCEEDED",
8
+ FETCH_REQUESTED = "net/FETCH_REQUESTED",
9
+ TRANSIENT_FETCH_REQUESTED = "net/TRANSIENT_FETCH_REQUESTED",
10
+ KEY_REMOVAL_REQUESTED = "net/KEY_REMOVAL_REQUESTED",
11
+ FETCH_RESULT_RECEIVED = "net/FETCH_RESULT_RECEIVED",
12
+ FETCH_FAILED = "net/FETCH_FAILED",
13
+ TRANSIENT_FETCH_RESULT_RECEIVED = "net/TRANSIENT_FETCH_RESULT_RECEIVED",
14
+ TRANSIENT_FETCH_FAILED = "net/TRANSIENT_FETCH_FAILED",
15
+ TRY_FETCH_FAILED = "net/TRY_FETCH_FAILED"
16
+ }
17
+ export declare enum AUTH_ACTION {
18
+ AUTH_INITIALIZED = "auth/INITIALIZED",
19
+ CAS_V1_LOGIN_REQUESTED = "application/CAS_V1_LOGIN_REQUESTED",
20
+ CAS_LOGIN_REQUESTED = "application/CAS_LOGIN_REQUESTED",
21
+ LOCAL_LOGIN_REQUESTED = "application/LOCAL_LOGIN_REQUESTED",
22
+ LOGIN_REQUESTED = "auth/LOGIN_REQUESTED",
23
+ LOG_OUT_REQUESTED = "auth/LOG_OUT_REQUESTED",
24
+ GET_TOKEN_SUCCEEDED = "auth/GET_TOKEN_SUCCEEDED",
25
+ TOKEN_REFRESH_SUCCEEDED = "auth/TOKEN_REFRESH_SUCCEEDED",
26
+ TOKEN_REFRESH_FAILED = "auth/TOKEN_REFRESH_FAILED",
27
+ LOGIN_FAILED = "auth/LOGIN_FAILED"
28
+ }
29
+ export declare enum ACTION {
30
+ IDENTITY_PROVIDER_LOGIN_REQUESTED = "auth/IDENTITY_PROVIDER_LOGIN_REQUESTED",
31
+ ADD_NOTIFICATION = "notifications/ADD_NOTIFICATION",
32
+ REMOVE_NOTIFICATION = "notifications/REMOVE_NOTIFICATION",
33
+ PERSIST_SEARCH = "manage/PERSIST_SEARCH",
34
+ MODAL_ENTERING = "modals/ENTERING",
35
+ MODAL_EXITED = "modals/EXITED"
36
+ }
37
+ export interface AddNotification extends Omit<Notification, 'id'> {
38
+ }
39
+ export declare const addNotification: ({ text, type, modalId }: AddNotification) => void;