@truedat/core 7.5.9 → 7.5.11

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 (279) hide show
  1. package/package.json +36 -68
  2. package/src/__tests__/routesTree.spec.js +108 -0
  3. package/src/api/queries.js +10 -0
  4. package/src/api.js +3 -0
  5. package/src/components/AddMemberForm.js +10 -10
  6. package/src/components/AddResourceMember.js +0 -2
  7. package/src/components/AdminMenu.js +0 -1
  8. package/src/components/AiMenu.js +0 -1
  9. package/src/components/Alert.js +1 -1
  10. package/src/components/AlertExporter.js +0 -1
  11. package/src/components/ArrayDecorator.js +0 -1
  12. package/src/components/Authorized.js +2 -2
  13. package/src/components/AvailableFilters.js +1 -2
  14. package/src/components/CSVFileModal.js +1 -1
  15. package/src/components/CardGroupsAccordion.js +1 -1
  16. package/src/components/CatalogMenu.js +1 -2
  17. package/src/components/CommentRow.js +7 -8
  18. package/src/components/Comments.js +3 -4
  19. package/src/components/CommentsForm.js +2 -2
  20. package/src/components/ConfirmModal.js +0 -1
  21. package/src/components/CursorPagination.js +1 -2
  22. package/src/components/DashboardMenu.js +0 -1
  23. package/src/components/Date.js +0 -1
  24. package/src/components/DateFilter.js +1 -1
  25. package/src/components/DateRangeFilter.js +1 -1
  26. package/src/components/DateTime.js +0 -1
  27. package/src/components/DescriptionInput.js +1 -1
  28. package/src/components/DomainSelector.js +2 -3
  29. package/src/components/DropdownMenuItem.js +0 -1
  30. package/src/components/ErrorBoundary.js +8 -7
  31. package/src/components/FieldLabel.js +0 -1
  32. package/src/components/FilterDropdown.js +3 -3
  33. package/src/components/FilterItem.js +0 -1
  34. package/src/components/FilterMultilevelDropdown.js +1 -1
  35. package/src/components/GenericCrumbs.js +3 -4
  36. package/src/components/GlossaryMenu.js +24 -31
  37. package/src/components/GrantMenu.js +0 -1
  38. package/src/components/Graph.js +101 -0
  39. package/src/components/GroupActions.js +15 -15
  40. package/src/components/Hierarchy.js +7 -10
  41. package/src/components/HierarchyFilterDropdown.js +1 -2
  42. package/src/components/HierarchyNodeFinder.js +4 -4
  43. package/src/components/HierarchySelector.js +1 -2
  44. package/src/components/HistoryBackButton.js +6 -6
  45. package/src/components/IngestMenu.js +0 -1
  46. package/src/components/LanguagesTabs.js +4 -4
  47. package/src/components/LineageMenu.js +0 -1
  48. package/src/components/Loading.js +1 -2
  49. package/src/components/MembersMenu.js +0 -1
  50. package/src/components/ModalSaveFilter.js +1 -1
  51. package/src/components/NodeOpenActions.js +0 -1
  52. package/src/components/OptionGroup.js +1 -2
  53. package/src/components/OptionModal.js +0 -1
  54. package/src/components/Pagination.js +0 -1
  55. package/src/components/QualityMenu.js +0 -1
  56. package/src/components/QxMenu.js +0 -1
  57. package/src/components/Redirector.js +3 -3
  58. package/src/components/ResourceMember.js +1 -2
  59. package/src/components/ResourceMembers.js +3 -3
  60. package/src/components/ResourceMembersActions.js +1 -2
  61. package/src/components/RichTextEditor.js +7 -8
  62. package/src/components/RouteListener.js +11 -32
  63. package/src/components/SafeLink.js +0 -1
  64. package/src/components/ScrollToTop.js +13 -16
  65. package/src/components/SearchFilterDropdown.js +1 -1
  66. package/src/components/SearchInput.js +3 -3
  67. package/src/components/SearchMenu.js +0 -1
  68. package/src/components/SelectedFilters.js +1 -2
  69. package/src/components/SideMenu.js +0 -1
  70. package/src/components/SidebarToggle.js +2 -2
  71. package/src/components/StructureFilterItem.js +0 -1
  72. package/src/components/Submenu.js +8 -7
  73. package/src/components/SystemsLoader.js +27 -0
  74. package/src/components/TaxonomyMenu.js +0 -1
  75. package/src/components/TemplateSelector.js +1 -1
  76. package/src/components/TemplatesLoader.js +24 -0
  77. package/src/components/TreeSelector.js +4 -4
  78. package/src/components/Unauthorized.js +0 -1
  79. package/src/components/UploadModal.js +152 -176
  80. package/src/components/UserFilter.js +0 -2
  81. package/src/components/UserFilters.js +0 -2
  82. package/src/components/__tests__/AddMemberForm.spec.js +26 -38
  83. package/src/components/__tests__/AddResourceMember.spec.js +0 -1
  84. package/src/components/__tests__/AdminMenu.spec.js +0 -1
  85. package/src/components/__tests__/Alert.spec.js +17 -21
  86. package/src/components/__tests__/AvailableFilters.spec.js +19 -14
  87. package/src/components/__tests__/CardGroupsAccordion.spec.js +24 -15
  88. package/src/components/__tests__/CatalogMenu.spec.js +27 -45
  89. package/src/components/__tests__/CommentsLoader.spec.js +17 -14
  90. package/src/components/__tests__/CursorPagination.spec.js +0 -1
  91. package/src/components/__tests__/DashboardMenu.spec.js +0 -1
  92. package/src/components/__tests__/DateFilter.spec.js +6 -28
  93. package/src/components/__tests__/DateTime.spec.js +0 -1
  94. package/src/components/__tests__/DomainSelector.spec.js +4 -4
  95. package/src/components/__tests__/DropdownMenuItem.spec.js +0 -1
  96. package/src/components/__tests__/FilterDropdown.spec.js +28 -27
  97. package/src/components/__tests__/FilterItem.spec.js +19 -20
  98. package/src/components/__tests__/FilterMultilevelDropdown.spec.js +16 -16
  99. package/src/components/__tests__/FiltersLoader.spec.js +25 -20
  100. package/src/components/__tests__/GenericCrumbs.spec.js +0 -1
  101. package/src/components/__tests__/GlossaryMenu.spec.js +0 -1
  102. package/src/components/__tests__/GrantMenu.spec.js +0 -1
  103. package/src/components/__tests__/GroupActions.spec.js +0 -1
  104. package/src/components/__tests__/Hierarchy.spec.js +0 -1
  105. package/src/components/__tests__/HierarchyFilterDropdown.spec.js +16 -14
  106. package/src/components/__tests__/HierarchyNodeFinder.spec.js +0 -1
  107. package/src/components/__tests__/HierarchySelector.spec.js +28 -35
  108. package/src/components/__tests__/HistoryBackButton.spec.js +23 -23
  109. package/src/components/__tests__/IngestMenu.spec.js +0 -1
  110. package/src/components/__tests__/LineageMenu.spec.js +0 -1
  111. package/src/components/__tests__/Loading.spec.js +4 -5
  112. package/src/components/__tests__/MembersMenu.spec.js +0 -1
  113. package/src/components/__tests__/ModalSaveFilter.spec.js +0 -1
  114. package/src/components/__tests__/OptionGroup.spec.js +5 -7
  115. package/src/components/__tests__/Pagination.spec.js +22 -16
  116. package/src/components/__tests__/QualityMenu.spec.js +0 -1
  117. package/src/components/__tests__/Redirector.spec.js +5 -10
  118. package/src/components/__tests__/ResourceMembers.spec.js +36 -27
  119. package/src/components/__tests__/ResourceMembersAction.spec.js +1 -2
  120. package/src/components/__tests__/RouteListener.spec.js +25 -26
  121. package/src/components/__tests__/SafeLink.spec.js +0 -1
  122. package/src/components/__tests__/SearchDateFilter.spec.js +0 -1
  123. package/src/components/__tests__/SearchFilterDropdown.spec.js +32 -24
  124. package/src/components/__tests__/SearchInput.spec.js +5 -5
  125. package/src/components/__tests__/SearchMenu.spec.js +0 -1
  126. package/src/components/__tests__/SelectedFilters.spec.js +50 -47
  127. package/src/components/__tests__/SideMenu.spec.js +5 -8
  128. package/src/components/__tests__/StructureFilterItem.spec.js +13 -11
  129. package/src/components/__tests__/Submenu.spec.js +0 -1
  130. package/src/components/__tests__/SystemsLoader.spec.js +40 -0
  131. package/src/components/__tests__/TaxonomyMenu.spec.js +0 -1
  132. package/src/components/__tests__/TemplateSelector.spec.js +27 -29
  133. package/src/components/__tests__/TemplatesLoader.spec.js +30 -0
  134. package/src/components/__tests__/TreeSelector.spec.js +110 -83
  135. package/src/components/__tests__/UploadModal.spec.js +171 -0
  136. package/src/components/__tests__/UserFilters.spec.js +44 -37
  137. package/src/components/__tests__/__snapshots__/AddMemberForm.spec.js.snap +1 -0
  138. package/src/components/__tests__/__snapshots__/AddResourceMember.spec.js.snap +10 -9
  139. package/src/components/__tests__/__snapshots__/AdminMenu.spec.js.snap +22 -11
  140. package/src/components/__tests__/__snapshots__/Alert.spec.js.snap +29 -17
  141. package/src/components/__tests__/__snapshots__/AvailableFilters.spec.js.snap +1 -1
  142. package/src/components/__tests__/__snapshots__/CatalogMenu.spec.js.snap +18 -8
  143. package/src/components/__tests__/__snapshots__/CursorPagination.spec.js.snap +3 -0
  144. package/src/components/__tests__/__snapshots__/DateFilter.spec.js.snap +165 -107
  145. package/src/components/__tests__/__snapshots__/DomainSelector.spec.js.snap +1 -1
  146. package/src/components/__tests__/__snapshots__/FilterItem.spec.js.snap +13 -20
  147. package/src/components/__tests__/__snapshots__/GlossaryMenu.spec.js.snap +8 -0
  148. package/src/components/__tests__/__snapshots__/GrantMenu.spec.js.snap +14 -7
  149. package/src/components/__tests__/__snapshots__/GroupActions.spec.js.snap +0 -1
  150. package/src/components/__tests__/__snapshots__/Hierarchy.spec.js.snap +0 -1
  151. package/src/components/__tests__/__snapshots__/HierarchySelector.spec.js.snap +1 -1
  152. package/src/components/__tests__/__snapshots__/HistoryBackButton.spec.js.snap +10 -20
  153. package/src/components/__tests__/__snapshots__/IngestMenu.spec.js.snap +3 -1
  154. package/src/components/__tests__/__snapshots__/LineageMenu.spec.js.snap +6 -3
  155. package/src/components/__tests__/__snapshots__/Loading.spec.js.snap +5 -4
  156. package/src/components/__tests__/__snapshots__/MembersMenu.spec.js.snap +6 -3
  157. package/src/components/__tests__/__snapshots__/OptionGroup.spec.js.snap +38 -28
  158. package/src/components/__tests__/__snapshots__/Pagination.spec.js.snap +213 -64
  159. package/src/components/__tests__/__snapshots__/QualityMenu.spec.js.snap +14 -8
  160. package/src/components/__tests__/__snapshots__/ResourceMembers.spec.js.snap +1 -0
  161. package/src/components/__tests__/__snapshots__/ResourceMembersAction.spec.js.snap +2 -1
  162. package/src/components/__tests__/__snapshots__/RouteListener.spec.js.snap +1 -1
  163. package/src/components/__tests__/__snapshots__/SearchInput.spec.js.snap +10 -12
  164. package/src/components/__tests__/__snapshots__/SearchMenu.spec.js.snap +3 -1
  165. package/src/components/__tests__/__snapshots__/SelectedFilters.spec.js.snap +8 -8
  166. package/src/components/__tests__/__snapshots__/SideMenu.spec.js.snap +112 -50
  167. package/src/components/__tests__/__snapshots__/Submenu.spec.js.snap +3 -0
  168. package/src/components/__tests__/__snapshots__/SystemsLoader.spec.js.snap +3 -0
  169. package/src/components/__tests__/__snapshots__/TaxonomyMenu.spec.js.snap +3 -1
  170. package/src/components/__tests__/__snapshots__/TemplateSelector.spec.js.snap +7 -7
  171. package/src/components/common/SearchContextWrapper.js +1 -4
  172. package/src/components/index.js +4 -2
  173. package/src/hooks/__mocks__/useAuthorized.js +2 -0
  174. package/src/hooks/__mocks__/useUserFilters.js +17 -0
  175. package/src/hooks/__tests__/{useAclEntries.spec.js → useAclEntries.spec.js.disabled} +1 -1
  176. package/src/hooks/__tests__/useAuthorized.spec.js +1 -1
  177. package/src/hooks/useAclEntries.js +6 -3
  178. package/src/hooks/useActiveRoute.js +3 -3
  179. package/src/hooks/useActiveRoutes.js +4 -4
  180. package/src/hooks/useHierarchies.js +112 -0
  181. package/src/hooks/useLocales.js +1 -1
  182. package/src/hooks/useMessages.js +1 -1
  183. package/src/hooks/usePath.js +4 -4
  184. package/src/hooks/useUserFilters.js +1 -1
  185. package/src/i18n/components/EditableCell.js +1 -1
  186. package/src/i18n/components/I18nRoutes.js +11 -16
  187. package/src/i18n/components/LangProvider.js +56 -101
  188. package/src/i18n/components/LangProviderWrapper.js +26 -33
  189. package/src/i18n/components/Languages.js +8 -7
  190. package/src/i18n/components/MessageForm.js +9 -23
  191. package/src/i18n/components/Messages.js +5 -4
  192. package/src/i18n/components/MessagesTable.js +0 -1
  193. package/src/i18n/components/NewMessage.js +5 -4
  194. package/src/i18n/components/__tests__/EditableCell.spec.js +18 -20
  195. package/src/i18n/components/__tests__/I18nRoutes.spec.js +39 -5
  196. package/src/i18n/components/__tests__/MessageForm.spec.js +0 -1
  197. package/src/i18n/components/__tests__/Messages.spec.js +9 -21
  198. package/src/i18n/components/__tests__/NewMessage.spec.js +0 -1
  199. package/src/i18n/components/__tests__/__snapshots__/I18nRoutes.spec.js.snap +25 -1
  200. package/src/i18n/components/__tests__/__snapshots__/MessageForm.spec.js.snap +1 -0
  201. package/src/i18n/components/__tests__/__snapshots__/Messages.spec.js.snap +5 -13
  202. package/src/i18n/components/__tests__/__snapshots__/NewMessage.spec.js.snap +2 -0
  203. package/src/reducers/__tests__/comments.spec.js +9 -6
  204. package/src/reducers/__tests__/commentsResource.spec.js +5 -2
  205. package/src/reducers/__tests__/coreMessage.spec.js +1 -1
  206. package/src/reducers/__tests__/dashboardDomains.spec.js +5 -5
  207. package/src/reducers/__tests__/systems.spec.js +42 -0
  208. package/src/reducers/__tests__/systemsLoading.spec.js +22 -0
  209. package/src/reducers/index.js +5 -1
  210. package/src/reducers/systems.js +19 -0
  211. package/src/reducers/systemsLoading.js +14 -0
  212. package/src/router/Loader.js +10 -0
  213. package/src/router/ProtectedRoute.js +11 -0
  214. package/src/router/Unauthorized.js +16 -0
  215. package/src/router/__tests__/ProtectedRoute.spec.js +49 -0
  216. package/src/router/__tests__/Unauthorized.spec.js +15 -0
  217. package/src/router/__tests__/__snapshots__/ProtectedRoute.spec.js.snap +44 -0
  218. package/src/router/__tests__/__snapshots__/Unauthorized.spec.js.snap +26 -0
  219. package/src/router/index.js +5 -0
  220. package/src/routes.js +7 -7
  221. package/src/routesTree.js +93 -0
  222. package/src/routines.js +8 -0
  223. package/src/sagas/__tests__/addComment.spec.js +3 -5
  224. package/src/sagas/__tests__/fetchComments.spec.js +1 -1
  225. package/src/sagas/__tests__/fetchSystems.spec.js +69 -0
  226. package/src/sagas/fetchSystems.js +25 -0
  227. package/src/sagas/index.js +3 -0
  228. package/src/search/FilterDropdown.js +0 -1
  229. package/src/search/FilterItem.js +0 -1
  230. package/src/search/FilterMultilevelDropdown.js +1 -1
  231. package/src/search/FilterQueryDropdown.js +38 -42
  232. package/src/search/HierarchyFilterDropdown.js +3 -4
  233. package/src/search/ModalSaveFilter.js +1 -1
  234. package/src/search/Pagination.js +0 -1
  235. package/src/search/SearchContext.js +9 -11
  236. package/src/search/SearchDateFilter.js +0 -1
  237. package/src/search/SearchFilters.js +1 -2
  238. package/src/search/SearchSelectedFilters.js +4 -4
  239. package/src/search/SearchWidget.js +0 -4
  240. package/src/search/UserFilter.js +0 -2
  241. package/src/search/UserFilters.js +4 -3
  242. package/src/search/__tests__/FilterDropdown.spec.js +54 -51
  243. package/src/search/__tests__/FilterItem.spec.js +20 -15
  244. package/src/search/__tests__/FilterQueryDropdown.spec.js +106 -84
  245. package/src/search/__tests__/ModalSaveFilter.spec.js +4 -5
  246. package/src/search/__tests__/SearchContext.spec.js +3 -4
  247. package/src/search/__tests__/SearchWidget.spec.js +0 -1
  248. package/src/selectors/__tests__/getConceptSubscope.spec.js +37 -0
  249. package/src/selectors/__tests__/getDashboardConfig.spec.js +9 -9
  250. package/src/selectors/__tests__/getMessage.spec.js +1 -1
  251. package/src/selectors/__tests__/getSidemenuGlossarySubscopes.spec.js +17 -0
  252. package/src/selectors/__tests__/makeActiveFiltersSelector.spec.js +2 -2
  253. package/src/selectors/__tests__/makeSearchQuerySelector.spec.js +1 -1
  254. package/src/selectors/__tests__/makeTagOptionsSelector.spec.js +6 -6
  255. package/src/selectors/getConceptSubscope.js +19 -0
  256. package/src/selectors/getMessage.js +2 -2
  257. package/src/selectors/getRecipients.js +34 -0
  258. package/src/selectors/getSidemenuGlossarySubscopes.js +8 -0
  259. package/src/selectors/index.js +5 -0
  260. package/src/selectors/makeActiveFiltersSelector.js +2 -6
  261. package/src/selectors/makeSearchQuerySelector.js +4 -11
  262. package/src/selectors/makeTagOptionsSelector.js +4 -8
  263. package/src/selectors/subscopedTemplates.js +16 -0
  264. package/src/selectors/taxonomy.js +170 -0
  265. package/src/services/__tests__/columnDecorator.spec.js +1 -1
  266. package/src/services/__tests__/dateFilterFormatter.spec.js +2 -2
  267. package/src/services/__tests__/fieldType.spec.js +2 -2
  268. package/src/services/__tests__/filters.spec.js +1 -1
  269. package/src/services/__tests__/message.spec.js +2 -2
  270. package/src/services/__tests__/operators.spec.js +5 -5
  271. package/src/services/__tests__/sort.spec.js +8 -8
  272. package/src/services/__tests__/storage.spec.js +17 -0
  273. package/src/services/arrays.js +16 -14
  274. package/src/services/columnDecoratorComponent.js +2 -2
  275. package/src/services/columnDecorators.js +0 -1
  276. package/src/services/fieldType.js +8 -8
  277. package/src/services/filters.js +5 -5
  278. package/src/services/message.js +1 -4
  279. package/src/services/operators.js +1 -1
