@webiny/app-admin 5.23.1 → 5.25.0-beta.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.
Files changed (306) hide show
  1. package/base/Admin.d.ts +3 -10
  2. package/base/Admin.js +4 -0
  3. package/base/Admin.js.map +1 -0
  4. package/base/Base.d.ts +1 -1
  5. package/base/Base.js.map +1 -0
  6. package/base/plugins/AddGraphQLQuerySelection.d.ts +2 -2
  7. package/base/plugins/AddGraphQLQuerySelection.js +3 -2
  8. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -0
  9. package/base/providers/ApolloProvider.d.ts +9 -3
  10. package/base/providers/ApolloProvider.js +2 -1
  11. package/base/providers/ApolloProvider.js.map +1 -0
  12. package/base/providers/TelemetryProvider.d.ts +2 -4
  13. package/base/providers/TelemetryProvider.js +5 -0
  14. package/base/providers/TelemetryProvider.js.map +1 -0
  15. package/base/providers/UiStateProvider.d.ts +1 -3
  16. package/base/providers/UiStateProvider.js.map +1 -0
  17. package/base/providers/ViewCompositionProvider.d.ts +4 -5
  18. package/base/providers/ViewCompositionProvider.js +8 -1
  19. package/base/providers/ViewCompositionProvider.js.map +1 -0
  20. package/base/ui/Brand.d.ts +2 -9
  21. package/base/ui/Brand.js.map +1 -0
  22. package/base/ui/CenteredView.d.ts +1 -5
  23. package/base/ui/CenteredView.js.map +1 -0
  24. package/base/ui/Dashboard.d.ts +2 -9
  25. package/base/ui/Dashboard.js.map +1 -0
  26. package/base/ui/Layout.d.ts +2 -8
  27. package/base/ui/Layout.js.map +1 -0
  28. package/base/ui/LocaleSelector.d.ts +2 -9
  29. package/base/ui/LocaleSelector.js.map +1 -0
  30. package/base/ui/LoginScreen.d.ts +2 -5
  31. package/base/ui/LoginScreen.js.map +1 -0
  32. package/base/ui/Logo.d.ts +3 -9
  33. package/base/ui/Logo.js.map +1 -0
  34. package/base/ui/Menu.d.ts +8 -12
  35. package/base/ui/Menu.js +96 -30
  36. package/base/ui/Menu.js.map +1 -0
  37. package/base/ui/Navigation.d.ts +9 -20
  38. package/base/ui/Navigation.js +29 -29
  39. package/base/ui/Navigation.js.map +1 -0
  40. package/base/ui/NotFound.d.ts +2 -9
  41. package/base/ui/NotFound.js.map +1 -0
  42. package/base/ui/Search.d.ts +4 -13
  43. package/base/ui/Search.js +6 -1
  44. package/base/ui/Search.js.map +1 -0
  45. package/base/ui/Tags.d.ts +4 -2
  46. package/base/ui/Tags.js.map +1 -0
  47. package/base/ui/UserMenu.d.ts +9 -33
  48. package/base/ui/UserMenu.js +15 -2
  49. package/base/ui/UserMenu.js.map +1 -0
  50. package/components/AdminLayout.d.ts +1 -2
  51. package/components/AdminLayout.js.map +1 -0
  52. package/components/AppInstaller/AppInstaller.d.ts +2 -4
  53. package/components/AppInstaller/AppInstaller.js.map +1 -0
  54. package/components/AppInstaller/Sidebar.d.ts +8 -6
  55. package/components/AppInstaller/Sidebar.js +11 -10
  56. package/components/AppInstaller/Sidebar.js.map +1 -0
  57. package/components/AppInstaller/index.js.map +1 -0
  58. package/components/AppInstaller/styled.d.ts +4 -4
  59. package/components/AppInstaller/styled.js.map +1 -0
  60. package/components/AppInstaller/useInstaller.d.ts +28 -9
  61. package/components/AppInstaller/useInstaller.js +44 -36
  62. package/components/AppInstaller/useInstaller.js.map +1 -0
  63. package/components/EmptyView.d.ts +5 -5
  64. package/components/EmptyView.js.map +1 -0
  65. package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +5 -4
  66. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +7 -1
  67. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  68. package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +5 -4
  69. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -0
  70. package/components/FileManager/BottomInfoBar.d.ts +4 -2
  71. package/components/FileManager/BottomInfoBar.js.map +1 -0
  72. package/components/FileManager/DropFilesHere.d.ts +4 -3
  73. package/components/FileManager/DropFilesHere.js +5 -2
  74. package/components/FileManager/DropFilesHere.js.map +1 -0
  75. package/components/FileManager/File.d.ts +7 -8
  76. package/components/FileManager/File.js +11 -5
  77. package/components/FileManager/File.js.map +1 -0
  78. package/components/FileManager/FileDetails/Name.d.ts +7 -5
  79. package/components/FileManager/FileDetails/Name.js +10 -7
  80. package/components/FileManager/FileDetails/Name.js.map +1 -0
  81. package/components/FileManager/FileDetails/Tags.d.ts +7 -5
  82. package/components/FileManager/FileDetails/Tags.js +22 -9
  83. package/components/FileManager/FileDetails/Tags.js.map +1 -0
  84. package/components/FileManager/FileDetails.d.ts +9 -8
  85. package/components/FileManager/FileDetails.js +80 -41
  86. package/components/FileManager/FileDetails.js.map +1 -0
  87. package/components/FileManager/FileManagerContext.d.ts +12 -9
  88. package/components/FileManager/FileManagerContext.js +14 -7
  89. package/components/FileManager/FileManagerContext.js.map +1 -0
  90. package/components/FileManager/FileManagerView.d.ts +3 -11
  91. package/components/FileManager/FileManagerView.js +79 -51
  92. package/components/FileManager/FileManagerView.js.map +1 -0
  93. package/components/FileManager/LeftSidebar.d.ts +6 -5
  94. package/components/FileManager/LeftSidebar.js +6 -5
  95. package/components/FileManager/LeftSidebar.js.map +1 -0
  96. package/components/FileManager/NoPermissionView.d.ts +2 -2
  97. package/components/FileManager/NoPermissionView.js.map +1 -0
  98. package/components/FileManager/NoResults.d.ts +3 -2
  99. package/components/FileManager/NoResults.js +5 -2
  100. package/components/FileManager/NoResults.js.map +1 -0
  101. package/components/FileManager/getFileTypePlugin.d.ts +4 -1
  102. package/components/FileManager/getFileTypePlugin.js +9 -0
  103. package/components/FileManager/getFileTypePlugin.js.map +1 -0
  104. package/components/FileManager/getFileUploader.d.ts +2 -1
  105. package/components/FileManager/getFileUploader.js.map +1 -0
  106. package/components/FileManager/graphql.d.ts +90 -0
  107. package/components/FileManager/graphql.js +25 -0
  108. package/components/FileManager/graphql.js.map +1 -0
  109. package/components/FileManager/outputFileSelectionError.d.ts +6 -1
  110. package/components/FileManager/outputFileSelectionError.js +3 -2
  111. package/components/FileManager/outputFileSelectionError.js.map +1 -0
  112. package/components/FileManager/types.d.ts +19 -0
  113. package/components/FileManager/types.js +1 -0
  114. package/components/FileManager/types.js.map +1 -0
  115. package/components/FileManager.d.ts +15 -10
  116. package/components/FileManager.js +27 -16
  117. package/components/FileManager.js.map +1 -0
  118. package/components/FloatingActionButton.d.ts +2 -2
  119. package/components/FloatingActionButton.js.map +1 -0
  120. package/components/MultiImageUpload.d.ts +13 -4
  121. package/components/MultiImageUpload.js +15 -4
  122. package/components/MultiImageUpload.js.map +1 -0
  123. package/components/OverlayLayout/OverlayLayout.d.ts +10 -13
  124. package/components/OverlayLayout/OverlayLayout.js.map +1 -0
  125. package/components/OverlayLayout/index.js.map +1 -0
  126. package/components/Permissions/Permissions.d.ts +4 -4
  127. package/components/Permissions/Permissions.js.map +1 -0
  128. package/components/Permissions/StyledComponents.d.ts +6 -4
  129. package/components/Permissions/StyledComponents.js.map +1 -0
  130. package/components/Permissions/index.js.map +1 -0
  131. package/components/RichTextEditor/RichTextEditor.d.ts +2 -2
  132. package/components/RichTextEditor/RichTextEditor.js.map +1 -0
  133. package/components/RichTextEditor/index.js.map +1 -0
  134. package/components/RichTextEditor/tools/header/index.d.ts +33 -34
  135. package/components/RichTextEditor/tools/header/index.js +5 -6
  136. package/components/RichTextEditor/tools/header/index.js.map +1 -0
  137. package/components/RichTextEditor/tools/image/index.d.ts +38 -13
  138. package/components/RichTextEditor/tools/image/index.js +4 -2
  139. package/components/RichTextEditor/tools/image/index.js.map +1 -0
  140. package/components/RichTextEditor/tools/image/svgs.js.map +1 -0
  141. package/components/RichTextEditor/tools/image/tunes.d.ts +12 -15
  142. package/components/RichTextEditor/tools/image/tunes.js +9 -4
  143. package/components/RichTextEditor/tools/image/tunes.js.map +1 -0
  144. package/components/RichTextEditor/tools/image/types.d.ts +29 -0
  145. package/components/RichTextEditor/tools/image/types.js +1 -0
  146. package/components/RichTextEditor/tools/image/types.js.map +1 -0
  147. package/components/RichTextEditor/tools/image/ui.d.ts +36 -27
  148. package/components/RichTextEditor/tools/image/ui.js +25 -12
  149. package/components/RichTextEditor/tools/image/ui.js.map +1 -0
  150. package/components/RichTextEditor/tools/paragraph/index.d.ts +32 -36
  151. package/components/RichTextEditor/tools/paragraph/index.js +17 -25
  152. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -0
  153. package/components/RichTextEditor/tools/textColor/index.d.ts +30 -22
  154. package/components/RichTextEditor/tools/textColor/index.js +46 -10
  155. package/components/RichTextEditor/tools/textColor/index.js.map +1 -0
  156. package/components/RichTextEditor/tools/utils.js.map +1 -0
  157. package/components/Routes.d.ts +2 -2
  158. package/components/Routes.js.map +1 -0
  159. package/components/SearchUI.d.ts +4 -4
  160. package/components/SearchUI.js.map +1 -0
  161. package/components/SimpleForm/SimpleForm.d.ts +10 -11
  162. package/components/SimpleForm/SimpleForm.js.map +1 -0
  163. package/components/SimpleForm/index.js.map +1 -0
  164. package/components/SimpleUI/InputField.d.ts +4 -3
  165. package/components/SimpleUI/InputField.js +22 -20
  166. package/components/SimpleUI/InputField.js.map +1 -0
  167. package/components/SingleImageUpload.d.ts +3 -9
  168. package/components/SingleImageUpload.js +9 -11
  169. package/components/SingleImageUpload.js.map +1 -0
  170. package/components/SplitView/SplitView.d.ts +5 -5
  171. package/components/SplitView/SplitView.js.map +1 -0
  172. package/components/SplitView/index.js.map +1 -0
  173. package/components/index.js.map +1 -0
  174. package/hooks/useConfirmationDialog.d.ts +6 -5
  175. package/hooks/useConfirmationDialog.js +1 -2
  176. package/hooks/useConfirmationDialog.js.map +1 -0
  177. package/hooks/useDialog.d.ts +8 -3
  178. package/hooks/useDialog.js +1 -1
  179. package/hooks/useDialog.js.map +1 -0
  180. package/hooks/useSnackbar.d.ts +6 -3
  181. package/hooks/useSnackbar.js.map +1 -0
  182. package/index.js.map +1 -0
  183. package/package.json +24 -20
  184. package/plugins/FileManagerFileTypePlugin.d.ts +3 -3
  185. package/plugins/FileManagerFileTypePlugin.js +4 -0
  186. package/plugins/FileManagerFileTypePlugin.js.map +1 -0
  187. package/plugins/MenuPlugin.d.ts +6 -6
  188. package/plugins/MenuPlugin.js +4 -0
  189. package/plugins/MenuPlugin.js.map +1 -0
  190. package/plugins/PermissionRendererPlugin.d.ts +4 -4
  191. package/plugins/PermissionRendererPlugin.js +4 -0
  192. package/plugins/PermissionRendererPlugin.js.map +1 -0
  193. package/plugins/fileManager/fileDefault.js.map +1 -0
  194. package/plugins/fileManager/fileImage/DeleteAction.d.ts +6 -2
  195. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -0
  196. package/plugins/fileManager/fileImage/EditAction.d.ts +7 -6
  197. package/plugins/fileManager/fileImage/EditAction.js +24 -11
  198. package/plugins/fileManager/fileImage/EditAction.js.map +1 -0
  199. package/plugins/fileManager/fileImage/index.js.map +1 -0
  200. package/plugins/fileManager/index.js.map +1 -0
  201. package/plugins/globalSearch/SearchBar.d.ts +14 -5
  202. package/plugins/globalSearch/SearchBar.js +9 -0
  203. package/plugins/globalSearch/SearchBar.js.map +1 -0
  204. package/plugins/globalSearch/SearchBarDropdown.d.ts +19 -1
  205. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -0
  206. package/plugins/globalSearch/index.d.ts +2 -1
  207. package/plugins/globalSearch/index.js.map +1 -0
  208. package/plugins/globalSearch/styled.d.ts +3 -3
  209. package/plugins/globalSearch/styled.js.map +1 -0
  210. package/plugins/index.d.ts +2 -1
  211. package/plugins/index.js.map +1 -0
  212. package/plugins/uiLayoutRenderer/index.js.map +1 -0
  213. package/types.d.ts +10 -8
  214. package/types.js.map +1 -0
  215. package/ui/UIElement.d.ts +1 -1
  216. package/ui/UIElement.js.map +1 -0
  217. package/ui/UILayout.js.map +1 -0
  218. package/ui/UIRenderer.js.map +1 -0
  219. package/ui/UIView.d.ts +1 -1
  220. package/ui/UIView.js.map +1 -0
  221. package/ui/elements/AccordionElement.d.ts +5 -5
  222. package/ui/elements/AccordionElement.js +4 -0
  223. package/ui/elements/AccordionElement.js.map +1 -0
  224. package/ui/elements/ButtonElement.d.ts +3 -3
  225. package/ui/elements/ButtonElement.js +7 -0
  226. package/ui/elements/ButtonElement.js.map +1 -0
  227. package/ui/elements/ButtonGroupElement.d.ts +2 -2
  228. package/ui/elements/ButtonGroupElement.js.map +1 -0
  229. package/ui/elements/GenericElement.js.map +1 -0
  230. package/ui/elements/LabelElement.js.map +1 -0
  231. package/ui/elements/NavigationMenuElement.d.ts +2 -1
  232. package/ui/elements/NavigationMenuElement.js +3 -2
  233. package/ui/elements/NavigationMenuElement.js.map +1 -0
  234. package/ui/elements/PanelElement.js.map +1 -0
  235. package/ui/elements/PlaceholderElement.d.ts +2 -1
  236. package/ui/elements/PlaceholderElement.js.map +1 -0
  237. package/ui/elements/SmallButtonElement.d.ts +1 -1
  238. package/ui/elements/SmallButtonElement.js.map +1 -0
  239. package/ui/elements/TypographyElement.d.ts +1 -1
  240. package/ui/elements/TypographyElement.js.map +1 -0
  241. package/ui/elements/ViewElement.js.map +1 -0
  242. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +2 -2
  243. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +10 -10
  244. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -0
  245. package/ui/elements/form/DynamicFieldsetElement.d.ts +19 -18
  246. package/ui/elements/form/DynamicFieldsetElement.js +13 -0
  247. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -0
  248. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -0
  249. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -0
  250. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -0
  251. package/ui/elements/form/FileManagerElement/styled.d.ts +17 -13
  252. package/ui/elements/form/FileManagerElement/styled.js.map +1 -0
  253. package/ui/elements/form/FileManagerElement.d.ts +6 -6
  254. package/ui/elements/form/FileManagerElement.js.map +1 -0
  255. package/ui/elements/form/FormElement.d.ts +5 -5
  256. package/ui/elements/form/FormElement.js.map +1 -0
  257. package/ui/elements/form/FormFieldElement.d.ts +9 -8
  258. package/ui/elements/form/FormFieldElement.js +15 -7
  259. package/ui/elements/form/FormFieldElement.js.map +1 -0
  260. package/ui/elements/form/HiddenElement.js.map +1 -0
  261. package/ui/elements/form/InputElement.d.ts +1 -0
  262. package/ui/elements/form/InputElement.js.map +1 -0
  263. package/ui/elements/form/PasswordElement.js.map +1 -0
  264. package/ui/elements/form/SelectElement.d.ts +1 -1
  265. package/ui/elements/form/SelectElement.js +1 -1
  266. package/ui/elements/form/SelectElement.js.map +1 -0
  267. package/ui/elements/form/TextareaElement.js.map +1 -0
  268. package/ui/views/AdminView/ContentElement.js.map +1 -0
  269. package/ui/views/AdminView/HeaderElement.js +14 -2
  270. package/ui/views/AdminView/HeaderElement.js.map +1 -0
  271. package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +2 -2
  272. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -0
  273. package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +2 -2
  274. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -0
  275. package/ui/views/AdminView/HeaderSectionRightElement.d.ts +2 -2
  276. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -0
  277. package/ui/views/AdminView/components/Dialog.js.map +1 -0
  278. package/ui/views/AdminView/components/Hamburger.d.ts +2 -2
  279. package/ui/views/AdminView/components/Hamburger.js.map +1 -0
  280. package/ui/views/AdminView/components/Snackbar.d.ts +2 -2
  281. package/ui/views/AdminView/components/Snackbar.js.map +1 -0
  282. package/ui/views/FormView/FormContainerElement.d.ts +2 -2
  283. package/ui/views/FormView/FormContainerElement.js.map +1 -0
  284. package/ui/views/FormView/FormContentElement.js.map +1 -0
  285. package/ui/views/FormView/FormFooterElement.d.ts +3 -3
  286. package/ui/views/FormView/FormFooterElement.js.map +1 -0
  287. package/ui/views/FormView/FormHeaderElement.d.ts +2 -2
  288. package/ui/views/FormView/FormHeaderElement.js.map +1 -0
  289. package/ui/views/FormView.d.ts +1 -1
  290. package/ui/views/FormView.js +25 -3
  291. package/ui/views/FormView.js.map +1 -0
  292. package/ui/views/OverlayView/ContentElement.d.ts +2 -2
  293. package/ui/views/OverlayView/ContentElement.js.map +1 -0
  294. package/ui/views/OverlayView/HeaderElement.d.ts +5 -5
  295. package/ui/views/OverlayView/HeaderElement.js.map +1 -0
  296. package/ui/views/OverlayView/HeaderTitleElement.d.ts +1 -1
  297. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -0
  298. package/ui/views/OverlayView/useOverlayView.d.ts +4 -5
  299. package/ui/views/OverlayView/useOverlayView.js +2 -2
  300. package/ui/views/OverlayView/useOverlayView.js.map +1 -0
  301. package/ui/views/OverlayView.d.ts +4 -6
  302. package/ui/views/OverlayView.js.map +1 -0
  303. package/ui/views/SplitView/SplitViewPanelElement.d.ts +3 -3
  304. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -0
  305. package/ui/views/SplitView.d.ts +3 -3
  306. package/ui/views/SplitView.js.map +1 -0
