@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.
- package/base/Admin.d.ts +3 -10
- package/base/Admin.js +4 -0
- package/base/Admin.js.map +1 -0
- package/base/Base.d.ts +1 -1
- package/base/Base.js.map +1 -0
- package/base/plugins/AddGraphQLQuerySelection.d.ts +2 -2
- package/base/plugins/AddGraphQLQuerySelection.js +3 -2
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -0
- package/base/providers/ApolloProvider.d.ts +9 -3
- package/base/providers/ApolloProvider.js +2 -1
- package/base/providers/ApolloProvider.js.map +1 -0
- package/base/providers/TelemetryProvider.d.ts +2 -4
- package/base/providers/TelemetryProvider.js +5 -0
- package/base/providers/TelemetryProvider.js.map +1 -0
- package/base/providers/UiStateProvider.d.ts +1 -3
- package/base/providers/UiStateProvider.js.map +1 -0
- package/base/providers/ViewCompositionProvider.d.ts +4 -5
- package/base/providers/ViewCompositionProvider.js +8 -1
- package/base/providers/ViewCompositionProvider.js.map +1 -0
- package/base/ui/Brand.d.ts +2 -9
- package/base/ui/Brand.js.map +1 -0
- package/base/ui/CenteredView.d.ts +1 -5
- package/base/ui/CenteredView.js.map +1 -0
- package/base/ui/Dashboard.d.ts +2 -9
- package/base/ui/Dashboard.js.map +1 -0
- package/base/ui/Layout.d.ts +2 -8
- package/base/ui/Layout.js.map +1 -0
- package/base/ui/LocaleSelector.d.ts +2 -9
- package/base/ui/LocaleSelector.js.map +1 -0
- package/base/ui/LoginScreen.d.ts +2 -5
- package/base/ui/LoginScreen.js.map +1 -0
- package/base/ui/Logo.d.ts +3 -9
- package/base/ui/Logo.js.map +1 -0
- package/base/ui/Menu.d.ts +8 -12
- package/base/ui/Menu.js +96 -30
- package/base/ui/Menu.js.map +1 -0
- package/base/ui/Navigation.d.ts +9 -20
- package/base/ui/Navigation.js +29 -29
- package/base/ui/Navigation.js.map +1 -0
- package/base/ui/NotFound.d.ts +2 -9
- package/base/ui/NotFound.js.map +1 -0
- package/base/ui/Search.d.ts +4 -13
- package/base/ui/Search.js +6 -1
- package/base/ui/Search.js.map +1 -0
- package/base/ui/Tags.d.ts +4 -2
- package/base/ui/Tags.js.map +1 -0
- package/base/ui/UserMenu.d.ts +9 -33
- package/base/ui/UserMenu.js +15 -2
- package/base/ui/UserMenu.js.map +1 -0
- package/components/AdminLayout.d.ts +1 -2
- package/components/AdminLayout.js.map +1 -0
- package/components/AppInstaller/AppInstaller.d.ts +2 -4
- package/components/AppInstaller/AppInstaller.js.map +1 -0
- package/components/AppInstaller/Sidebar.d.ts +8 -6
- package/components/AppInstaller/Sidebar.js +11 -10
- package/components/AppInstaller/Sidebar.js.map +1 -0
- package/components/AppInstaller/index.js.map +1 -0
- package/components/AppInstaller/styled.d.ts +4 -4
- package/components/AppInstaller/styled.js.map +1 -0
- package/components/AppInstaller/useInstaller.d.ts +28 -9
- package/components/AppInstaller/useInstaller.js +44 -36
- package/components/AppInstaller/useInstaller.js.map +1 -0
- package/components/EmptyView.d.ts +5 -5
- package/components/EmptyView.js.map +1 -0
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +5 -4
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +7 -1
- package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -0
- package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +5 -4
- package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -0
- package/components/FileManager/BottomInfoBar.d.ts +4 -2
- package/components/FileManager/BottomInfoBar.js.map +1 -0
- package/components/FileManager/DropFilesHere.d.ts +4 -3
- package/components/FileManager/DropFilesHere.js +5 -2
- package/components/FileManager/DropFilesHere.js.map +1 -0
- package/components/FileManager/File.d.ts +7 -8
- package/components/FileManager/File.js +11 -5
- package/components/FileManager/File.js.map +1 -0
- package/components/FileManager/FileDetails/Name.d.ts +7 -5
- package/components/FileManager/FileDetails/Name.js +10 -7
- package/components/FileManager/FileDetails/Name.js.map +1 -0
- package/components/FileManager/FileDetails/Tags.d.ts +7 -5
- package/components/FileManager/FileDetails/Tags.js +22 -9
- package/components/FileManager/FileDetails/Tags.js.map +1 -0
- package/components/FileManager/FileDetails.d.ts +9 -8
- package/components/FileManager/FileDetails.js +80 -41
- package/components/FileManager/FileDetails.js.map +1 -0
- package/components/FileManager/FileManagerContext.d.ts +12 -9
- package/components/FileManager/FileManagerContext.js +14 -7
- package/components/FileManager/FileManagerContext.js.map +1 -0
- package/components/FileManager/FileManagerView.d.ts +3 -11
- package/components/FileManager/FileManagerView.js +79 -51
- package/components/FileManager/FileManagerView.js.map +1 -0
- package/components/FileManager/LeftSidebar.d.ts +6 -5
- package/components/FileManager/LeftSidebar.js +6 -5
- package/components/FileManager/LeftSidebar.js.map +1 -0
- package/components/FileManager/NoPermissionView.d.ts +2 -2
- package/components/FileManager/NoPermissionView.js.map +1 -0
- package/components/FileManager/NoResults.d.ts +3 -2
- package/components/FileManager/NoResults.js +5 -2
- package/components/FileManager/NoResults.js.map +1 -0
- package/components/FileManager/getFileTypePlugin.d.ts +4 -1
- package/components/FileManager/getFileTypePlugin.js +9 -0
- package/components/FileManager/getFileTypePlugin.js.map +1 -0
- package/components/FileManager/getFileUploader.d.ts +2 -1
- package/components/FileManager/getFileUploader.js.map +1 -0
- package/components/FileManager/graphql.d.ts +90 -0
- package/components/FileManager/graphql.js +25 -0
- package/components/FileManager/graphql.js.map +1 -0
- package/components/FileManager/outputFileSelectionError.d.ts +6 -1
- package/components/FileManager/outputFileSelectionError.js +3 -2
- package/components/FileManager/outputFileSelectionError.js.map +1 -0
- package/components/FileManager/types.d.ts +19 -0
- package/components/FileManager/types.js +1 -0
- package/components/FileManager/types.js.map +1 -0
- package/components/FileManager.d.ts +15 -10
- package/components/FileManager.js +27 -16
- package/components/FileManager.js.map +1 -0
- package/components/FloatingActionButton.d.ts +2 -2
- package/components/FloatingActionButton.js.map +1 -0
- package/components/MultiImageUpload.d.ts +13 -4
- package/components/MultiImageUpload.js +15 -4
- package/components/MultiImageUpload.js.map +1 -0
- package/components/OverlayLayout/OverlayLayout.d.ts +10 -13
- package/components/OverlayLayout/OverlayLayout.js.map +1 -0
- package/components/OverlayLayout/index.js.map +1 -0
- package/components/Permissions/Permissions.d.ts +4 -4
- package/components/Permissions/Permissions.js.map +1 -0
- package/components/Permissions/StyledComponents.d.ts +6 -4
- package/components/Permissions/StyledComponents.js.map +1 -0
- package/components/Permissions/index.js.map +1 -0
- package/components/RichTextEditor/RichTextEditor.d.ts +2 -2
- package/components/RichTextEditor/RichTextEditor.js.map +1 -0
- package/components/RichTextEditor/index.js.map +1 -0
- package/components/RichTextEditor/tools/header/index.d.ts +33 -34
- package/components/RichTextEditor/tools/header/index.js +5 -6
- package/components/RichTextEditor/tools/header/index.js.map +1 -0
- package/components/RichTextEditor/tools/image/index.d.ts +38 -13
- package/components/RichTextEditor/tools/image/index.js +4 -2
- package/components/RichTextEditor/tools/image/index.js.map +1 -0
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -0
- package/components/RichTextEditor/tools/image/tunes.d.ts +12 -15
- package/components/RichTextEditor/tools/image/tunes.js +9 -4
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -0
- package/components/RichTextEditor/tools/image/types.d.ts +29 -0
- package/components/RichTextEditor/tools/image/types.js +1 -0
- package/components/RichTextEditor/tools/image/types.js.map +1 -0
- package/components/RichTextEditor/tools/image/ui.d.ts +36 -27
- package/components/RichTextEditor/tools/image/ui.js +25 -12
- package/components/RichTextEditor/tools/image/ui.js.map +1 -0
- package/components/RichTextEditor/tools/paragraph/index.d.ts +32 -36
- package/components/RichTextEditor/tools/paragraph/index.js +17 -25
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -0
- package/components/RichTextEditor/tools/textColor/index.d.ts +30 -22
- package/components/RichTextEditor/tools/textColor/index.js +46 -10
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -0
- package/components/RichTextEditor/tools/utils.js.map +1 -0
- package/components/Routes.d.ts +2 -2
- package/components/Routes.js.map +1 -0
- package/components/SearchUI.d.ts +4 -4
- package/components/SearchUI.js.map +1 -0
- package/components/SimpleForm/SimpleForm.d.ts +10 -11
- package/components/SimpleForm/SimpleForm.js.map +1 -0
- package/components/SimpleForm/index.js.map +1 -0
- package/components/SimpleUI/InputField.d.ts +4 -3
- package/components/SimpleUI/InputField.js +22 -20
- package/components/SimpleUI/InputField.js.map +1 -0
- package/components/SingleImageUpload.d.ts +3 -9
- package/components/SingleImageUpload.js +9 -11
- package/components/SingleImageUpload.js.map +1 -0
- package/components/SplitView/SplitView.d.ts +5 -5
- package/components/SplitView/SplitView.js.map +1 -0
- package/components/SplitView/index.js.map +1 -0
- package/components/index.js.map +1 -0
- package/hooks/useConfirmationDialog.d.ts +6 -5
- package/hooks/useConfirmationDialog.js +1 -2
- package/hooks/useConfirmationDialog.js.map +1 -0
- package/hooks/useDialog.d.ts +8 -3
- package/hooks/useDialog.js +1 -1
- package/hooks/useDialog.js.map +1 -0
- package/hooks/useSnackbar.d.ts +6 -3
- package/hooks/useSnackbar.js.map +1 -0
- package/index.js.map +1 -0
- package/package.json +24 -20
- package/plugins/FileManagerFileTypePlugin.d.ts +3 -3
- package/plugins/FileManagerFileTypePlugin.js +4 -0
- package/plugins/FileManagerFileTypePlugin.js.map +1 -0
- package/plugins/MenuPlugin.d.ts +6 -6
- package/plugins/MenuPlugin.js +4 -0
- package/plugins/MenuPlugin.js.map +1 -0
- package/plugins/PermissionRendererPlugin.d.ts +4 -4
- package/plugins/PermissionRendererPlugin.js +4 -0
- package/plugins/PermissionRendererPlugin.js.map +1 -0
- package/plugins/fileManager/fileDefault.js.map +1 -0
- package/plugins/fileManager/fileImage/DeleteAction.d.ts +6 -2
- package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -0
- package/plugins/fileManager/fileImage/EditAction.d.ts +7 -6
- package/plugins/fileManager/fileImage/EditAction.js +24 -11
- package/plugins/fileManager/fileImage/EditAction.js.map +1 -0
- package/plugins/fileManager/fileImage/index.js.map +1 -0
- package/plugins/fileManager/index.js.map +1 -0
- package/plugins/globalSearch/SearchBar.d.ts +14 -5
- package/plugins/globalSearch/SearchBar.js +9 -0
- package/plugins/globalSearch/SearchBar.js.map +1 -0
- package/plugins/globalSearch/SearchBarDropdown.d.ts +19 -1
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -0
- package/plugins/globalSearch/index.d.ts +2 -1
- package/plugins/globalSearch/index.js.map +1 -0
- package/plugins/globalSearch/styled.d.ts +3 -3
- package/plugins/globalSearch/styled.js.map +1 -0
- package/plugins/index.d.ts +2 -1
- package/plugins/index.js.map +1 -0
- package/plugins/uiLayoutRenderer/index.js.map +1 -0
- package/types.d.ts +10 -8
- package/types.js.map +1 -0
- package/ui/UIElement.d.ts +1 -1
- package/ui/UIElement.js.map +1 -0
- package/ui/UILayout.js.map +1 -0
- package/ui/UIRenderer.js.map +1 -0
- package/ui/UIView.d.ts +1 -1
- package/ui/UIView.js.map +1 -0
- package/ui/elements/AccordionElement.d.ts +5 -5
- package/ui/elements/AccordionElement.js +4 -0
- package/ui/elements/AccordionElement.js.map +1 -0
- package/ui/elements/ButtonElement.d.ts +3 -3
- package/ui/elements/ButtonElement.js +7 -0
- package/ui/elements/ButtonElement.js.map +1 -0
- package/ui/elements/ButtonGroupElement.d.ts +2 -2
- package/ui/elements/ButtonGroupElement.js.map +1 -0
- package/ui/elements/GenericElement.js.map +1 -0
- package/ui/elements/LabelElement.js.map +1 -0
- package/ui/elements/NavigationMenuElement.d.ts +2 -1
- package/ui/elements/NavigationMenuElement.js +3 -2
- package/ui/elements/NavigationMenuElement.js.map +1 -0
- package/ui/elements/PanelElement.js.map +1 -0
- package/ui/elements/PlaceholderElement.d.ts +2 -1
- package/ui/elements/PlaceholderElement.js.map +1 -0
- package/ui/elements/SmallButtonElement.d.ts +1 -1
- package/ui/elements/SmallButtonElement.js.map +1 -0
- package/ui/elements/TypographyElement.d.ts +1 -1
- package/ui/elements/TypographyElement.js.map +1 -0
- package/ui/elements/ViewElement.js.map +1 -0
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +2 -2
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +10 -10
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -0
- package/ui/elements/form/DynamicFieldsetElement.d.ts +19 -18
- package/ui/elements/form/DynamicFieldsetElement.js +13 -0
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -0
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -0
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -0
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -0
- package/ui/elements/form/FileManagerElement/styled.d.ts +17 -13
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -0
- package/ui/elements/form/FileManagerElement.d.ts +6 -6
- package/ui/elements/form/FileManagerElement.js.map +1 -0
- package/ui/elements/form/FormElement.d.ts +5 -5
- package/ui/elements/form/FormElement.js.map +1 -0
- package/ui/elements/form/FormFieldElement.d.ts +9 -8
- package/ui/elements/form/FormFieldElement.js +15 -7
- package/ui/elements/form/FormFieldElement.js.map +1 -0
- package/ui/elements/form/HiddenElement.js.map +1 -0
- package/ui/elements/form/InputElement.d.ts +1 -0
- package/ui/elements/form/InputElement.js.map +1 -0
- package/ui/elements/form/PasswordElement.js.map +1 -0
- package/ui/elements/form/SelectElement.d.ts +1 -1
- package/ui/elements/form/SelectElement.js +1 -1
- package/ui/elements/form/SelectElement.js.map +1 -0
- package/ui/elements/form/TextareaElement.js.map +1 -0
- package/ui/views/AdminView/ContentElement.js.map +1 -0
- package/ui/views/AdminView/HeaderElement.js +14 -2
- package/ui/views/AdminView/HeaderElement.js.map +1 -0
- package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +2 -2
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -0
- package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +2 -2
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -0
- package/ui/views/AdminView/HeaderSectionRightElement.d.ts +2 -2
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -0
- package/ui/views/AdminView/components/Dialog.js.map +1 -0
- package/ui/views/AdminView/components/Hamburger.d.ts +2 -2
- package/ui/views/AdminView/components/Hamburger.js.map +1 -0
- package/ui/views/AdminView/components/Snackbar.d.ts +2 -2
- package/ui/views/AdminView/components/Snackbar.js.map +1 -0
- package/ui/views/FormView/FormContainerElement.d.ts +2 -2
- package/ui/views/FormView/FormContainerElement.js.map +1 -0
- package/ui/views/FormView/FormContentElement.js.map +1 -0
- package/ui/views/FormView/FormFooterElement.d.ts +3 -3
- package/ui/views/FormView/FormFooterElement.js.map +1 -0
- package/ui/views/FormView/FormHeaderElement.d.ts +2 -2
- package/ui/views/FormView/FormHeaderElement.js.map +1 -0
- package/ui/views/FormView.d.ts +1 -1
- package/ui/views/FormView.js +25 -3
- package/ui/views/FormView.js.map +1 -0
- package/ui/views/OverlayView/ContentElement.d.ts +2 -2
- package/ui/views/OverlayView/ContentElement.js.map +1 -0
- package/ui/views/OverlayView/HeaderElement.d.ts +5 -5
- package/ui/views/OverlayView/HeaderElement.js.map +1 -0
- package/ui/views/OverlayView/HeaderTitleElement.d.ts +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -0
- package/ui/views/OverlayView/useOverlayView.d.ts +4 -5
- package/ui/views/OverlayView/useOverlayView.js +2 -2
- package/ui/views/OverlayView/useOverlayView.js.map +1 -0
- package/ui/views/OverlayView.d.ts +4 -6
- package/ui/views/OverlayView.js.map +1 -0
- package/ui/views/SplitView/SplitViewPanelElement.d.ts +3 -3
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -0
- package/ui/views/SplitView.d.ts +3 -3
- 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(
|
|
28
|
-
var 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:
|
|
37
|
+
skippingVersions: null
|
|
38
38
|
}),
|
|
39
39
|
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
40
|
-
|
|
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 (
|
|
54
|
-
|
|
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 (
|
|
71
|
-
var plugin =
|
|
72
|
+
installers.forEach(function (_ref2) {
|
|
73
|
+
var plugin = _ref2.plugin;
|
|
72
74
|
graph.setNode(plugin.name, plugin);
|
|
73
75
|
});
|
|
74
|
-
installers.forEach(function (
|
|
75
|
-
var pl =
|
|
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:
|
|
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 (
|
|
115
|
-
var 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:
|
|
139
|
-
|
|
140
|
-
|
|
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 =
|
|
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:
|
|
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
|
|
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
|
|
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":";;;;;;;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,UAA7B,EAAyCC,SAAzC,EAAoDC,QAApD,QAAoE,OAApE;AACA,SAASC,KAAT,EAAgBC,GAAhB,QAA2B,UAA3B;AACA,SAASC,IAAT,EAAeC,EAAf,EAAmBC,GAAnB,QAA8B,QAA9B;AACA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,OAAT,QAAwB,iBAAxB;AAEA,SAASC,gBAAT,QAAiC,qBAAjC;AACA,SAASC,MAAM,IAAIC,SAAnB,QAAoC,oBAApC;;AAEA,IAAMC,MAAkD,GAAG,SAArDA,MAAqD;AAAA,MAAGC,QAAH,QAAGA,QAAH;AAAA,MAAgBC,KAAhB;;AAAA,sBACvD,oBAAC,QAAD;AAAU,IAAA,QAAQ,eAAE,oBAAC,gBAAD;AAAkB,MAAA,KAAK,EAAE;AAAzB;AAApB,kBACKjB,KAAK,CAACkB,YAAN,CAAmBF,QAAnB,EAA6BC,KAA7B,CADL,CADuD;AAAA,CAA3D;;AA6CA,OAAO,IAAME,YAAY,GAAG,SAAfA,YAAe,CAACC,MAAD,EAAgC;AACxD,MAAQC,WAAR,GAAwBD,MAAxB,CAAQC,WAAR;;AACA,oBAA0BnB,UAAU,CAAU,UAACoB,IAAD,EAAOC,IAAP;AAAA,2CAAsBD,IAAtB,GAA+BC,IAA/B;AAAA,GAAV,EAAkD;AAClFC,IAAAA,OAAO,EAAE,IADyE;AAElFC,IAAAA,UAAU,EAAE,EAFsE;AAGlFC,IAAAA,cAAc,EAAE,CAAC,CAHiE;AAIlFC,IAAAA,SAAS,EAAE,KAJuE;AAKlFC,IAAAA,gBAAgB,EAAE;AALgE,GAAlD,CAApC;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AAOA,MAAQN,OAAR,GAA6EK,KAA7E,CAAQL,OAAR;AAAA,MAAiBC,UAAjB,GAA6EI,KAA7E,CAAiBJ,UAAjB;AAAA,MAA6BC,cAA7B,GAA6EG,KAA7E,CAA6BH,cAA7B;AAAA,MAA6CC,SAA7C,GAA6EE,KAA7E,CAA6CF,SAA7C;AAAA,MAAwDC,gBAAxD,GAA6EC,KAA7E,CAAwDD,gBAAxD;AAEA,MAAMG,MAAM,GAAGrB,eAAe,EAA9B;;AAEA,MAAMsB,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAwB;AAC1C,QAAMC,SAAS,GAAG5B,GAAG,CAAC4B,SAAJ,CAAcD,KAAd,CAAlB;;AACA,QAAIC,SAAJ,EAAe;AACX;AACH;;AACD,QAAMC,MAAM,GAAG7B,GAAG,CAAC8B,UAAJ,CAAeH,KAAf,CAAf;AACA,QAAMI,GAAG,GAAG,CAAC,6CAAD,CAAZ;AACAF,IAAAA,MAAM,CAACG,OAAP,CAAe,UAACC,KAAD,EAAQC,KAAR,EAAkB;AAC7B,UAAIC,QAAQ,GAAGF,KAAK,CAACG,IAAN,CAAW,OAAX,CAAf;AACAD,MAAAA,QAAQ,aAAMD,KAAK,GAAG,CAAd,eAAoBC,QAApB,CAAR;AACA,UAAME,QAAQ,GAAGJ,KAAK,CAACK,OAAN,GAAgBF,IAAhB,CAAqB,OAArB,CAAjB;AACA,UAAMG,SAAS,GAAGJ,QAAQ,CAACK,MAAT,GAAkB,CAApC;AACAT,MAAAA,GAAG,CAACU,IAAJ,CAASN,QAAQ,CAACO,QAAT,CAAkBH,SAAlB,CAAT;AACAR,MAAAA,GAAG,CAACU,IAAJ,CAASJ,QAAQ,CAACK,QAAT,CAAkBH,SAAlB,CAAT;AACH,KAPD,EAOGV,MAPH;AAQA,UAAM,IAAIc,KAAJ,CAAUZ,GAAG,CAACK,IAAJ,CAAS,IAAT,CAAV,CAAN;AACH,GAhBD;;AAkBA,MAAMQ,WAAW,GAAG,SAAdA,WAAc,CAACzB,UAAD,EAAwC;AACxD,QAAMQ,KAAK,GAAG,IAAI5B,KAAJ,EAAd;AACAoB,IAAAA,UAAU,CAACa,OAAX,CAAmB,iBAAgB;AAAA,UAAba,MAAa,SAAbA,MAAa;AAC/BlB,MAAAA,KAAK,CAACmB,OAAN,CAAcD,MAAM,CAACE,IAArB,EAAqCF,MAArC;AACH,KAFD;AAIA1B,IAAAA,UAAU,CAACa,OAAX,CAAmB,iBAAoB;AAAA,UAATgB,EAAS,SAAjBH,MAAiB;;AACnC,UAAII,KAAK,CAACC,OAAN,CAAcF,EAAE,CAACG,YAAjB,CAAJ,EAAoC;AAChCH,QAAAA,EAAE,CAACG,YAAH,CAAgBnB,OAAhB,CAAwB,UAAAoB,GAAG,EAAI;AAC3BzB,UAAAA,KAAK,CAAC0B,OAAN,CAAcL,EAAE,CAACD,IAAjB,EAAiCK,GAAjC;AACH,SAFD;AAGH;AACJ,KAND;AAQA1B,IAAAA,aAAa,CAACC,KAAD,CAAb;AAEA,WAAOA,KAAP;AACH,GAjBD;;AAmBA,MAAM2B,aAAa,GAAG3D,WAAW,CAC7B,UACIwB,UADJ,EAEIQ,KAFJ,EAK0B;AAAA,QAFtB4B,SAEsB,uEAFG,EAEH;AAAA,QADtBC,SACsB,uEADG,EACH;AACtB,QAAMC,IAAI,GAAG9B,KAAK,CAAC+B,KAAN,GAAc,CAAd,CAAb;;AACA,QAAID,IAAJ,EAAU;AACN,UAAME,SAAS,GAAGxC,UAAU,CAACyC,IAAX,CAAgB,UAAAC,IAAI;AAAA,eAAIA,IAAI,CAAChB,MAAL,CAAYE,IAAZ,KAAqBU,IAAzB;AAAA,OAApB,CAAlB;;AACA,UAAI,CAACE,SAAL,EAAgB;AACZ,cAAM,IAAIhB,KAAJ,sCAAuCc,IAAvC,SAAN;AACH;;AAED9B,MAAAA,KAAK,CAACmC,UAAN,CAAiBL,IAAjB;;AACA,UAAI,CAACE,SAAS,CAACI,SAAf,EAA0B;AACtBR,QAAAA,SAAS,CAACd,IAAV,CAAe;AACXuB,UAAAA,IAAI,EAAE,SADK;AAEXjB,UAAAA,IAAI,YAAKY,SAAS,CAACd,MAAV,CAAiBE,IAAtB,aAFO;AAGXkB,UAAAA,KAAK,EAAEN,SAAS,CAACd,MAAV,CAAiBoB,KAHb;AAIXC,UAAAA,MAAM,EAAEP,SAAS,CAACd,MAAV,CAAiBqB,MAJd;AAKXC,UAAAA,MAAM,EAAER,SAAS,CAACd,MAAV,CAAiBsB,MALd;AAMXJ,UAAAA,SAAS,EAAE,IANA;AAOXlB,UAAAA,MAAM,EAAEc,SAAS,CAACd;AAPP,SAAf;AASH,OAVD,MAUO;AACH,YAAMuB,UAAU,GAAG5D,SAAS,CAAC6D,MAAV,CACf,gBADe,EAEfC,OAAO,CAACC,GAAR,CAAYC,wBAFG,CAAnB;AAKA,YAAMC,QAAQ,GAAG,CAACd,SAAS,CAACd,MAAV,CAAiB4B,QAAjB,IAA6B,EAA9B,EAAkCC,MAAlC,CAAyC,iBAAiB;AAAA,cAAdC,OAAc,SAAdA,OAAc;AACvE;AACA,iBAAOxE,GAAG,CAACwE,OAAD,EAAUP,UAAV,CAAH,IAA4BlE,EAAE,CAACyE,OAAD,EAAUhB,SAAS,CAACI,SAAV,IAAuB,EAAjC,CAArC;AACH,SAHgB,CAAjB;;AAKA,YAAIU,QAAQ,CAACjC,MAAT,GAAkB,CAAtB,EAAyB;AACrB,cAAMoC,iBAAiB,GAAG3E,IAAI,CAACwE,QAAQ,CAACI,GAAT,CAAa,UAAAC,CAAC;AAAA,mBAAIA,CAAC,CAACH,OAAN;AAAA,WAAd,CAAD,CAA9B;AACA,cAAMI,aAAa,GAAGH,iBAAiB,CAACA,iBAAiB,CAACpC,MAAlB,GAA2B,CAA5B,CAAvC;AACAhB,UAAAA,QAAQ,CAAC;AACLF,YAAAA,gBAAgB,EAAE;AACd0D,cAAAA,OAAO,EAAErB,SAAS,CAACI,SADL;AAEdkB,cAAAA,MAAM,EAAEF,aAFM;AAGdH,cAAAA,iBAAiB,EAAjBA;AAHc;AADb,WAAD,CAAR;AAOH,SAVD,MAUO,IAAIH,QAAQ,CAACjC,MAAT,KAAoB,CAAxB,EAA2B;AAC9BgB,UAAAA,SAAS,CAACf,IAAV,CAAe;AACXuB,YAAAA,IAAI,EAAE,SADK;AAEXjB,YAAAA,IAAI,YAAKY,SAAS,CAACd,MAAV,CAAiBE,IAAtB,aAFO;AAGXkB,YAAAA,KAAK,EAAEN,SAAS,CAACd,MAAV,CAAiBoB,KAHb;AAIXE,YAAAA,MAAM,EAAE,IAJG;AAKXJ,YAAAA,SAAS,EAAE,IALA;AAMXlB,YAAAA,MAAM,EAAEc,SAAS,CAACd,MANP;AAOXqB,YAAAA,MAPW,yBAOa;AAAA,kBAAfgB,WAAe,SAAfA,WAAe;AACpB,kBAAMC,SAAS,GAAGV,QAAQ,CAAC,CAAD,CAAR,CAAYW,YAAZ,EAAlB;AACA,kCACI,oBAAC,MAAD,qBACI,oBAAC,SAAD;AAAW,gBAAA,WAAW,EAAEF;AAAxB,gBADJ,CADJ;AAKH;AAdU,WAAf;AAgBH;AACJ;;AACD,aAAO5B,aAAa,CAACnC,UAAD,EAAaQ,KAAb,EAAoB4B,SAApB,EAA+BC,SAA/B,CAApB;AACH;;AACDD,IAAAA,SAAS,CAACtD,IAAV,CAAe,UAACoF,CAAD,EAAIC,CAAJ,EAAU;AACrB,UAAID,CAAC,CAAClB,MAAF,IAAY,CAACmB,CAAC,CAACnB,MAAnB,EAA2B;AACvB,eAAO,CAAP;AACH,OAFD,MAEO,IAAI,CAACkB,CAAC,CAAClB,MAAH,IAAamB,CAAC,CAACnB,MAAnB,EAA2B;AAC9B,eAAO,CAAC,CAAR;AACH;;AACD,aAAO,CAAP;AACH,KAPD;AAQA,WAAO;AAAEZ,MAAAA,SAAS,EAATA,SAAF;AAAaC,MAAAA,SAAS,EAATA;AAAb,KAAP;AACH,GA5E4B,EA6E7B,EA7E6B,CAAjC;;AAgFA,MAAM+B,MAAM,GAAG,SAATA,MAAS,GAAM;AACjB/D,IAAAA,QAAQ,CAAC;AAAEH,MAAAA,SAAS,EAAE;AAAb,KAAD,CAAR;AACH,GAFD;AAIA;AACJ;AACA;;;AACI,MAAMmE,iBAAiB,GAAG,SAApBA,iBAAoB,GAAW;AACjC,QAAMC,aAAa,GAAGtE,UAAU,CAACC,cAAD,CAAhC;AAEAD,IAAAA,UAAU,CAACC,cAAD,CAAV,CAA2B2C,SAA3B,GAAuCvD,SAAS,CAAC6D,MAAV,CACnC,gBADmC,EAEnCC,OAAO,CAACC,GAAR,CAAYC,wBAFuB,CAAvC;AAIAhD,IAAAA,QAAQ,CAAC;AAAEL,MAAAA,UAAU,EAAVA;AAAF,KAAD,CAAR;;AAEA,QAAIA,UAAU,CAACqB,MAAX,GAAoBpB,cAAc,GAAG,CAAzC,EAA4C;AACxCI,MAAAA,QAAQ,CAAC;AAAEJ,QAAAA,cAAc,EAAEsE;AAAlB,OAAD,CAAR;AACA;AACH;;AAED,QAAMC,SAAS,GAAGvE,cAAc,GAAG,CAAnC;AAEA,QAAIC,SAAS,GAAG,KAAhB;AACA,QAAMuE,aAAa,GAAGzE,UAAU,CAACwE,SAAD,CAAhC;AAEA,QAAME,UAAU,GAAGJ,aAAa,IAAIA,aAAa,CAACtB,MAAlD;AACA,QAAM2B,UAAU,GAAGF,aAAa,IAAIA,aAAa,CAACzB,MAAlD;;AACA,QAAI,CAAC0B,UAAD,IAAeC,UAAnB,EAA+B;AAC3BzE,MAAAA,SAAS,GAAG,IAAZ;AACH;;AACDG,IAAAA,QAAQ,CAAC;AAAEJ,MAAAA,cAAc,EAAEuE,SAAlB;AAA6BtE,MAAAA,SAAS,EAATA;AAA7B,KAAD,CAAR;AACH,GAzBD;;AA2BAxB,EAAAA,SAAS,CAAC,YAAM;AACZ,6DAAC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,mBACOkB,WADP;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAKSgF,cAAAA,aALT,GAK0C,EAL1C;AAAA;AAAA,qBAMSC,OAAO,CAACC,GAAR,CACF5F,OAAO,CAAC6F,MAAR,CAAwC,oBAAxC,EAA8DrB,GAA9D;AAAA,qFAAkE,iBAAM7B,EAAN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCACtCA,EAAE,CAACmD,mBAAH,CAAuB;AAAE1E,4BAAAA,MAAM,EAANA;AAAF,2BAAvB,CADsC;;AAAA;AACxDsC,0BAAAA,SADwD;AAE9DgC,0BAAAA,aAAa,CAACtD,IAAd,CAAmB;AAAEI,4BAAAA,MAAM,EAAEG,EAAV;AAAce,4BAAAA,SAAS,EAATA;AAAd,2BAAnB;;AAF8D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAlE;;AAAA;AAAA;AAAA;AAAA,kBADE,CANT;;AAAA;AAaSpC,cAAAA,KAbT,GAaiBiB,WAAW,CAACmD,aAAD,CAb5B;AAAA,+BAcoCzC,aAAa,CAACyC,aAAD,EAAgBpE,KAAhB,CAdjD,EAcW4B,SAdX,kBAcWA,SAdX,EAcsBC,SAdtB,kBAcsBA,SAdtB;AAeSrC,cAAAA,UAfT,gCAe0BqC,SAf1B,sBAewCD,SAfxC;AAgBG/B,cAAAA,QAAQ,CAAC;AACLL,gBAAAA,UAAU,EAAVA,UADK;AAELC,gBAAAA,cAAc,EAAE,CAFX;AAGLF,gBAAAA,OAAO,EAAE,KAHJ;AAILG,gBAAAA,SAAS,EAAEmC,SAAS,CAAChB,MAAV,GAAmB,CAAnB,IAAyBe,SAAS,CAACf,MAAV,GAAmB,CAAnB,IAAwBe,SAAS,CAAC,CAAD,CAAT,CAAaY;AAJpE,eAAD,CAAR;;AAhBH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAD;AAuBH,GAxBQ,EAwBN,EAxBM,CAAT;AA0BA,SAAO;AACHjD,IAAAA,OAAO,EAAPA,OADG;AAEHC,IAAAA,UAAU,EAAVA,UAFG;AAGHwC,IAAAA,SAAS,EAAExC,UAAU,CAACC,cAAD,CAHlB;AAIHoE,IAAAA,iBAAiB,EAAjBA,iBAJG;AAKHnE,IAAAA,SAAS,EAATA,SALG;AAMHkE,IAAAA,MAAM,EAANA,MANG;AAOHjE,IAAAA,gBAAgB,EAAhBA;AAPG,GAAP;AASH,CAvMM","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
|
|
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:
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
accept:
|
|
4
|
-
}
|
|
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
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
uploading:
|
|
4
|
-
}
|
|
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
|
-
|
|
2
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3
|
-
file:
|
|
4
|
-
[key: string]: any;
|
|
5
|
-
};
|
|
3
|
+
export interface FileProps {
|
|
4
|
+
file: FileItem;
|
|
6
5
|
selected: boolean;
|
|
7
|
-
uploadFile:
|
|
6
|
+
uploadFile: (item: FileItem[] | FileItem) => Promise<number | null>;
|
|
8
7
|
onSelect: (event?: React.MouseEvent) => void;
|
|
9
|
-
onClick
|
|
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<
|
|
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
|
-
|
|
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
|
-
}
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
item.
|
|
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":";;;;AAAA,OAAOA,KAAP,IAAgBC,OAAhB,QAA+B,OAA/B;AAEA,SAASC,eAAT,QAAgC,qBAAhC;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,SAASC,IAAT,QAAqB,cAArB;AACA,SAASC,UAAT,QAA2B,oBAA3B;AACA,SAASC,WAAT;AACA,SACIC,WADJ,EAEIC,UAFJ;AAOA,SAASC,cAAT;;AAOA,IAAMC,IAAyB,GAAG,SAA5BA,IAA4B,OAAuB;AAAA,MAApBC,IAAoB,QAApBA,IAAoB;AAAA,MAAdC,OAAc,QAAdA,OAAc;AACrD,MAAMC,IAAI,GAAGF,IAAI,CAACE,IAAL,IAAa,EAA1B;;AACA,qBAAyBP,WAAW,EAApC;AAAA,MAAQQ,YAAR,gBAAQA,YAAR;;AACA,MAAMC,MAAM,GAAGb,eAAe,EAA9B;;AAEA,wBAAwBO,cAAc,EAAtC;AAAA,MAAQO,WAAR,mBAAQA,WAAR;;AAEA,MAAMC,WAAW,GAAGhB,OAAO,CAAC,YAAM;AAC9B,wBACI,oBAAC,IAAD;AACI,MAAA,IAAI,EAAE;AACFY,QAAAA,IAAI,EAAJA;AADE,OADV;AAII,MAAA,QAAQ;AAAA,6EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAASA,kBAAAA,IAAT,SAASA,IAAT;;AAAA,wBAEFA,IAAI,KAAKF,IAAI,CAACE,IAFZ;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA,yBAMAE,MAAM,CAACG,MAAP,CAAuE;AACzEC,oBAAAA,QAAQ,EAAEZ,WAD+D;AAEzEa,oBAAAA,SAAS,EAAE;AACPC,sBAAAA,EAAE,EAAEV,IAAI,CAACU,EADF;AAEPC,sBAAAA,IAAI,EAAE;AAAET,wBAAAA,IAAI,EAAJA;AAAF;AAFC,qBAF8D;AAMzEU,oBAAAA,MAAM,EAAE,gBAACC,KAAD,EAAQC,OAAR,EAAoB;AACxB,0BAAMC,WAAqB,GAAG,KAC1BD,OAD0B,EAE1B,kCAF0B,CAA9B;;AAIA,0BAAMH,IAAI,GAAG,WACTE,KAAK,CAACG,SAAN,CAAwC;AACpCC,wBAAAA,KAAK,EAAEpB,UAD6B;AAEpCY,wBAAAA,SAAS,EAAEJ;AAFyB,uBAAxC,CADS,CAAb;;AAOA,0BAAIM,IAAJ,EAAU;AACNA,wBAAAA,IAAI,CAACO,WAAL,CAAiBC,SAAjB,CAA2BR,IAA3B,CAAgCS,OAAhC,CAAwC,UAAAC,IAAI,EAAI;AAC5C,8BAAIA,IAAI,CAACC,GAAL,KAAaP,WAAW,CAACO,GAA7B,EAAkC;AAC9BD,4BAAAA,IAAI,CAACnB,IAAL,GAAYa,WAAW,CAACb,IAAxB;AACH;AACJ,yBAJD;AAKH;;AAEDW,sBAAAA,KAAK,CAACU,UAAN,CAAiB;AACbN,wBAAAA,KAAK,EAAEpB,UADM;AAEbY,wBAAAA,SAAS,EAAEJ,WAFE;AAGbM,wBAAAA,IAAI,EAAEA;AAHO,uBAAjB;AAKH;AA/BwE,mBAAvE,CANA;;AAAA;AAwCNR,kBAAAA,YAAY,CAAC,4BAAD,CAAZ;;AAxCM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAF;;AAAA;AAAA;AAAA;AAAA;AAJZ,OA+CK;AAAA,UAAGqB,IAAH,SAAGA,IAAH;AAAA,UAASC,MAAT,SAASA,MAAT;AAAA,0BACG,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE,MAAZ;AAAoB,QAAA,UAAU,EAAE/B,UAAU,CAACgC,MAAX,CAAkB,UAAlB;AAAhC,sBACI,oBAAC,KAAD;AACI,QAAA,QAAQ,EAAE,CAACzB,OAAO,CAACD,IAAD,CADtB;AAEI,QAAA,SAAS,MAFb;AAGI,QAAA,WAAW,EAAE,YAHjB;AAII,QAAA,SAAS,EAAE,IAJf;AAKI,QAAA,MAAM,EAAEyB,MALZ;AAMI,QAAA,WAAW,EAAE;AANjB,QADJ,CADH;AAAA,KA/CL,CADJ;AA8DH,GA/D0B,EA+DxB,CAACvB,IAAD,EAAOF,IAAI,CAACE,IAAZ,EAAkBD,OAAlB,CA/DwB,CAA3B;AAiEA,sBAAO,wCAAaK,WAAb,CAAP;AACH,CAzED;;AA2EA,eAAeP,IAAf","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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
}));
|
|
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:
|
|
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;
|