@@ -1,6 +1,5 @@
1
- import React from "react";
2
1
  import PropTypes from "prop-types";
3
- import { Link } from "react-router-dom";
2
+ import { Link } from "react-router";
4
3
  import { Button } from "semantic-ui-react";
5
4
  import { FormattedMessage } from "react-intl";
6
5
  import { linkTo } from "../routes";
@@ -1,9 +1,8 @@
1
1
  import _ from "lodash/fp";
2
- import React, { useState, useEffect } from "react";
2
+ import { useState, useEffect } from "react";
3
3
  import PropTypes from "prop-types";
4
4
  import { isKeyHotkey } from "is-hotkey";
5
5
  import isUrl from "is-url";
6
- import { injectIntl } from "react-intl";
7
6
  import { Editor, getEventTransfer } from "slate-react";
8
7
  import { Value } from "slate";
9
8
  import { Menu, Icon } from "semantic-ui-react";
@@ -51,7 +50,7 @@ function renderBlock(props, _editor, next) {
51
50
  case "list-item":
52
51
  return <li {...attributes}>{children}</li>;
53
52
  case "numbered-list":
54
- return <ol {...attributes}> {children}</ol>;
53
+ return <ol {...attributes}>{children}</ol>;
55
54
  case "link":
56
55
  return (
57
56
  <SafeLink href={node.data?.get("href")} {...attributes}>
@@ -105,10 +104,10 @@ function onKeyDown(event, editor, next) {
105
104
  const mark = isBoldHotkey(event)
106
105
  ? "bold"
107
106
  : isItalicHotkey(event)
108
- ? "italic"
109
- : isUnderlinedHotkey(event)
110
- ? "underlined"
111
- : undefined;
107
+ ? "italic"
108
+ : isUnderlinedHotkey(event)
109
+ ? "underlined"
110
+ : undefined;
112
111
  if (!_.isNil(mark)) {
113
112
  event.preventDefault();
114
113
  editor.toggleMark(mark);
@@ -363,4 +362,4 @@ RichTextEditor.propTypes = {
363
362
  value: PropTypes.object,
364
363
  };
365
364
 
366
- export default injectIntl(RichTextEditor);
365
+ export default RichTextEditor;
@@ -1,37 +1,16 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
- import PropTypes from "prop-types";
4
- import { connect } from "react-redux";
5
- import { compose } from "redux";
6
- import { withRouter } from "react-router-dom";
7
- import { getMessage } from "../selectors";
2
+ import { useEffect } from "react";
3
+ import { useDispatch } from "react-redux";
4
+ import { useLocation } from "react-router";
8
5
  import { dismissAlert } from "../routines";
9
6
 
10
- export class RouteListener extends React.Component {
11
- componentDidUpdate(prevProps) {
12
- const prevPath = prevProps.location.pathname;
13
- const currentPath = this.props.location.pathname;
14
- if (!_.isEmpty(this.props.message) && prevPath !== currentPath) {
15
- this.props.dismissAlert();
16
- }
17
- }
7
+ export default function RouteListener() {
8
+ const location = useLocation();
9
+ const dispatch = useDispatch();
18
10
 
19
- render() {
20
- return null;
21
- }
22
- }
23
-
24
- RouteListener.propTypes = {
25
- location: PropTypes.object,
26
- message: PropTypes.object,
27
- dismissAlert: PropTypes.func,
28
- };
29
-
30
- const mapStateToProps = (state) => ({ message: getMessage(state) });
11
+ useEffect(() => {
12
+ dispatch(dismissAlert());
13
+ }, [location.pathname, dispatch]);
31
14
 
32
- const mapDispatchToProps = { dismissAlert };
33
-
34
- export default compose(
35
- withRouter,
36
- connect(mapStateToProps, mapDispatchToProps)
37
- )(RouteListener);
15
+ return null;
16
+ }
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import PropTypes from "prop-types";
3
2
  import { validUrl } from "../services/validation";
4
3
 
@@ -1,22 +1,19 @@
1
- import { Component } from "react";
1
+ import { useEffect } from "react";
2
2
  import PropTypes from "prop-types";
3
- import { withRouter } from "react-router-dom";
3
+ import { useLocation } from "react-router";
4
4
 
5
- class ScrollToTop extends Component {
6
- static propTypes = {
7
- location: PropTypes.object,
8
- children: PropTypes.node
9
- };
5
+ function ScrollToTop({ children }) {
6
+ const location = useLocation();
10
7
 
11
- componentDidUpdate(prevProps) {
12
- if (this.props.location !== prevProps.location) {
13
- window.scrollTo(0, 0);
14
- }
15
- }
8
+ useEffect(() => {
9
+ window.scrollTo(0, 0);
10
+ }, [location]);
16
11
 
17
- render() {
18
- return this.props.children;
19
- }
12
+ return children;
20
13
  }
21
14
 
22
- export default withRouter(ScrollToTop);
15
+ ScrollToTop.propTypes = {
16
+ children: PropTypes.node,
17
+ };
18
+
19
+ export default ScrollToTop;
@@ -1,4 +1,4 @@
1
- import React, { useState } from "react";
1
+ import { useState } from "react";
2
2
  import PropTypes from "prop-types";
3
3
 
4
4
  import _ from "lodash/fp";
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useRef } from "react";
1
+ import { useEffect, useRef } from "react";
2
2
  import { Input } from "semantic-ui-react";
3
3
  import PropTypes from "prop-types";
4
4
 
@@ -21,7 +21,7 @@ export const SearchInput = ({ icon, focus, onChange, placeholder, value }) => {
21
21
  SearchInput.defaultProps = {
22
22
  focus: true,
23
23
  icon: { name: "search", link: true },
24
- value: ""
24
+ value: "",
25
25
  };
26
26
 
27
27
  SearchInput.propTypes = {
@@ -29,7 +29,7 @@ SearchInput.propTypes = {
29
29
  icon: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
30
30
  onChange: PropTypes.func,
31
31
  placeholder: PropTypes.string,
32
- value: PropTypes.string
32
+ value: PropTypes.string,
33
33
  };
34
34
 
35
35
  export default SearchInput;
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { useIntl } from "react-intl";
3
2
  import { SEARCH } from "../routes";
4
3
  import Submenu from "./Submenu";
@@ -1,8 +1,7 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
2
  import PropTypes from "prop-types";
4
3
  import { FormattedMessage } from "react-intl";
5
- import { useLocation } from "react-router-dom";
4
+ import { useLocation } from "react-router";
6
5
  import FilterDropdown from "./FilterDropdown";
7
6
  import FilterMultilevelDropdown from "./FilterMultilevelDropdown";
8
7
  import HierarchyFilterDropdown from "./HierarchyFilterDropdown";
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import PropTypes from "prop-types";
3
2
  import { connect } from "react-redux";
4
3
  import { Menu, Sidebar } from "semantic-ui-react";
@@ -1,8 +1,8 @@
1
- import React, { useEffect } from "react";
1
+ import { useEffect } from "react";
2
2
  import PropTypes from "prop-types";
3
3
  import { FormattedMessage } from "react-intl";
4
4
  import { connect } from "react-redux";
5
- import { useLocation } from "react-router-dom";
5
+ import { useLocation } from "react-router";
6
6
  import { Icon, Menu } from "semantic-ui-react";
7
7
  import { hideSidebar, toggleSidebar } from "@truedat/core/routines";
8
8
 
@@ -1,5 +1,4 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
2
  import PropTypes from "prop-types";
4
3
  import { Icon, Dropdown, Segment } from "semantic-ui-react";
5
4
 
@@ -1,12 +1,12 @@
1
1
  import _ from "lodash/fp";
2
- import React, { useEffect, useState } from "react";
2
+ import { useEffect, useState } from "react";
3
3
  import PropTypes from "prop-types";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import { connect } from "react-redux";
6
- import { useLocation, useHistory, Link } from "react-router-dom";
6
+ import { useLocation, Link, useNavigate } from "react-router";
7
7
  import { Dropdown, Icon, Menu } from "semantic-ui-react";
8
8
  import { useAuthorizedItems, useActiveRoutes } from "@truedat/core/hooks";
9
- import { clearNavFilter as clearBucketFilterRoutine } from "@truedat/dd/routines";
9
+ import { clearNavFilter as clearBucketFilterRoutine } from "@truedat/core/routines";
10
10
 
11
11
  export const MenuItem = ({ active, clearNavFilter, name, routes }) => {
12
12
  const { formatMessage } = useIntl();
@@ -69,7 +69,8 @@ export const Submenu = ({
69
69
  isActiveOverride,
70
70
  }) => {
71
71
  const [open, setOpen] = useState(false);
72
- const history = useHistory();
72
+
73
+ const navigate = useNavigate();
73
74
  const location = useLocation();
74
75
 
75
76
  const activeRoute = useActiveRoutes(_.flatMap("routes")(items), navFilter);
@@ -109,7 +110,7 @@ export const Submenu = ({
109
110
  active
110
111
  className="selectable"
111
112
  as="div"
112
- onClick={() => history.push(primaryRoute)}
113
+ onClick={() => navigate(primaryRoute)}
113
114
  >
114
115
  <Link to={primaryRoute}>
115
116
  <Icon size="large" name={icon} />
@@ -161,14 +162,14 @@ export const Submenu = ({
161
162
  open={open}
162
163
  className={className}
163
164
  trigger={trigger}
164
- onClick={() => history.push(primaryRoute)}
165
+ onClick={() => navigate(primaryRoute)}
165
166
  >
166
167
  <Dropdown.Menu onClick={(e) => e.stopPropagation()}>
167
168
  {_.size(filteredItems) > 1 && (
168
169
  <>
169
170
  <Dropdown.Header
170
171
  className="selectable"
171
- onClick={() => history.push(primaryRoute)}
172
+ onClick={() => navigate(primaryRoute)}
172
173
  >
173
174
  <FormattedMessage
174
175
  id={`sidemenu.${name}`}
@@ -0,0 +1,27 @@
1
+ import { useEffect } from "react";
2
+ import PropTypes from "prop-types";
3
+ import { connect } from "react-redux";
4
+ import { clearSystems, fetchSystems } from "../routines";
5
+
6
+ export const SystemsLoader = ({ clearSystems, fetchSystems }) => {
7
+ useEffect(() => {
8
+ return () => {
9
+ clearSystems();
10
+ };
11
+ }, [clearSystems]);
12
+ useEffect(() => {
13
+ fetchSystems();
14
+ }, [fetchSystems]);
15
+ return null;
16
+ };
17
+
18
+ SystemsLoader.propTypes = {
19
+ clearSystems: PropTypes.func,
20
+ fetchSystems: PropTypes.func,
21
+ };
22
+
23
+ const mapStateToProps = ({ systemsLoading }) => ({ systemsLoading });
24
+
25
+ export default connect(mapStateToProps, { clearSystems, fetchSystems })(
26
+ SystemsLoader
27
+ );
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { useIntl } from "react-intl";
3
2
  import { useAuthorized } from "../hooks";
4
3
  import { DOMAINS } from "../routes";
@@ -1,5 +1,4 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
2
  import PropTypes from "prop-types";
4
3
  import { Form, Label } from "semantic-ui-react";
5
4
  import { useIntl, FormattedMessage } from "react-intl";
@@ -100,6 +99,7 @@ export const TemplateSelectorLoader = ({
100
99
  onCompleted: onLoad,
101
100
  });
102
101
  if (error) return null;
102
+
103
103
  const templates = data?.templates || emptyTemplates;
104
104
  return (
105
105
  <TemplateSelector loading={loading} templates={templates} {...props} />
@@ -0,0 +1,24 @@
1
+ import { useEffect } from "react";
2
+ import PropTypes from "prop-types";
3
+ import { connect } from "react-redux";
4
+ import { clearTemplates, fetchTemplates } from "@truedat/core/routines";
5
+
6
+ export const TemplatesLoader = ({ scope, fetchTemplates, clearTemplates }) => {
7
+ useEffect(() => {
8
+ fetchTemplates({ scope });
9
+ return () => {
10
+ clearTemplates();
11
+ };
12
+ }, [clearTemplates, fetchTemplates, scope]);
13
+ return null;
14
+ };
15
+
16
+ TemplatesLoader.propTypes = {
17
+ clearTemplates: PropTypes.func,
18
+ fetchTemplates: PropTypes.func,
19
+ scope: PropTypes.string,
20
+ };
21
+
22
+ export default connect(null, { clearTemplates, fetchTemplates })(
23
+ TemplatesLoader
24
+ );
@@ -1,6 +1,6 @@
1
1
  import _ from "lodash/fp";
2
- import React, { useState, useEffect } from "react";
3
- import { Dropdown, Form, Icon, Input, Label } from "semantic-ui-react";
2
+ import { useState, useEffect } from "react";
3
+ import { Dropdown, FormDropdown, Icon, Input, Label } from "semantic-ui-react";
4
4
  import PropTypes from "prop-types";
5
5
  import { lowerDeburr } from "../services/sort";
6
6
  import { recursiveMatch, descendents, childIds } from "../services/tree";
@@ -230,7 +230,7 @@ export const TreeSelector = ({
230
230
  );
231
231
 
232
232
  return !notDropdown ? (
233
- <Form.Dropdown
233
+ <FormDropdown
234
234
  className={`fix-dropdown-selector ${!notDropdown ? className : ""}`}
235
235
  error={error}
236
236
  floating
@@ -245,7 +245,7 @@ export const TreeSelector = ({
245
245
  disabled={disabled}
246
246
  >
247
247
  {content}
248
- </Form.Dropdown>
248
+ </FormDropdown>
249
249
  ) : (
250
250
  <>{content}</>
251
251
  );
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { useIntl } from "react-intl";
3
2
  import { Message } from "semantic-ui-react";
4
3