@@ -24,8 +24,8 @@ var Loader = function Loader(_ref) {
24
24
  }, /*#__PURE__*/React.cloneElement(children, props));
25
25
  };
26
26
 
27
- export var useInstaller = function useInstaller(_ref2) {
28
- var isInstalled = _ref2.isInstalled;
27
+ export var useInstaller = function useInstaller(params) {
28
+ var isInstalled = params.isInstalled;
29
29
 
30
30
  var _useReducer = useReducer(function (prev, next) {
31
31
  return _objectSpread(_objectSpread({}, prev), next);
@@ -34,45 +34,47 @@ export var useInstaller = function useInstaller(_ref2) {
34
34
  installers: [],
35
35
  installerIndex: -1,
36
36
  showLogin: false,
37
- skippingVersions: false
37
+ skippingVersions: null
38
38
  }),
39
39
  _useReducer2 = _slicedToArray(_useReducer, 2),
40
- _useReducer2$ = _useReducer2[0],
41
- loading = _useReducer2$.loading,
42
- installers = _useReducer2$.installers,
43
- installerIndex = _useReducer2$.installerIndex,
44
- showLogin = _useReducer2$.showLogin,
45
- skippingVersions = _useReducer2$.skippingVersions,
40
+ state = _useReducer2[0],
46
41
  setState = _useReducer2[1];
47
42
 
43
+ var loading = state.loading,
44
+ installers = state.installers,
45
+ installerIndex = state.installerIndex,
46
+ showLogin = state.showLogin,
47
+ skippingVersions = state.skippingVersions;
48
48
  var client = useApolloClient();
49
49
 
50
50
  var validateGraph = function validateGraph(graph) {
51
51
  var isAcyclic = alg.isAcyclic(graph);
52
52
 
53
- if (!isAcyclic) {
54
- var cycles = alg.findCycles(graph);
55
- var msg = ["Your installers have circular dependencies:"];
56
- cycles.forEach(function (cycle, index) {
57
- var fromAToB = cycle.join(" --> ");
58
- fromAToB = "".concat(index + 1, ". ").concat(fromAToB);
59
- var fromBToA = cycle.reverse().join(" <-- ");
60
- var padLength = fromAToB.length + 4;
61
- msg.push(fromAToB.padStart(padLength));
62
- msg.push(fromBToA.padStart(padLength));
63
- }, cycles);
64
- throw new Error(msg.join("\n"));
53
+ if (isAcyclic) {
54
+ return;
65
55
  }
56
+
57
+ var cycles = alg.findCycles(graph);
58
+ var msg = ["Your installers have circular dependencies:"];
59
+ cycles.forEach(function (cycle, index) {
60
+ var fromAToB = cycle.join(" --> ");
61
+ fromAToB = "".concat(index + 1, ". ").concat(fromAToB);
62
+ var fromBToA = cycle.reverse().join(" <-- ");
63
+ var padLength = fromAToB.length + 4;
64
+ msg.push(fromAToB.padStart(padLength));
65
+ msg.push(fromBToA.padStart(padLength));
66
+ }, cycles);
67
+ throw new Error(msg.join("\n"));
66
68
  };
67
69
 
68
70
  var createGraph = function createGraph(installers) {
69
71
  var graph = new Graph();
70
- installers.forEach(function (_ref3) {
71
- var plugin = _ref3.plugin;
72
+ installers.forEach(function (_ref2) {
73
+ var plugin = _ref2.plugin;
72
74
  graph.setNode(plugin.name, plugin);
73
75
  });
74
- installers.forEach(function (_ref4) {
75
- var pl = _ref4.plugin;
76
+ installers.forEach(function (_ref3) {
77
+ var pl = _ref3.plugin;
76
78
 
77
79
  if (Array.isArray(pl.dependencies)) {
78
80
  pl.dependencies.forEach(function (dep) {
@@ -107,14 +109,15 @@ export var useInstaller = function useInstaller(_ref2) {
107
109
  title: installer.plugin.title,
108
110
  render: installer.plugin.render,
109
111
  secure: installer.plugin.secure,
110
- installed: false
112
+ installed: null,
113
+ plugin: installer.plugin
111
114
  });
112
115
  } else {
113
116
  var wbyVersion = appConfig.getKey("WEBINY_VERSION", process.env.REACT_APP_WEBINY_VERSION);
114
- var upgrades = (installer.plugin.upgrades || []).filter(function (_ref5) {
115
- var version = _ref5.version;
117
+ var upgrades = (installer.plugin.upgrades || []).filter(function (_ref4) {
118
+ var version = _ref4.version;
116
119
  // TODO use coerce
117
- return lte(version, wbyVersion) && gt(version, installer.installed);
120
+ return lte(version, wbyVersion) && gt(version, installer.installed || "");
118
121
  });
119
122
 
120
123
  if (upgrades.length > 1) {
@@ -135,9 +138,10 @@ export var useInstaller = function useInstaller(_ref2) {
135
138
  name: "".concat(installer.plugin.name, "-upgrade"),
136
139
  title: installer.plugin.title,
137
140
  secure: true,
138
- installed: false,
139
- render: function render(_ref6) {
140
- var onInstalled = _ref6.onInstalled;
141
+ installed: null,
142
+ plugin: installer.plugin,
143
+ render: function render(_ref5) {
144
+ var onInstalled = _ref5.onInstalled;
141
145
  var Component = upgrades[0].getComponent();
142
146
  return /*#__PURE__*/React.createElement(Loader, null, /*#__PURE__*/React.createElement(Component, {
143
147
  onInstalled: onInstalled
@@ -170,17 +174,21 @@ export var useInstaller = function useInstaller(_ref2) {
170
174
  showLogin: false
171
175
  });
172
176
  };
177
+ /**
178
+ * If set to anything else, it breaks in AppInstaller.tsx
179
+ */
180
+
173
181
 
174
182
  var showNextInstaller = function showNextInstaller() {
175
183
  var prevInstaller = installers[installerIndex];
176
- installers[installerIndex].installed = true;
184
+ installers[installerIndex].installed = appConfig.getKey("WEBINY_VERSION", process.env.REACT_APP_WEBINY_VERSION);
177
185
  setState({
178
186
  installers: installers
179
187
  });
180
188
 
181
189
  if (installers.length < installerIndex + 1) {
182
190
  setState({
183
- installerIndex: null
191
+ installerIndex: undefined
184
192
  });
185
193
  return;
186
194
  }
@@ -220,7 +228,7 @@ export var useInstaller = function useInstaller(_ref2) {
220
228
  allInstallers = [];
221
229
  _context2.next = 5;
222
230
  return Promise.all(plugins.byType("admin-installation").map( /*#__PURE__*/function () {
223
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(pl) {
231
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(pl) {
224
232
  var installed;
225
233
  return _regeneratorRuntime.wrap(function _callee$(_context) {
226
234
  while (1) {
@@ -247,7 +255,7 @@ export var useInstaller = function useInstaller(_ref2) {
247
255
  }));
248
256
 
249
257
  return function (_x) {
250
- return _ref8.apply(this, arguments);
258
+ return _ref7.apply(this, arguments);
251
259
  };
252
260
  }()));
253
261
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useInstaller.tsx"],"names":["React","useCallback","useReducer","useEffect","Suspense","Graph","alg","sort","gt","lte","useApolloClient","plugins","CircularProgress","config","appConfig","Loader","children","props","cloneElement","useInstaller","params","isInstalled","prev","next","loading","installers","installerIndex","showLogin","skippingVersions","state","setState","client","validateGraph","graph","isAcyclic","cycles","findCycles","msg","forEach","cycle","index","fromAToB","join","fromBToA","reverse","padLength","length","push","padStart","Error","createGraph","plugin","setNode","name","pl","Array","isArray","dependencies","dep","setEdge","getInstallers","toInstall","toUpgrade","leaf","sinks","installer","find","inst","removeNode","installed","type","title","render","secure","wbyVersion","getKey","process","env","REACT_APP_WEBINY_VERSION","upgrades","filter","version","availableUpgrades","map","u","latestUpgrade","current","latest","onInstalled","Component","getComponent","a","b","onUser","showNextInstaller","prevInstaller","undefined","nextIndex","nextInstaller","prevSecure","nextSecure","allInstallers","Promise","all","byType","getInstalledVersion"],"mappings":"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","sourcesContent":["import React, { useCallback, useReducer, useEffect, Suspense } from \"react\";\nimport { Graph, alg } from \"graphlib\";\nimport { sort, gt, lte } from \"semver\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminInstallationPlugin } from \"~/types\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst Loader: React.FC<{ children: React.ReactElement }> = ({ children, ...props }) => (\n <Suspense fallback={<CircularProgress label={\"Loading...\"} />}>\n {React.cloneElement(children, props)}\n </Suspense>\n);\n\ninterface GetInstallersResult {\n toInstall: Installer[];\n toUpgrade: Installer[];\n}\n\ninterface UseInstallerParams {\n isInstalled: boolean;\n}\n\ninterface SkippingVersionState {\n current: string;\n latest: string;\n availableUpgrades: string[];\n}\n\ninterface BaseInstaller {\n installed: string | null;\n plugin: AdminInstallationPlugin;\n}\n\nexport interface Installer extends BaseInstaller {\n type: \"install\" | \"upgrade\";\n name: string;\n title: string;\n render: AdminInstallationPlugin[\"render\"];\n secure?: boolean;\n}\ninterface State {\n loading: boolean;\n installers: Installer[];\n installerIndex: number;\n showLogin: boolean;\n skippingVersions: SkippingVersionState | null;\n}\n\ninterface Reducer {\n (prev: State, next: Partial<State>): State;\n}\n\nexport const useInstaller = (params: UseInstallerParams) => {\n const { isInstalled } = params;\n const [state, setState] = useReducer<Reducer>((prev, next) => ({ ...prev, ...next }), {\n loading: true,\n installers: [],\n installerIndex: -1,\n showLogin: false,\n skippingVersions: null\n });\n const { loading, installers, installerIndex, showLogin, skippingVersions } = state;\n\n const client = useApolloClient();\n\n const validateGraph = (graph: Graph): void => {\n const isAcyclic = alg.isAcyclic(graph);\n if (isAcyclic) {\n return;\n }\n const cycles = alg.findCycles(graph);\n const msg = [\"Your installers have circular dependencies:\"];\n cycles.forEach((cycle, index) => {\n let fromAToB = cycle.join(\" --> \");\n fromAToB = `${index + 1}. ${fromAToB}`;\n const fromBToA = cycle.reverse().join(\" <-- \");\n const padLength = fromAToB.length + 4;\n msg.push(fromAToB.padStart(padLength));\n msg.push(fromBToA.padStart(padLength));\n }, cycles);\n throw new Error(msg.join(\"\\n\"));\n };\n\n const createGraph = (installers: BaseInstaller[]): Graph => {\n const graph = new Graph();\n installers.forEach(({ plugin }) => {\n graph.setNode(plugin.name as string, plugin);\n });\n\n installers.forEach(({ plugin: pl }) => {\n if (Array.isArray(pl.dependencies)) {\n pl.dependencies.forEach(dep => {\n graph.setEdge(pl.name as string, dep);\n });\n }\n });\n\n validateGraph(graph);\n\n return graph;\n };\n\n const getInstallers = useCallback(\n (\n installers: BaseInstaller[],\n graph: Graph,\n toInstall: Installer[] = [],\n toUpgrade: Installer[] = []\n ): GetInstallersResult => {\n const leaf = graph.sinks()[0];\n if (leaf) {\n const installer = installers.find(inst => inst.plugin.name === leaf);\n if (!installer) {\n throw new Error(`Missing installer plugin \"${leaf}\"!`);\n }\n\n graph.removeNode(leaf);\n if (!installer.installed) {\n toInstall.push({\n type: \"install\",\n name: `${installer.plugin.name}-install`,\n title: installer.plugin.title,\n render: installer.plugin.render,\n secure: installer.plugin.secure,\n installed: null,\n plugin: installer.plugin\n });\n } else {\n const wbyVersion = appConfig.getKey(\n \"WEBINY_VERSION\",\n process.env.REACT_APP_WEBINY_VERSION as string\n );\n\n const upgrades = (installer.plugin.upgrades || []).filter(({ version }) => {\n // TODO use coerce\n return lte(version, wbyVersion) && gt(version, installer.installed || \"\");\n });\n\n if (upgrades.length > 1) {\n const availableUpgrades = sort(upgrades.map(u => u.version));\n const latestUpgrade = availableUpgrades[availableUpgrades.length - 1];\n setState({\n skippingVersions: {\n current: installer.installed,\n latest: latestUpgrade,\n availableUpgrades\n }\n });\n } else if (upgrades.length === 1) {\n toUpgrade.push({\n type: \"upgrade\",\n name: `${installer.plugin.name}-upgrade`,\n title: installer.plugin.title,\n secure: true,\n installed: null,\n plugin: installer.plugin,\n render({ onInstalled }) {\n const Component = upgrades[0].getComponent();\n return (\n <Loader>\n <Component onInstalled={onInstalled} />\n </Loader>\n );\n }\n });\n }\n }\n return getInstallers(installers, graph, toInstall, toUpgrade);\n }\n toInstall.sort((a, b) => {\n if (a.secure && !b.secure) {\n return 1;\n } else if (!a.secure && b.secure) {\n return -1;\n }\n return 0;\n });\n return { toInstall, toUpgrade };\n },\n []\n );\n\n const onUser = () => {\n setState({ showLogin: false });\n };\n\n /**\n * If set to anything else, it breaks in AppInstaller.tsx\n */\n const showNextInstaller = (): any => {\n const prevInstaller = installers[installerIndex];\n\n installers[installerIndex].installed = appConfig.getKey(\n \"WEBINY_VERSION\",\n process.env.REACT_APP_WEBINY_VERSION as string\n );\n setState({ installers });\n\n if (installers.length < installerIndex + 1) {\n setState({ installerIndex: undefined });\n return;\n }\n\n const nextIndex = installerIndex + 1;\n\n let showLogin = false;\n const nextInstaller = installers[nextIndex];\n\n const prevSecure = prevInstaller && prevInstaller.secure;\n const nextSecure = nextInstaller && nextInstaller.secure;\n if (!prevSecure && nextSecure) {\n showLogin = true;\n }\n setState({ installerIndex: nextIndex, showLogin });\n };\n\n useEffect(() => {\n (async () => {\n if (isInstalled) {\n return;\n }\n\n const allInstallers: BaseInstaller[] = [];\n await Promise.all(\n plugins.byType<AdminInstallationPlugin>(\"admin-installation\").map(async pl => {\n const installed = await pl.getInstalledVersion({ client });\n allInstallers.push({ plugin: pl, installed });\n })\n );\n\n const graph = createGraph(allInstallers);\n const { toInstall, toUpgrade } = getInstallers(allInstallers, graph);\n const installers = [...toUpgrade, ...toInstall];\n setState({\n installers,\n installerIndex: 0,\n loading: false,\n showLogin: toUpgrade.length > 0 || (toInstall.length > 0 && toInstall[0].secure)\n });\n })();\n }, []);\n\n return {\n loading,\n installers,\n installer: installers[installerIndex],\n showNextInstaller,\n showLogin,\n onUser,\n skippingVersions\n };\n};\n"]}
@@ -1,8 +1,8 @@
1
- import { ReactElement } from "react";
2
- export declare type EmptyViewProps = {
1
+ import React, { ReactElement } from "react";
2
+ export interface EmptyViewProps {
3
3
  icon?: ReactElement;
4
4
  title: string;
5
- action: ReactElement;
6
- };
7
- declare const EmptyView: ({ icon, title, action }: EmptyViewProps) => JSX.Element;
5
+ action: ReactElement | null;
6
+ }
7
+ declare const EmptyView: React.FC<EmptyViewProps>;
8
8
  export default EmptyView;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["EmptyView.tsx"],"names":["React","styled","Typography","ReactComponent","TouchIcon","EmptyViewWrapper","width","height","display","flexDirection","alignItems","justifyContent","fill","marginBottom","maxWidth","textAlign","color","padding","backgroundColor","EmptyView","icon","title","action"],"mappings":"AAAA,OAAOA,KAAP,MAAoC,OAApC;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,UAAT,QAA2B,uBAA3B;AACA,SAASC,cAAc,IAAIC,SAA3B;AAEA,IAAMC,gBAAgB,gBAAGJ,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACnCK,EAAAA,KAAK,EAAE,MAD4B;AAEnCC,EAAAA,MAAM,EAAE,KAF2B;AAGnCC,EAAAA,OAAO,EAAE,MAH0B;AAInCC,EAAAA,aAAa,EAAE,QAJoB;AAKnCC,EAAAA,UAAU,EAAE,QALuB;AAMnCC,EAAAA,cAAc,EAAE,QANmB;AAQnC,cAAY;AACR,aAAS;AACLL,MAAAA,KAAK,EAAE,EADF;AAELC,MAAAA,MAAM,EAAE,EAFH;AAGLK,MAAAA,IAAI,EAAE;AAHD,KADD;AAMRC,IAAAA,YAAY,EAAE;AANN,GARuB;AAgBnC,yBAAuB;AACnBC,IAAAA,QAAQ,EAAE,GADS;AAEnBC,IAAAA,SAAS,EAAE,QAFQ;AAGnBF,IAAAA,YAAY,EAAE,EAHK;AAInB,gBAAY;AACRG,MAAAA,KAAK,EAAE;AADC;AAJO,GAhBY;AAwBnC,0BAAwB;AACpB,qBAAiB;AACbC,MAAAA,OAAO,EAAE,UADI;AAEbC,MAAAA,eAAe,EAAE;AAFJ;AADG;AAxBW,CAAjB,CAAtB;;AAoCA,IAAMC,SAAmC,GAAG,SAAtCA,SAAsC,OAA6C;AAAA,uBAA1CC,IAA0C;AAAA,MAA1CA,IAA0C,uCAAnC,oBAAC,SAAD,OAAmC;AAAA,MAApBC,KAAoB,QAApBA,KAAoB;AAAA,MAAbC,MAAa,QAAbA,MAAa;AACrF,sBACI,oBAAC,gBAAD,qBACI;AAAK,IAAA,SAAS,EAAE;AAAhB,KAA0BF,IAA1B,CADJ,eAEI;AAAK,IAAA,SAAS,EAAC;AAAf,kBACI,oBAAC,UAAD;AAAY,IAAA,GAAG,EAAE,WAAjB;AAA8B,IAAA,SAAS,EAAE;AAAzC,KACKC,KADL,CADJ,CAFJ,eAOI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCC,MAApC,CAPJ,CADJ;AAWH,CAZD;;AAcA,eAAeH,SAAf","sourcesContent":["import React, { ReactElement } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as TouchIcon } from \"../assets/icons/touch_app.svg\";\n\nconst EmptyViewWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"80%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n\n \"& .media\": {\n \"& svg\": {\n width: 75,\n height: 75,\n fill: \"var(--mdc-theme-text-icon-on-background)\"\n },\n marginBottom: 30\n },\n \"& .title__container\": {\n maxWidth: 276,\n textAlign: \"center\",\n marginBottom: 24,\n \"& .title\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n },\n \"& .action__container\": {\n \"& .mdc-button\": {\n padding: \"0px 16px\",\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n }\n});\nexport interface EmptyViewProps {\n icon?: ReactElement;\n title: string;\n action: ReactElement | null;\n}\nconst EmptyView: React.FC<EmptyViewProps> = ({ icon = <TouchIcon />, title, action }) => {\n return (\n <EmptyViewWrapper>\n <div className={\"media\"}>{icon}</div>\n <div className=\"title__container\">\n <Typography use={\"subtitle1\"} className={\"title\"}>\n {title}\n </Typography>\n </div>\n <div className=\"action__container\">{action}</div>\n </EmptyViewWrapper>\n );\n};\n\nexport default EmptyView;\n"]}
@@ -1,5 +1,6 @@
1
- /// <reference types="react" />
2
- declare const SupportedFileTypes: ({ accept }: {
3
- accept: any;
4
- }) => JSX.Element;
1
+ import React from "react";
2
+ export interface SupportedFileTypesProps {
3
+ accept: string[];
4
+ }
5
+ declare const SupportedFileTypes: React.FC<SupportedFileTypesProps>;
5
6
  export default SupportedFileTypes;
@@ -13,7 +13,13 @@ mime.define({
13
13
  var getUniqueFilePlugins = function getUniqueFilePlugins(accept) {
14
14
  var exts = {};
15
15
  accept.forEach(function (item) {
16
- exts[mime.getExtension(item)] = true;
16
+ var ext = mime.getExtension(item);
17
+
18
+ if (!ext) {
19
+ return;
20
+ }
21
+
22
+ exts[ext] = true;
17
23
  });
18
24
  return Object.keys(exts);
19
25
  };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["SupportedFileTypes.tsx"],"names":["React","mime","define","getUniqueFilePlugins","accept","exts","forEach","item","ext","getExtension","Object","keys","SupportedFileTypes","length","join"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,IAAP,MAAiB,WAAjB;AAEAA,IAAI,CAACC,MAAL,CAAY;AAAE,kBAAgB,CAAC,KAAD;AAAlB,CAAZ,EAAyC,IAAzC;AACAD,IAAI,CAACC,MAAL,CAAY;AAAE,eAAa,CAAC,KAAD;AAAf,CAAZ,EAAsC,IAAtC;AACAD,IAAI,CAACC,MAAL,CAAY;AAAE,8BAA4B,CAAC,KAAD;AAA9B,CAAZ,EAAqD,IAArD;;AAEA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,MAAD,EAAgC;AACzD,MAAMC,IAA6B,GAAG,EAAtC;AACAD,EAAAA,MAAM,CAACE,OAAP,CAAe,UAAAC,IAAI,EAAI;AACnB,QAAMC,GAAG,GAAGP,IAAI,CAACQ,YAAL,CAAkBF,IAAlB,CAAZ;;AACA,QAAI,CAACC,GAAL,EAAU;AACN;AACH;;AACDH,IAAAA,IAAI,CAACG,GAAD,CAAJ,GAAY,IAAZ;AACH,GAND;AAQA,SAAOE,MAAM,CAACC,IAAP,CAAYN,IAAZ,CAAP;AACH,CAXD;;AAiBA,IAAMO,kBAAqD,GAAG,SAAxDA,kBAAwD,OAAgB;AAAA,MAAbR,MAAa,QAAbA,MAAa;;AAC1E,MAAI,CAACA,MAAL,EAAa;AACT,WAAO,IAAP;AACH;;AAED,MAAIA,MAAM,CAACS,MAAP,KAAkB,CAAtB,EAAyB;AACrB,wBAAO,iEAAP;AACH;;AAED,sBACI,6EAC4CV,oBAAoB,CAACC,MAAD,CAApB,CAA6BU,IAA7B,CAAkC,IAAlC,CAD5C,MADJ;AAKH,CAdD;;AAgBA,eAAeF,kBAAf","sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst getUniqueFilePlugins = (accept: string[]): string[] => {\n const exts: Record<string, boolean> = {};\n accept.forEach(item => {\n const ext = mime.getExtension(item);\n if (!ext) {\n return;\n }\n exts[ext] = true;\n });\n\n return Object.keys(exts);\n};\n\nexport interface SupportedFileTypesProps {\n accept: string[];\n}\n\nconst SupportedFileTypes: React.FC<SupportedFileTypesProps> = ({ accept }) => {\n if (!accept) {\n return null;\n }\n\n if (accept.length === 0) {\n return <span>Showing all file extensions.</span>;\n }\n\n return (\n <span>\n Showing the following file extensions: {getUniqueFilePlugins(accept).join(\", \")}.\n </span>\n );\n};\n\nexport default SupportedFileTypes;\n"]}
@@ -1,5 +1,6 @@
1
- /// <reference types="react" />
2
- declare const UploadStatus: ({ uploading }: {
3
- uploading: any;
4
- }) => JSX.Element;
1
+ import React from "react";
2
+ export interface UploadStatusProps {
3
+ uploading: boolean;
4
+ }
5
+ declare const UploadStatus: React.FC<UploadStatusProps>;
5
6
  export default UploadStatus;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["UploadStatus.tsx"],"names":["React","styled","CircularProgress","StatusWrapper","color","position","right","bottom","marginRight","display","alignItems","CircularProgressHolder","height","width","UploadingLabel","UploadStatus","uploading"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AAEA,IAAMC,aAAa,gBAAGF,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AAChCG,EAAAA,KAAK,EAAE,0BADyB;AAEhCC,EAAAA,QAAQ,EAAE,UAFsB;AAGhCC,EAAAA,KAAK,EAAE,CAHyB;AAIhCC,EAAAA,MAAM,EAAE,EAJwB;AAKhCC,EAAAA,WAAW,EAAE,EALmB;AAMhCC,EAAAA,OAAO,EAAE,MANuB;AAOhCC,EAAAA,UAAU,EAAE,QAPoB;AAQhC,WAAS;AACLD,IAAAA,OAAO,EAAE;AADJ;AARuB,CAAjB,CAAnB;AAaA,IAAME,sBAAsB,gBAAGV,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACzCI,EAAAA,QAAQ,EAAE,UAD+B;AAEzCO,EAAAA,MAAM,EAAE,EAFiC;AAGzCC,EAAAA,KAAK,EAAE;AAHkC,CAAjB,CAA5B;AAMA,IAAMC,cAAc,gBAAGb,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACjCO,EAAAA,WAAW,EAAE;AADoB,CAAjB,CAApB;;AAOA,IAAMO,YAAyC,GAAG,SAA5CA,YAA4C,OAAmB;AAAA,MAAhBC,SAAgB,QAAhBA,SAAgB;;AACjE,MAAI,CAACA,SAAL,EAAgB;AACZ,WAAO,IAAP;AACH;;AAED,sBACI,oBAAC,aAAD,qBACI,oBAAC,cAAD,uBADJ,eAEI,oBAAC,sBAAD,qBACI,oBAAC,gBAAD;AAAkB,IAAA,IAAI,EAAE,EAAxB;AAA4B,IAAA,YAAY,EAAE;AAA1C,IADJ,CAFJ,CADJ;AAQH,CAbD;;AAeA,eAAeD,YAAf","sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\n\nconst StatusWrapper = styled(\"div\")({\n color: \"var(--mdc-theme-primary)\",\n position: \"absolute\",\n right: 0,\n bottom: 10,\n marginRight: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"> div\": {\n display: \"inline-block\"\n }\n});\n\nconst CircularProgressHolder = styled(\"div\")({\n position: \"relative\",\n height: 12,\n width: 12\n});\n\nconst UploadingLabel = styled(\"div\")({\n marginRight: 5\n});\n\nexport interface UploadStatusProps {\n uploading: boolean;\n}\nconst UploadStatus: React.FC<UploadStatusProps> = ({ uploading }) => {\n if (!uploading) {\n return null;\n }\n\n return (\n <StatusWrapper>\n <UploadingLabel>Uploading...</UploadingLabel>\n <CircularProgressHolder>\n <CircularProgress size={10} spinnerWidth={1} />\n </CircularProgressHolder>\n </StatusWrapper>\n );\n};\n\nexport default UploadStatus;\n"]}
@@ -1,3 +1,5 @@
1
- /// <reference types="react" />
2
- declare const BottomInfoBar: (props: any) => JSX.Element;
1
+ import React from "react";
2
+ import { SupportedFileTypesProps } from "./BottomInfoBar/SupportedFileTypes";
3
+ import { UploadStatusProps } from "./BottomInfoBar/UploadStatus";
4
+ declare const BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps>;
3
5
  export default BottomInfoBar;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["BottomInfoBar.tsx"],"names":["React","mime","styled","SupportedFileTypes","UploadStatus","define","BottomInfoBarWrapper","fontSize","position","bottom","height","color","borderTop","backgroundColor","width","transform","overflow","display","alignItems","zIndex","padding","BottomInfoBar","props"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,IAAP,MAAiB,WAAjB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,OAAOC,kBAAP;AACA,OAAOC,YAAP;AAEAH,IAAI,CAACI,MAAL,CAAY;AAAE,kBAAgB,CAAC,KAAD;AAAlB,CAAZ,EAAyC,IAAzC;AACAJ,IAAI,CAACI,MAAL,CAAY;AAAE,eAAa,CAAC,KAAD;AAAf,CAAZ,EAAsC,IAAtC;AACAJ,IAAI,CAACI,MAAL,CAAY;AAAE,8BAA4B,CAAC,KAAD;AAA9B,CAAZ,EAAqD,IAArD;AAEA,IAAMC,oBAAoB,gBAAGJ,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACvCK,EAAAA,QAAQ,EAAE,QAD6B;AAEvCC,EAAAA,QAAQ,EAAE,QAF6B;AAGvCC,EAAAA,MAAM,EAAE,CAH+B;AAIvCC,EAAAA,MAAM,EAAE,EAJ+B;AAKvCC,EAAAA,KAAK,EAAE,+CALgC;AAMvCC,EAAAA,SAAS,EAAE,0CAN4B;AAOvCC,EAAAA,eAAe,EAAE,0BAPsB;AAQvCC,EAAAA,KAAK,EAAE,MARgC;AASvCC,EAAAA,SAAS,EAAE,eAT4B;AAUvCC,EAAAA,QAAQ,EAAE,QAV6B;AAWvCC,EAAAA,OAAO,EAAE,MAX8B;AAYvCC,EAAAA,UAAU,EAAE,QAZ2B;AAavCC,EAAAA,MAAM,EAAE,CAb+B;AAcvC,WAAS;AACLC,IAAAA,OAAO,EAAE,QADJ;AAELN,IAAAA,KAAK,EAAE;AAFF;AAd8B,CAAjB,CAA1B;;AAoBA,IAAMO,aAAoE,GAAG,SAAvEA,aAAuE,CAAAC,KAAK,EAAI;AAClF,sBACI,oBAAC,oBAAD,qBACI,8CACI,oBAAC,kBAAD,EAAwBA,KAAxB,CADJ,eAEI,oBAAC,YAAD,EAAkBA,KAAlB,CAFJ,CADJ,CADJ;AAQH,CATD;;AAWA,eAAeD,aAAf","sourcesContent":["import React from \"react\";\nimport mime from \"mime/lite\";\nimport styled from \"@emotion/styled\";\nimport SupportedFileTypes, { SupportedFileTypesProps } from \"./BottomInfoBar/SupportedFileTypes\";\nimport UploadStatus, { UploadStatusProps } from \"./BottomInfoBar/UploadStatus\";\n\nmime.define({ \"image/x-icon\": [\"ico\"] }, true);\nmime.define({ \"image/jpg\": [\"jpg\"] }, true);\nmime.define({ \"image/vnd.microsoft.icon\": [\"ico\"] }, true);\n\nconst BottomInfoBarWrapper = styled(\"div\")({\n fontSize: \"0.8rem\",\n position: \"sticky\",\n bottom: 0,\n height: 30,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n borderTop: \"1px solid var(--mdc-theme-on-background)\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n width: \"100%\",\n transform: \"translateZ(0)\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n zIndex: 1,\n \"> div\": {\n padding: \"0 10px\",\n width: \"100%\"\n }\n});\n\nconst BottomInfoBar: React.FC<SupportedFileTypesProps & UploadStatusProps> = props => {\n return (\n <BottomInfoBarWrapper>\n <div>\n <SupportedFileTypes {...props} />\n <UploadStatus {...props} />\n </div>\n </BottomInfoBarWrapper>\n );\n};\n\nexport default BottomInfoBar;\n"]}
@@ -1,8 +1,9 @@
1
1
  import React from "react";
2
- export declare type DropFilesHereProps = {
2
+ export interface DropFilesHereProps {
3
3
  onDragLeave?: (event?: React.DragEvent<HTMLElement>) => void;
4
4
  onDrop?: (event?: React.DragEvent<HTMLElement>) => void;
5
5
  empty?: boolean;
6
6
  onClick?: (event?: React.MouseEvent<HTMLElement>) => void;
7
- };
8
- export default function DropFilesHere({ onDrop, onDragLeave, empty, onClick }: DropFilesHereProps): JSX.Element;
7
+ }
8
+ declare const DropFilesHere: React.FC<DropFilesHereProps>;
9
+ export default DropFilesHere;
@@ -40,7 +40,8 @@ var styles = /*#__PURE__*/css({
40
40
  }
41
41
  }
42
42
  }, "label:styles;");
43
- export default function DropFilesHere(_ref) {
43
+
44
+ var DropFilesHere = function DropFilesHere(_ref) {
44
45
  var onDrop = _ref.onDrop,
45
46
  onDragLeave = _ref.onDragLeave,
46
47
  empty = _ref.empty,
@@ -55,4 +56,6 @@ export default function DropFilesHere(_ref) {
55
56
  }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Icon, {
56
57
  icon: /*#__PURE__*/React.createElement(UploadIcon, null)
57
58
  }), /*#__PURE__*/React.createElement("div", null, "Drop files here"))));
58
- }
59
+ };
60
+
61
+ export default DropFilesHere;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["DropFilesHere.tsx"],"names":["React","css","classNames","Icon","ReactComponent","UploadIcon","styles","margin","paddingTop","height","zIndex","width","position","backgroundColor","textAlign","borderRadius","left","top","transform","color","display","DropFilesHere","onDrop","onDragLeave","empty","onClick"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,IAAT,QAAqB,iBAArB;AAEA,SAASC,cAAc,IAAIC,UAA3B;AAEA,IAAMC,MAAM,gBAAGL,GAAG,CAAC;AACfM,EAAAA,MAAM,EAAE,QADO;AAEfC,EAAAA,UAAU,EAAE,CAFG;AAGfC,EAAAA,MAAM,EAAE,MAHO;AAIfC,EAAAA,MAAM,EAAE,CAJO;AAKfC,EAAAA,KAAK,EAAE,MALQ;AAMfC,EAAAA,QAAQ,EAAE,UANK;AAOfC,EAAAA,eAAe,EAAE,qCAPF;AAQf,aAAW;AACPA,IAAAA,eAAe,EAAE,aADV;AAEP,aAAS;AACLA,MAAAA,eAAe,EAAE;AADZ;AAFF,GARI;AAcf,WAAS;AACLC,IAAAA,SAAS,EAAE,QADN;AAELH,IAAAA,KAAK,EAAE,GAFF;AAGLF,IAAAA,MAAM,EAAE,GAHH;AAILI,IAAAA,eAAe,EAAE,6BAJZ;AAKLE,IAAAA,YAAY,EAAE,KALT;AAMLH,IAAAA,QAAQ,EAAE,UANL;AAOLI,IAAAA,IAAI,EAAE,KAPD;AAQLC,IAAAA,GAAG,EAAE,KARA;AASLC,IAAAA,SAAS,EAAE,oCATN;AAUL,aAAS;AACLN,MAAAA,QAAQ,EAAE,UADL;AAELK,MAAAA,GAAG,EAAE,EAFA;AAGLN,MAAAA,KAAK,EAAE,GAHF;AAILQ,MAAAA,KAAK,EAAE,6BAJF;AAKL,8BAAwB;AACpBR,QAAAA,KAAK,EAAE,GADa;AAEpBS,QAAAA,OAAO,EAAE,cAFW;AAGpBD,QAAAA,KAAK,EAAE;AAHa;AALnB;AAVJ;AAdM,CAAD,kBAAlB;;AA6CA,IAAME,aAA2C,GAAG,SAA9CA,aAA8C,OAA6C;AAAA,MAA1CC,MAA0C,QAA1CA,MAA0C;AAAA,MAAlCC,WAAkC,QAAlCA,WAAkC;AAAA,MAArBC,KAAqB,QAArBA,KAAqB;AAAA,MAAdC,OAAc,QAAdA,OAAc;AAC7F,sBACI;AACI,IAAA,SAAS,EAAEvB,UAAU,CAACI,MAAD,EAAS;AAAEkB,MAAAA,KAAK,EAALA;AAAF,KAAT,CADzB;AAEI,IAAA,MAAM,EAAEF,MAFZ;AAGI,IAAA,OAAO,EAAEG,OAHb;AAII,IAAA,WAAW,EAAEF;AAJjB,kBAMI,8CACI,8CACI,oBAAC,IAAD;AAAM,IAAA,IAAI,eAAE,oBAAC,UAAD;AAAZ,IADJ,eAEI,mDAFJ,CADJ,CANJ,CADJ;AAeH,CAhBD;;AAiBA,eAAeF,aAAf","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Icon } from \"@webiny/ui/Icon\";\n\nimport { ReactComponent as UploadIcon } from \"./icons/round-cloud_upload-24px.svg\";\n\nconst styles = css({\n margin: \"0 auto\",\n paddingTop: 0,\n height: \"100%\",\n zIndex: 2,\n width: \"100%\",\n position: \"absolute\",\n backgroundColor: \"var(--mdc-theme-text-hint-on-light)\",\n \"&.empty\": {\n backgroundColor: \"transparent\",\n \"> div\": {\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n },\n \"> div\": {\n textAlign: \"center\",\n width: 300,\n height: 300,\n backgroundColor: \"var(--mdc-theme-background)\",\n borderRadius: \"50%\",\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translateX(-50%) translateY(-100%)\",\n \"> div\": {\n position: \"absolute\",\n top: 90,\n width: 300,\n color: \"var(--mdc-theme-on-surface)\",\n \"svg.mdc-button__icon\": {\n width: 100,\n display: \"inline-block\",\n color: \"var(--mdc-theme-on-surface)\"\n }\n }\n }\n});\n\nexport interface DropFilesHereProps {\n onDragLeave?: (event?: React.DragEvent<HTMLElement>) => void;\n onDrop?: (event?: React.DragEvent<HTMLElement>) => void;\n empty?: boolean;\n onClick?: (event?: React.MouseEvent<HTMLElement>) => void;\n}\n\nconst DropFilesHere: React.FC<DropFilesHereProps> = ({ onDrop, onDragLeave, empty, onClick }) => {\n return (\n <div\n className={classNames(styles, { empty })}\n onDrop={onDrop}\n onClick={onClick}\n onDragLeave={onDragLeave}\n >\n <div>\n <div>\n <Icon icon={<UploadIcon />} />\n <div>Drop files here</div>\n </div>\n </div>\n </div>\n );\n};\nexport default DropFilesHere;\n"]}
@@ -1,18 +1,17 @@
1
+ /// <reference types="react-butterfiles" />
1
2
  import React from "react";
2
- declare type Props = {
3
- file: {
4
- [key: string]: any;
5
- };
3
+ export interface FileProps {
4
+ file: FileItem;
6
5
  selected: boolean;
7
- uploadFile: Function;
6
+ uploadFile: (item: FileItem[] | FileItem) => Promise<number | null>;
8
7
  onSelect: (event?: React.MouseEvent) => void;
9
- onClick: (event?: React.MouseEvent) => void;
8
+ onClick?: (event?: React.MouseEvent) => void;
10
9
  options?: Array<{
11
10
  label: string;
12
11
  onClick: (file: Object) => void;
13
12
  }>;
14
13
  children: React.ReactNode;
15
14
  showFileDetails: (event?: React.MouseEvent) => void;
16
- };
17
- declare const _default: React.NamedExoticComponent<Props>;
15
+ }
16
+ declare const _default: React.NamedExoticComponent<FileProps>;
18
17
  export default _default;
@@ -1,4 +1,9 @@
1
1
  import React from "react";
2
+ /**
3
+ * Package react-lazy-load has no types.
4
+ */
5
+ // @ts-ignore
6
+
2
7
  import LazyLoad from "react-lazy-load";
3
8
  import classNames from "classnames";
4
9
  import { css, keyframes } from "emotion";
@@ -82,7 +87,8 @@ var styles = /*#__PURE__*/css({
82
87
  cursor: "auto"
83
88
  }
84
89
  }, "label:styles;");
85
- export default /*#__PURE__*/React.memo(function File(props) {
90
+
91
+ var File = function File(props) {
86
92
  var file = props.file,
87
93
  selected = props.selected,
88
94
  onSelect = props.onSelect,
@@ -116,12 +122,12 @@ export default /*#__PURE__*/React.memo(function File(props) {
116
122
  className: "label",
117
123
  onClick: onSelect
118
124
  }, file.name));
119
- }, function (prev, next) {
125
+ };
126
+
127
+ export default /*#__PURE__*/React.memo(File, function (prev, next) {
120
128
  if (prev.selected !== next.selected) {
121
129
  return false;
122
- }
123
-
124
- if (prev.file.name !== next.file.name) {
130
+ } else if (prev.file.name !== next.file.name) {
125
131
  return false;
126
132
  }
127
133
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["File.tsx"],"names":["React","LazyLoad","classNames","css","keyframes","Ripple","IconButton","ReactComponent","Checked","SettingsIcon","COMPONENT_WIDTH","COMPONENT_HEIGHT","grow","styles","display","float","position","zIndex","margin","cursor","width","maxWidth","border","borderRadius","transition","height","overflow","color","top","left","opacity","right","animationName","animationDuration","animationTimingFunction","animationDelay","textAlign","backgroundColor","padding","whiteSpace","textOverflow","fontSize","File","props","file","selected","onSelect","children","showFileDetails","name","memo","prev","next"],"mappings":"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","sourcesContent":["import React from \"react\";\n/**\n * Package react-lazy-load has no types.\n */\n// @ts-ignore\nimport LazyLoad from \"react-lazy-load\";\nimport classNames from \"classnames\";\nimport { css, keyframes } from \"emotion\";\nimport { Ripple } from \"@webiny/ui/Ripple\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { ReactComponent as Checked } from \"./icons/round-check_box-24px.svg\";\nimport { ReactComponent as SettingsIcon } from \"../../assets/icons/round-settings-24px.svg\";\n\nconst COMPONENT_WIDTH = 200;\nconst COMPONENT_HEIGHT = 200;\n\nconst grow = keyframes`\n 0% {\n transform: scale(1)\n }\n 50% {\n transform: scale(1.2)\n }\n 100% {\n transform: scale(1)\n }\n`;\nconst styles = css({\n display: \"inline-block\",\n float: \"left\",\n position: \"relative\",\n zIndex: 1,\n margin: 10,\n cursor: \"pointer\",\n width: \"100%\",\n maxWidth: COMPONENT_WIDTH,\n border: \"1px solid var(--mdc-theme-on-background)\",\n borderRadius: 2,\n \"> .body\": {\n transition: \"200ms ease-in opacity\",\n width: COMPONENT_WIDTH,\n height: COMPONENT_HEIGHT,\n overflow: \"hidden\",\n \"--icon-color\": \"var(--mdc-theme-on-background)\",\n \".checkedIcon\": {\n color: \"var(--mdc-theme-secondary)\",\n position: \"absolute\",\n top: 4,\n left: 4,\n zIndex: 11\n },\n \".infoIcon\": {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n right: 0,\n zIndex: 10,\n transition: \"all 150ms ease-in\",\n \"& .mdc-icon-button svg\": {\n color: \"var(--mdc-theme-secondary)\"\n },\n \"&:hover\": {\n animationName: grow,\n animationDuration: \".4s\",\n animationTimingFunction: \"ease-in\",\n animationDelay: \".2s\"\n }\n },\n \".filePreview\": {\n textAlign: \"center\",\n position: \"relative\",\n backgroundColor: \"#fff\",\n width: \"100%\",\n height: \"100%\",\n \".clickableArea\": {\n position: \"absolute\",\n top: 30,\n left: 0,\n width: \"100%\",\n height: 170,\n zIndex: 2\n }\n },\n \"&:hover .infoIcon\": {\n opacity: 1\n }\n },\n \"> .label\": {\n padding: \"15px 10px\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n fontSize: \"0.8rem\",\n color: \"var(--mdc-theme-on-surface)\",\n backgroundColor: \"var(--mdc-theme-on-background)\"\n },\n \"&.disable-select\": {\n cursor: \"auto\"\n }\n});\n\nexport interface FileProps {\n file: FileItem;\n selected: boolean;\n uploadFile: (item: FileItem[] | FileItem) => Promise<number | null>;\n onSelect: (event?: React.MouseEvent) => void;\n onClick?: (event?: React.MouseEvent) => void;\n options?: Array<{ label: string; onClick: (file: Object) => void }>;\n children: React.ReactNode;\n showFileDetails: (event?: React.MouseEvent) => void;\n}\n\nconst File: React.FC<FileProps> = props => {\n const { file, selected, onSelect, children, showFileDetails } = props;\n\n return (\n <div\n className={classNames(styles, { \"disable-select\": !onSelect })}\n data-testid={\"fm-list-wrapper-file\"}\n >\n <div className={\"body\"}>\n <div className={\"checkedIcon\"} onClick={onSelect}>\n {selected ? <Checked /> : null}\n </div>\n <div className={\"infoIcon\"}>\n <IconButton\n icon={<SettingsIcon />}\n onClick={showFileDetails}\n data-testid={\"fm-file-wrapper-file-info-icon\"}\n />\n </div>\n <LazyLoad height={200} offsetVertical={300}>\n <Ripple>\n <div className={\"filePreview\"}>\n <div className=\"clickableArea\" onClick={onSelect} />\n {children}\n </div>\n </Ripple>\n </LazyLoad>\n </div>\n <div className={\"label\"} onClick={onSelect}>\n {file.name}\n </div>\n </div>\n );\n};\n\nexport default React.memo(File, (prev, next) => {\n if (prev.selected !== next.selected) {\n return false;\n } else if (prev.file.name !== next.file.name) {\n return false;\n }\n\n return true;\n});\n"]}
@@ -1,6 +1,8 @@
1
- /// <reference types="react" />
2
- declare function Name({ file, canEdit }: {
3
- file: any;
4
- canEdit: any;
5
- }): JSX.Element;
1
+ import React from "react";
2
+ import { FileItem } from "../types";
3
+ interface NameProps {
4
+ file: FileItem;
5
+ canEdit: (file: FileItem) => boolean;
6
+ }
7
+ declare const Name: React.FC<NameProps>;
6
8
  export default Name;
@@ -11,7 +11,7 @@ import { useSnackbar } from "../../../hooks/useSnackbar";
11
11
  import { UPDATE_FILE, LIST_FILES } from "./../graphql";
12
12
  import { useFileManager } from "./../FileManagerContext";
13
13
 
14
- function Name(_ref) {
14
+ var Name = function Name(_ref) {
15
15
  var file = _ref.file,
16
16
  canEdit = _ref.canEdit;
17
17
  var name = file.name || "";
@@ -63,11 +63,14 @@ function Name(_ref) {
63
63
  variables: queryParams
64
64
  }));
65
65
 
66
- data.fileManager.listFiles.data.forEach(function (item) {
67
- if (item.src === newFileData.src) {
68
- item.name = newFileData.name;
69
- }
70
- });
66
+ if (data) {
67
+ data.fileManager.listFiles.data.forEach(function (item) {
68
+ if (item.src === newFileData.src) {
69
+ item.name = newFileData.name;
70
+ }
71
+ });
72
+ }
73
+
71
74
  cache.writeQuery({
72
75
  query: LIST_FILES,
73
76
  variables: queryParams,
@@ -108,6 +111,6 @@ function Name(_ref) {
108
111
  });
109
112
  }, [name, file.name, canEdit]);
110
113
  return /*#__PURE__*/React.createElement("li-content", null, editContent);
111
- }
114
+ };
112
115
 
113
116
  export default Name;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Name.tsx"],"names":["React","useMemo","useApolloClient","Input","Form","validation","useSnackbar","UPDATE_FILE","LIST_FILES","useFileManager","Name","file","canEdit","name","showSnackbar","client","queryParams","editContent","mutate","mutation","variables","id","data","update","cache","updated","newFileData","readQuery","query","fileManager","listFiles","forEach","item","src","writeQuery","Bind","submit","create"],"mappings":"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","sourcesContent":["import React, { useMemo } from \"react\";\nimport { get, cloneDeep } from \"lodash\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport {\n UPDATE_FILE,\n LIST_FILES,\n UpdateFileMutationResponse,\n UpdateFileMutationVariables,\n ListFilesQueryResponse\n} from \"./../graphql\";\nimport { useFileManager } from \"./../FileManagerContext\";\nimport { FileItem } from \"../types\";\n\ninterface NameProps {\n file: FileItem;\n canEdit: (file: FileItem) => boolean;\n}\nconst Name: React.FC<NameProps> = ({ file, canEdit }) => {\n const name = file.name || \"\";\n const { showSnackbar } = useSnackbar();\n const client = useApolloClient();\n\n const { queryParams } = useFileManager();\n\n const editContent = useMemo(() => {\n return (\n <Form\n data={{\n name\n }}\n onSubmit={async ({ name }) => {\n // Bail out if name is same as the current file name.\n if (name === file.name) {\n return;\n }\n // Update file.\n await client.mutate<UpdateFileMutationResponse, UpdateFileMutationVariables>({\n mutation: UPDATE_FILE,\n variables: {\n id: file.id,\n data: { name }\n },\n update: (cache, updated) => {\n const newFileData: FileItem = get(\n updated,\n \"data.fileManager.updateFile.data\"\n );\n const data = cloneDeep(\n cache.readQuery<ListFilesQueryResponse>({\n query: LIST_FILES,\n variables: queryParams\n })\n );\n\n if (data) {\n data.fileManager.listFiles.data.forEach(item => {\n if (item.src === newFileData.src) {\n item.name = newFileData.name;\n }\n });\n }\n\n cache.writeQuery({\n query: LIST_FILES,\n variables: queryParams,\n data: data\n });\n }\n });\n\n showSnackbar(\"Name successfully updated.\");\n }}\n >\n {({ Bind, submit }) => (\n <Bind name={\"name\"} validators={validation.create(\"required\")}>\n <Input\n disabled={!canEdit(file)}\n autoFocus\n placeholder={\"Enter name\"}\n fullwidth={true}\n onBlur={submit}\n description={\"A descriptive name is easier to remember.\"}\n />\n </Bind>\n )}\n </Form>\n );\n }, [name, file.name, canEdit]);\n\n return <li-content>{editContent}</li-content>;\n};\n\nexport default Name;\n"]}
@@ -1,6 +1,8 @@
1
- /// <reference types="react" />
2
- declare function Tags({ file, canEdit }: {
3
- file: any;
4
- canEdit: any;
5
- }): JSX.Element;
1
+ import React from "react";
2
+ import { FileItem } from "../types";
3
+ interface TagsProps {
4
+ file: FileItem;
5
+ canEdit: (file: FileItem) => boolean;
6
+ }
7
+ declare const Tags: React.FC<TagsProps>;
6
8
  export default Tags;
@@ -49,7 +49,7 @@ var actionWrapperStyle = /*#__PURE__*/css({
49
49
  }
50
50
  }, "label:actionWrapperStyle;");
51
51
 
52
- function Tags(_ref) {
52
+ var Tags = function Tags(_ref) {
53
53
  var file = _ref.file,
54
54
  canEdit = _ref.canEdit;
55
55
  var client = useApolloClient();
@@ -142,11 +142,15 @@ function Tags(_ref) {
142
142
  query: LIST_FILES,
143
143
  variables: queryParams
144
144
  }));
145
- data.fileManager.listFiles.data.forEach(function (item) {
146
- if (item.key === newFileData.key) {
147
- item.tags = newFileData.tags;
148
- }
149
- });
145
+
146
+ if (data) {
147
+ data.fileManager.listFiles.data.forEach(function (item) {
148
+ if (item.key === newFileData.key) {
149
+ item.tags = newFileData.tags;
150
+ }
151
+ });
152
+ }
153
+
150
154
  cache.writeQuery({
151
155
  query: LIST_FILES,
152
156
  variables: queryParams,
@@ -157,7 +161,12 @@ function Tags(_ref) {
157
161
  // Get list tags data
158
162
  var listTagsData = cloneDeep(cache.readQuery({
159
163
  query: LIST_TAGS
160
- })); // Add new tag in list
164
+ }));
165
+
166
+ if (!listTagsData) {
167
+ return;
168
+ } // Add new tag in list
169
+
161
170
 
162
171
  var updatedTagsList = _toConsumableArray(newFileData.tags);
163
172
 
@@ -205,6 +214,8 @@ function Tags(_ref) {
205
214
  className: "list-item__icon",
206
215
  icon: /*#__PURE__*/React.createElement(LabelIcon, null)
207
216
  }), renderHeaderContent({
217
+ // TODO @ts-refactor
218
+ // @ts-ignore
208
219
  data: data
209
220
  })), editing && /*#__PURE__*/React.createElement("li-content", null, /*#__PURE__*/React.createElement(Bind, {
210
221
  name: "tags",
@@ -226,7 +237,9 @@ function Tags(_ref) {
226
237
  className: actionWrapperStyle
227
238
  }, /*#__PURE__*/React.createElement(ButtonPrimary, {
228
239
  small: true,
229
- onClick: submit,
240
+ onClick: function onClick(ev) {
241
+ submit(ev);
242
+ },
230
243
  "data-testid": "fm.tags.submit"
231
244
  }, "Submit"), /*#__PURE__*/React.createElement(ButtonSecondary, {
232
245
  small: true,
@@ -236,6 +249,6 @@ function Tags(_ref) {
236
249
  }
237
250
  }, "Cancel"))));
238
251
  });
239
- }
252
+ };
240
253
 
241
254
  export default Tags;