@strapi/upload 0.0.0-experimental.abc → 0.0.0-experimental.af7e4e2471a04cc7f17b8ed3474530810efc02bc
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/dist/_chunks/{index-Sh4Ok2WQ.mjs → App-C5068OP3.mjs} +119 -110
- package/dist/_chunks/App-C5068OP3.mjs.map +1 -0
- package/dist/_chunks/{index-CSluxLTa.js → App-F61LQeeA.js} +119 -110
- package/dist/_chunks/App-F61LQeeA.js.map +1 -0
- package/dist/_chunks/{index-BGp6u8jt.js → ConfigureTheView-DBHYY3lq.js} +48 -24
- package/dist/_chunks/ConfigureTheView-DBHYY3lq.js.map +1 -0
- package/dist/_chunks/{index-DesgImRq.mjs → ConfigureTheView-DgN6B288.mjs} +30 -24
- package/dist/_chunks/ConfigureTheView-DgN6B288.mjs.map +1 -0
- package/dist/_chunks/{index-CzxDuy-_.js → SettingsPage-B0w9f_N8.js} +61 -41
- package/dist/_chunks/SettingsPage-B0w9f_N8.js.map +1 -0
- package/dist/_chunks/{index-CFUyRUTZ.mjs → SettingsPage-BihYAmLw.mjs} +45 -43
- package/dist/_chunks/SettingsPage-BihYAmLw.mjs.map +1 -0
- package/dist/_chunks/{graphql-DPMDE47y.mjs → graphql-68BJxih-.mjs} +2 -2
- package/dist/_chunks/{graphql-DPMDE47y.mjs.map → graphql-68BJxih-.mjs.map} +1 -1
- package/dist/_chunks/{graphql-CtmISqaK.js → graphql-DkkRswQX.js} +2 -2
- package/dist/_chunks/{graphql-CtmISqaK.js.map → graphql-DkkRswQX.js.map} +1 -1
- package/dist/_chunks/{index-C5KW21l3.js → index-BDq2waDf.js} +10 -5
- package/dist/_chunks/index-BDq2waDf.js.map +1 -0
- package/dist/_chunks/{index-CWuibX66.mjs → index-BGwOh3pn.mjs} +10 -5
- package/dist/_chunks/index-BGwOh3pn.mjs.map +1 -0
- package/dist/_chunks/{index-CWKAMMzh.mjs → index-DfCj4ffr.mjs} +1407 -1953
- package/dist/_chunks/index-DfCj4ffr.mjs.map +1 -0
- package/dist/_chunks/{index-Bx7HNHAW.js → index-TKhJgBUx.js} +1369 -1916
- package/dist/_chunks/index-TKhJgBUx.js.map +1 -0
- package/dist/admin/index.js +5 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +5 -2
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/AssetCard/AssetCard.d.ts +18 -0
- package/dist/admin/src/components/AssetCard/AssetCardBase.d.ts +14 -0
- package/dist/admin/src/components/AssetCard/AudioAssetCard.d.ts +7 -0
- package/dist/admin/src/components/AssetCard/AudioPreview.d.ts +6 -0
- package/dist/admin/src/components/AssetCard/DocAssetCard.d.ts +7 -0
- package/dist/admin/src/components/AssetCard/ImageAssetCard.d.ts +12 -0
- package/dist/admin/src/components/AssetCard/UploadingAssetCard.d.ts +17 -0
- package/dist/admin/src/components/AssetCard/VideoAssetCard.d.ts +8 -0
- package/dist/admin/src/components/AssetCard/VideoPreview.d.ts +9 -0
- package/dist/admin/src/components/AssetDialog/AssetDialog.d.ts +39 -0
- package/dist/admin/src/components/AssetDialog/BrowseStep/BrowseStep.d.ts +63 -0
- package/dist/admin/src/components/AssetDialog/BrowseStep/Filters.d.ts +23 -0
- package/dist/admin/src/components/AssetDialog/BrowseStep/PageSize.d.ts +6 -0
- package/dist/admin/src/components/AssetDialog/BrowseStep/PaginationFooter/Pagination.d.ts +13 -0
- package/dist/admin/src/components/AssetDialog/BrowseStep/PaginationFooter/PaginationFooter.d.ts +9 -0
- package/dist/admin/src/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.d.ts +7 -0
- package/dist/admin/src/components/AssetDialog/BrowseStep/utils/isSelectable.d.ts +1 -0
- package/dist/admin/src/components/AssetDialog/DialogFooter.d.ts +6 -0
- package/dist/admin/src/components/AssetDialog/SelectedStep/SelectedStep.d.ts +8 -0
- package/dist/admin/src/components/AssetGridList/AssetGridList.d.ts +13 -0
- package/dist/admin/src/components/AssetGridList/Draggable.d.ts +9 -0
- package/dist/admin/src/components/Breadcrumbs/Breadcrumbs.d.ts +14 -0
- package/dist/admin/src/components/Breadcrumbs/CrumbSimpleMenuAsync.d.ts +7 -0
- package/dist/admin/src/components/BulkMoveDialog/BulkMoveDialog.d.ts +15 -0
- package/dist/admin/src/components/ContextInfo/ContextInfo.d.ts +8 -0
- package/dist/admin/src/components/CopyLinkButton/CopyLinkButton.d.ts +3 -0
- package/dist/admin/src/components/EditAssetDialog/DialogHeader.d.ts +1 -0
- package/dist/admin/src/components/EditAssetDialog/EditAssetContent.d.ts +28 -0
- package/dist/admin/src/components/EditAssetDialog/PreviewBox/AssetPreview.d.ts +9 -0
- package/dist/admin/src/components/EditAssetDialog/PreviewBox/CroppingActions.d.ts +7 -0
- package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewBox.d.ts +23 -0
- package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +17 -0
- package/dist/admin/src/components/EditAssetDialog/RemoveAssetDialog.d.ts +8 -0
- package/dist/admin/src/components/EditAssetDialog/ReplaceMediaButton.d.ts +8 -0
- package/dist/admin/src/components/EditFolderDialog/EditFolderDialog.d.ts +12 -0
- package/dist/admin/src/components/EditFolderDialog/ModalHeader/ModalHeader.d.ts +5 -0
- package/dist/admin/src/components/EditFolderDialog/RemoveFolderDialog.d.ts +7 -0
- package/dist/admin/src/components/EmptyAssets/EmptyAssetGrid.d.ts +6 -0
- package/dist/admin/src/components/EmptyAssets/EmptyAssets.d.ts +10 -0
- package/dist/admin/src/components/FilterList/FilterList.d.ts +33 -0
- package/dist/admin/src/components/FilterList/FilterTag.d.ts +23 -0
- package/dist/admin/src/components/FilterPopover/FilterPopover.d.ts +31 -0
- package/dist/admin/src/components/FilterPopover/FilterValueInput.d.ts +12 -0
- package/dist/admin/src/components/FilterPopover/utils/getFilterList.d.ts +21 -0
- package/dist/admin/src/components/FolderCard/FolderCard/FolderCard.d.ts +13 -0
- package/dist/admin/src/components/FolderCard/FolderCardBody/FolderCardBody.d.ts +2 -0
- package/dist/admin/src/components/FolderCard/FolderCardBodyAction/FolderCardBodyAction.d.ts +7 -0
- package/dist/admin/src/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.d.ts +2 -0
- package/dist/admin/src/components/FolderCard/contexts/FolderCard.d.ts +7 -0
- package/dist/admin/src/components/FolderGridList/FolderGridList.d.ts +6 -0
- package/dist/admin/src/components/MediaLibraryDialog/MediaLibraryDialog.d.ts +8 -0
- package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAsset.d.ts +4 -0
- package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAssetActions.d.ts +9 -0
- package/dist/admin/src/components/MediaLibraryInput/Carousel/CarouselAssets.d.ts +22 -0
- package/dist/admin/src/components/MediaLibraryInput/Carousel/EmptyStateAsset.d.ts +10 -0
- package/dist/admin/src/components/MediaLibraryInput/MediaLibraryInput.d.ts +17 -0
- package/dist/admin/src/components/SelectTree/Option.d.ts +16 -0
- package/dist/admin/src/components/SelectTree/SelectTree.d.ts +22 -0
- package/dist/admin/src/components/SelectTree/utils/flattenTree.d.ts +14 -0
- package/dist/admin/src/components/SelectTree/utils/getOpenValues.d.ts +9 -0
- package/dist/admin/src/components/SelectTree/utils/getValuesToClose.d.ts +6 -0
- package/dist/admin/src/components/SortPicker/SortPicker.d.ts +7 -0
- package/dist/admin/src/components/TableList/CellContent.d.ts +8 -0
- package/dist/admin/src/components/TableList/PreviewCell.d.ts +7 -0
- package/dist/admin/src/components/TableList/TableList.d.ts +31 -0
- package/dist/admin/src/components/TableList/TableRows.d.ts +22 -0
- package/dist/admin/src/components/UploadAssetDialog/AddAssetStep/AddAssetStep.d.ts +13 -0
- package/dist/admin/src/components/UploadAssetDialog/AddAssetStep/FromComputerForm.d.ts +8 -0
- package/dist/admin/src/components/UploadAssetDialog/AddAssetStep/FromUrlForm.d.ts +8 -0
- package/dist/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +22 -0
- package/dist/admin/src/components/UploadAssetDialog/UploadAssetDialog.d.ts +21 -0
- package/dist/admin/src/components/UploadProgress/UploadProgress.d.ts +7 -0
- package/dist/admin/src/constants.d.ts +70 -0
- package/dist/admin/src/hooks/useAssets.d.ts +14 -0
- package/dist/admin/src/hooks/useBulkMove.d.ts +78 -0
- package/dist/admin/src/hooks/useBulkRemove.d.ts +70 -0
- package/dist/admin/src/hooks/useConfig.d.ts +5 -0
- package/dist/admin/src/hooks/useCropImg.d.ts +9 -0
- package/dist/admin/src/hooks/useEditAsset.d.ts +119 -0
- package/dist/admin/src/hooks/useEditFolder.d.ts +71 -0
- package/dist/admin/src/hooks/useFolder.d.ts +7 -0
- package/dist/admin/src/hooks/useFolderStructure.d.ts +18 -0
- package/dist/admin/src/hooks/useFolders.d.ts +11 -0
- package/dist/admin/src/hooks/useMediaLibraryPermissions.d.ts +7 -0
- package/dist/admin/src/hooks/useModalQueryParams.d.ts +20 -0
- package/dist/admin/src/hooks/usePersistentState.d.ts +3 -0
- package/dist/admin/src/hooks/useRemoveAsset.d.ts +66 -0
- package/dist/admin/src/hooks/useSelectionState.d.ts +9 -0
- package/dist/admin/src/hooks/useUpload.d.ts +15 -0
- package/dist/admin/src/hooks/utils/renameKeys.d.ts +6 -0
- package/dist/admin/src/index.d.ts +3 -0
- package/dist/admin/src/pages/App/App.d.ts +1 -0
- package/dist/admin/src/pages/App/ConfigureTheView/ConfigureTheView.d.ts +6 -0
- package/dist/admin/src/pages/App/ConfigureTheView/components/Settings.d.ts +13 -0
- package/dist/admin/src/pages/App/ConfigureTheView/state/actionTypes.d.ts +2 -0
- package/dist/admin/src/pages/App/ConfigureTheView/state/actions.d.ts +12 -0
- package/dist/admin/src/pages/App/ConfigureTheView/state/init.d.ts +8 -0
- package/dist/admin/src/pages/App/ConfigureTheView/state/reducer.d.ts +15 -0
- package/dist/admin/src/pages/App/MediaLibrary/MediaLibrary.d.ts +1 -0
- package/dist/admin/src/pages/App/MediaLibrary/components/BulkActions.d.ts +15 -0
- package/dist/admin/src/pages/App/MediaLibrary/components/BulkDeleteButton.d.ts +7 -0
- package/dist/admin/src/pages/App/MediaLibrary/components/BulkMoveButton.d.ts +15 -0
- package/dist/admin/src/pages/App/MediaLibrary/components/EmptyOrNoPermissions.d.ts +7 -0
- package/dist/admin/src/pages/App/MediaLibrary/components/Filters.d.ts +1 -0
- package/dist/admin/src/pages/App/MediaLibrary/components/Header.d.ts +22 -0
- package/dist/admin/src/pages/App/components/BulkActions.d.ts +15 -0
- package/dist/admin/src/pages/App/components/BulkDeleteButton.d.ts +10 -0
- package/dist/admin/src/pages/App/components/BulkMoveButton.d.ts +15 -0
- package/dist/admin/src/pages/App/components/EmptyOrNoPermissions.d.ts +8 -0
- package/dist/admin/src/pages/App/components/Filters.d.ts +1 -0
- package/dist/admin/src/pages/App/components/Header.d.ts +13 -0
- package/dist/admin/src/pages/SettingsPage/SettingsPage.d.ts +2 -0
- package/dist/admin/src/pages/SettingsPage/init.d.ts +2 -0
- package/dist/admin/src/pages/SettingsPage/reducer.d.ts +27 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/utils/appendSearchParamsToUrl.d.ts +6 -0
- package/dist/admin/src/utils/containsAssetFilter.d.ts +2 -0
- package/dist/admin/src/utils/createAssetUrl.d.ts +2 -0
- package/dist/admin/src/utils/displayedFilters.d.ts +22 -0
- package/dist/admin/src/utils/downloadFile.d.ts +1 -0
- package/dist/admin/src/utils/findRecursiveFolderByValue.d.ts +11 -0
- package/dist/admin/src/utils/formatBytes.d.ts +1 -0
- package/dist/admin/src/utils/formatDuration.d.ts +1 -0
- package/dist/admin/src/utils/getAPIInnerErrors.d.ts +14 -0
- package/dist/admin/src/utils/getAllowedFiles.d.ts +14 -0
- package/dist/admin/src/utils/getBreadcrumbDataCM.d.ts +19 -0
- package/dist/admin/src/utils/getBreadcrumbDataML.d.ts +18 -0
- package/dist/admin/src/utils/getFileExtension.d.ts +1 -0
- package/dist/admin/src/utils/getFolderParents.d.ts +11 -0
- package/dist/admin/src/utils/getFolderURL.d.ts +5 -0
- package/dist/admin/src/utils/getTrad.d.ts +1 -0
- package/dist/admin/src/utils/index.d.ts +25 -0
- package/dist/admin/src/utils/moveElement.d.ts +1 -0
- package/dist/admin/src/utils/normalizeAPIError.d.ts +22 -0
- package/dist/admin/src/utils/prefixFileUrlWithBackendUrl.d.ts +1 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +5 -0
- package/dist/admin/src/utils/rawFileToAsset.d.ts +14 -0
- package/dist/admin/src/utils/toSingularTypes.d.ts +1 -0
- package/dist/admin/src/utils/typeFromMime.d.ts +2 -0
- package/dist/admin/src/utils/urlYupSchema.d.ts +8 -0
- package/dist/admin/src/utils/urlsToAssets.d.ts +10 -0
- package/dist/server/index.js +1 -1
- package/dist/server/index.mjs +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/services/weekly-metrics.d.ts.map +1 -1
- package/dist/shared/contracts/configuration.d.ts +44 -0
- package/dist/shared/contracts/files.d.ts +211 -0
- package/dist/shared/contracts/folders.d.ts +161 -0
- package/dist/shared/contracts/settings.d.ts +42 -0
- package/package.json +22 -10
- package/dist/_chunks/index-BGp6u8jt.js.map +0 -1
- package/dist/_chunks/index-Bx7HNHAW.js.map +0 -1
- package/dist/_chunks/index-C5KW21l3.js.map +0 -1
- package/dist/_chunks/index-CFUyRUTZ.mjs.map +0 -1
- package/dist/_chunks/index-CSluxLTa.js.map +0 -1
- package/dist/_chunks/index-CWKAMMzh.mjs.map +0 -1
- package/dist/_chunks/index-CWuibX66.mjs.map +0 -1
- package/dist/_chunks/index-CzxDuy-_.js.map +0 -1
- package/dist/_chunks/index-DesgImRq.mjs.map +0 -1
- package/dist/_chunks/index-Sh4Ok2WQ.mjs.map +0 -1
- package/strapi-server.js +0 -3
|
@@ -1,38 +1,36 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import { useState, useRef, lazy, useEffect, Suspense } from "react";
|
|
4
3
|
import { ConfirmDialog, useNotification, useFetchClient, useTracking, useQueryParams, Layouts, Page, SearchInput, Pagination } from "@strapi/admin/strapi-admin";
|
|
5
4
|
import { useIntl } from "react-intl";
|
|
6
5
|
import { useLocation, NavLink, useNavigate, Link as Link$1, Routes, Route } from "react-router-dom";
|
|
7
|
-
import { g as getTrad, a as getFolderURL, u as useFolderCard,
|
|
6
|
+
import { g as getTrad, a as getFolderURL, u as useFolderCard, b as useBulkRemove, p as pluginId, c as useFolderStructure, S as SelectTree, n as normalizeAPIError, E as EmptyAssets, F as FilterPopover, d as displayedFilters, e as FilterList, B as Breadcrumbs, f as useMediaLibraryPermissions, h as usePersistentState, v as viewOptions, l as localStorageKeys, i as useAssets, j as useFolders, k as containsAssetFilter, m as useFolder, o as useSelectionState, q as SortPicker, T as TableList, r as FolderGridList, s as FolderCard, t as FolderCardBody, w as FolderCardBodyAction, A as AssetGridList, U as UploadAssetDialog, x as EditFolderDialog, y as EditAssetDialog, z as useConfig } from "./index-DfCj4ffr.mjs";
|
|
8
7
|
import "byte-size";
|
|
9
8
|
import "date-fns";
|
|
10
9
|
import { stringify } from "qs";
|
|
11
10
|
import { Box, Checkbox, Dialog, Button, Modal, Flex, Loader, Grid, Field, Typography, Popover, Link, IconButton, VisuallyHidden, Divider } from "@strapi/design-system";
|
|
12
11
|
import { Trash, Folder, Plus, Filter, ArrowLeft, Cog, List, GridFour, Pencil } from "@strapi/icons";
|
|
13
12
|
import { styled } from "styled-components";
|
|
14
|
-
import PropTypes from "prop-types";
|
|
15
13
|
import { Formik, Form } from "formik";
|
|
16
14
|
import isEmpty from "lodash/isEmpty";
|
|
17
15
|
import { useQueryClient, useMutation } from "react-query";
|
|
18
16
|
import { EmptyPermissions } from "@strapi/icons/symbols";
|
|
19
17
|
const getBreadcrumbDataML = (folder, { pathname, query }) => {
|
|
20
|
-
|
|
18
|
+
const data = [
|
|
21
19
|
{
|
|
22
20
|
id: null,
|
|
23
21
|
label: { id: getTrad("plugin.name"), defaultMessage: "Media Library" },
|
|
24
|
-
href: folder ? getFolderURL(pathname, query) : void 0
|
|
22
|
+
href: folder ? getFolderURL(pathname, query || {}) : void 0
|
|
25
23
|
}
|
|
26
24
|
];
|
|
27
|
-
if (folder?.parent?.parent) {
|
|
25
|
+
if (folder?.parent && typeof folder?.parent !== "number" && folder?.parent?.parent) {
|
|
28
26
|
data.push([]);
|
|
29
27
|
}
|
|
30
|
-
if (folder?.parent) {
|
|
28
|
+
if (folder?.parent && typeof folder.parent !== "number") {
|
|
31
29
|
data.push({
|
|
32
30
|
id: folder.parent.id,
|
|
33
31
|
label: folder.parent.name,
|
|
34
|
-
href: getFolderURL(pathname, query, {
|
|
35
|
-
folder: folder.parent.id,
|
|
32
|
+
href: getFolderURL(pathname, query || {}, {
|
|
33
|
+
folder: folder.parent.id?.toString(),
|
|
36
34
|
folderPath: folder.parent.path
|
|
37
35
|
})
|
|
38
36
|
});
|
|
@@ -61,10 +59,6 @@ const BulkDeleteButton = ({ selected, onSuccess }) => {
|
|
|
61
59
|
/* @__PURE__ */ jsx(ConfirmDialog, { onConfirm: handleConfirmRemove })
|
|
62
60
|
] });
|
|
63
61
|
};
|
|
64
|
-
BulkDeleteButton.propTypes = {
|
|
65
|
-
selected: PropTypes.arrayOf(AssetDefinition, FolderDefinition).isRequired,
|
|
66
|
-
onSuccess: PropTypes.func.isRequired
|
|
67
|
-
};
|
|
68
62
|
const useBulkMove = () => {
|
|
69
63
|
const { formatMessage } = useIntl();
|
|
70
64
|
const { toggleNotification } = useNotification();
|
|
@@ -104,7 +98,7 @@ const useBulkMove = () => {
|
|
|
104
98
|
const move = (destinationFolderId, filesAndFolders) => mutation.mutateAsync({ destinationFolderId, filesAndFolders });
|
|
105
99
|
return { ...mutation, move };
|
|
106
100
|
};
|
|
107
|
-
const BulkMoveDialog = ({ onClose, selected, currentFolder }) => {
|
|
101
|
+
const BulkMoveDialog = ({ onClose, selected = [], currentFolder }) => {
|
|
108
102
|
const { formatMessage } = useIntl();
|
|
109
103
|
const { data: folderStructure, isLoading } = useFolderStructure();
|
|
110
104
|
const { move } = useBulkMove();
|
|
@@ -113,16 +107,24 @@ const BulkMoveDialog = ({ onClose, selected, currentFolder }) => {
|
|
|
113
107
|
}
|
|
114
108
|
const handleSubmit = async (values, { setErrors }) => {
|
|
115
109
|
try {
|
|
116
|
-
|
|
117
|
-
|
|
110
|
+
if (typeof values.destination !== "string") {
|
|
111
|
+
const destinationValue = values.destination.value;
|
|
112
|
+
await move(destinationValue, selected);
|
|
113
|
+
onClose();
|
|
114
|
+
}
|
|
118
115
|
} catch (error) {
|
|
119
116
|
const normalizedError = normalizeAPIError(error);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
117
|
+
if (normalizedError && "errors" in normalizedError) {
|
|
118
|
+
const formikErrors = normalizedError.errors?.reduce(
|
|
119
|
+
(acc, error2) => {
|
|
120
|
+
acc[error2.values?.path?.length || "destination"] = error2.defaultMessage;
|
|
121
|
+
return acc;
|
|
122
|
+
},
|
|
123
|
+
{}
|
|
124
|
+
);
|
|
125
|
+
if (!isEmpty(formikErrors)) {
|
|
126
|
+
setErrors(formikErrors);
|
|
127
|
+
}
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
};
|
|
@@ -155,7 +157,7 @@ const BulkMoveDialog = ({ onClose, selected, currentFolder }) => {
|
|
|
155
157
|
onChange: (value) => {
|
|
156
158
|
setFieldValue("destination", value);
|
|
157
159
|
},
|
|
158
|
-
defaultValue: values.destination,
|
|
160
|
+
defaultValue: typeof values.destination !== "string" ? values.destination : void 0,
|
|
159
161
|
name: "destination",
|
|
160
162
|
menuPortalTarget: document.querySelector("body"),
|
|
161
163
|
inputId: "folder-destination",
|
|
@@ -171,18 +173,13 @@ const BulkMoveDialog = ({ onClose, selected, currentFolder }) => {
|
|
|
171
173
|
] })
|
|
172
174
|
] }) }) });
|
|
173
175
|
};
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
onClose: PropTypes.func.isRequired,
|
|
180
|
-
currentFolder: FolderDefinition,
|
|
181
|
-
selected: PropTypes.arrayOf(FolderDefinition, AssetDefinition)
|
|
182
|
-
};
|
|
183
|
-
const BulkMoveButton = ({ selected, onSuccess, currentFolder }) => {
|
|
176
|
+
const BulkMoveButton = ({
|
|
177
|
+
selected = [],
|
|
178
|
+
onSuccess,
|
|
179
|
+
currentFolder
|
|
180
|
+
}) => {
|
|
184
181
|
const { formatMessage } = useIntl();
|
|
185
|
-
const [showConfirmDialog, setShowConfirmDialog] = useState(false);
|
|
182
|
+
const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);
|
|
186
183
|
const handleConfirmMove = () => {
|
|
187
184
|
setShowConfirmDialog(false);
|
|
188
185
|
onSuccess();
|
|
@@ -199,17 +196,11 @@ const BulkMoveButton = ({ selected, onSuccess, currentFolder }) => {
|
|
|
199
196
|
)
|
|
200
197
|
] });
|
|
201
198
|
};
|
|
202
|
-
|
|
203
|
-
currentFolder: void 0,
|
|
204
|
-
selected: []
|
|
205
|
-
};
|
|
206
|
-
BulkMoveButton.propTypes = {
|
|
207
|
-
onSuccess: PropTypes.func.isRequired,
|
|
208
|
-
currentFolder: FolderDefinition,
|
|
209
|
-
selected: PropTypes.arrayOf(AssetDefinition, FolderDefinition)
|
|
210
|
-
};
|
|
211
|
-
const BulkActions = ({ selected, onSuccess, currentFolder }) => {
|
|
199
|
+
const BulkActions = ({ selected = [], onSuccess, currentFolder }) => {
|
|
212
200
|
const { formatMessage } = useIntl();
|
|
201
|
+
const numberAssets = selected?.reduce(function(_this, val) {
|
|
202
|
+
return val?.type === "folder" && "files" in val && val?.files && "count" in val.files ? _this + val?.files?.count : _this + 1;
|
|
203
|
+
}, 0);
|
|
213
204
|
return /* @__PURE__ */ jsxs(Flex, { gap: 2, paddingBottom: 5, children: [
|
|
214
205
|
/* @__PURE__ */ jsx(Typography, { variant: "epsilon", textColor: "neutral600", children: formatMessage(
|
|
215
206
|
{
|
|
@@ -217,24 +208,32 @@ const BulkActions = ({ selected, onSuccess, currentFolder }) => {
|
|
|
217
208
|
defaultMessage: "{numberFolders, plural, one {1 folder} other {# folders}} - {numberAssets, plural, one {1 asset} other {# assets}} selected"
|
|
218
209
|
},
|
|
219
210
|
{
|
|
220
|
-
numberFolders: selected
|
|
221
|
-
numberAssets
|
|
211
|
+
numberFolders: selected?.filter(({ type }) => type === "folder").length,
|
|
212
|
+
numberAssets
|
|
222
213
|
}
|
|
223
214
|
) }),
|
|
224
|
-
/* @__PURE__ */ jsx(
|
|
225
|
-
|
|
215
|
+
/* @__PURE__ */ jsx(
|
|
216
|
+
BulkDeleteButton,
|
|
217
|
+
{
|
|
218
|
+
selected,
|
|
219
|
+
onSuccess
|
|
220
|
+
}
|
|
221
|
+
),
|
|
222
|
+
/* @__PURE__ */ jsx(
|
|
223
|
+
BulkMoveButton,
|
|
224
|
+
{
|
|
225
|
+
currentFolder,
|
|
226
|
+
selected,
|
|
227
|
+
onSuccess
|
|
228
|
+
}
|
|
229
|
+
)
|
|
226
230
|
] });
|
|
227
231
|
};
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
onSuccess: PropTypes.func.isRequired,
|
|
234
|
-
currentFolder: FolderDefinition,
|
|
235
|
-
selected: PropTypes.arrayOf(AssetDefinition, FolderDefinition)
|
|
236
|
-
};
|
|
237
|
-
const getContentIntlMessage = ({ isFiltering, canCreate, canRead }) => {
|
|
232
|
+
const getContentIntlMessage = ({
|
|
233
|
+
isFiltering,
|
|
234
|
+
canCreate,
|
|
235
|
+
canRead
|
|
236
|
+
}) => {
|
|
238
237
|
if (isFiltering) {
|
|
239
238
|
return {
|
|
240
239
|
id: "list.assets-empty.title-withSearch",
|
|
@@ -258,7 +257,12 @@ const getContentIntlMessage = ({ isFiltering, canCreate, canRead }) => {
|
|
|
258
257
|
defaultMessage: "No permissions to view"
|
|
259
258
|
};
|
|
260
259
|
};
|
|
261
|
-
const EmptyOrNoPermissions = ({
|
|
260
|
+
const EmptyOrNoPermissions = ({
|
|
261
|
+
canCreate,
|
|
262
|
+
isFiltering,
|
|
263
|
+
canRead,
|
|
264
|
+
onActionClick
|
|
265
|
+
}) => {
|
|
262
266
|
const { formatMessage } = useIntl();
|
|
263
267
|
const content = getContentIntlMessage({ isFiltering, canCreate, canRead });
|
|
264
268
|
return /* @__PURE__ */ jsx(
|
|
@@ -276,12 +280,6 @@ const EmptyOrNoPermissions = ({ canCreate, isFiltering, canRead, onActionClick }
|
|
|
276
280
|
}
|
|
277
281
|
);
|
|
278
282
|
};
|
|
279
|
-
EmptyOrNoPermissions.propTypes = {
|
|
280
|
-
canCreate: PropTypes.bool.isRequired,
|
|
281
|
-
canRead: PropTypes.bool.isRequired,
|
|
282
|
-
isFiltering: PropTypes.bool.isRequired,
|
|
283
|
-
onActionClick: PropTypes.func.isRequired
|
|
284
|
-
};
|
|
285
283
|
const Filters = () => {
|
|
286
284
|
const [open, setOpen] = React.useState(false);
|
|
287
285
|
const { formatMessage } = useIntl();
|
|
@@ -320,9 +318,9 @@ const Filters = () => {
|
|
|
320
318
|
] });
|
|
321
319
|
};
|
|
322
320
|
const Header = ({
|
|
323
|
-
breadcrumbs,
|
|
321
|
+
breadcrumbs = null,
|
|
324
322
|
canCreate,
|
|
325
|
-
folder,
|
|
323
|
+
folder = null,
|
|
326
324
|
onToggleEditFolderDialog,
|
|
327
325
|
onToggleUploadAssetDialog
|
|
328
326
|
}) => {
|
|
@@ -331,8 +329,8 @@ const Header = ({
|
|
|
331
329
|
const [{ query }] = useQueryParams();
|
|
332
330
|
const backQuery = {
|
|
333
331
|
...query,
|
|
334
|
-
folder: folder?.parent
|
|
335
|
-
folderPath: folder?.parent
|
|
332
|
+
folder: folder?.parent && typeof folder.parent !== "number" && folder.parent.id ? folder.parent.id : void 0,
|
|
333
|
+
folderPath: folder?.parent && typeof folder.parent !== "number" && folder.parent.path ? folder.parent.path : void 0
|
|
336
334
|
};
|
|
337
335
|
return /* @__PURE__ */ jsx(
|
|
338
336
|
Layouts.Header,
|
|
@@ -341,10 +339,9 @@ const Header = ({
|
|
|
341
339
|
id: getTrad("plugin.name"),
|
|
342
340
|
defaultMessage: `Media Library`
|
|
343
341
|
}),
|
|
344
|
-
subtitle: breadcrumbs && folder && /* @__PURE__ */ jsx(
|
|
342
|
+
subtitle: breadcrumbs && typeof breadcrumbs !== "boolean" && folder && /* @__PURE__ */ jsx(
|
|
345
343
|
Breadcrumbs,
|
|
346
344
|
{
|
|
347
|
-
tag: "nav",
|
|
348
345
|
label: formatMessage({
|
|
349
346
|
id: getTrad("header.breadcrumbs.nav.label"),
|
|
350
347
|
defaultMessage: "Folders navigation"
|
|
@@ -378,17 +375,6 @@ const Header = ({
|
|
|
378
375
|
}
|
|
379
376
|
);
|
|
380
377
|
};
|
|
381
|
-
Header.defaultProps = {
|
|
382
|
-
breadcrumbs: false,
|
|
383
|
-
folder: null
|
|
384
|
-
};
|
|
385
|
-
Header.propTypes = {
|
|
386
|
-
breadcrumbs: PropTypes.oneOfType([BreadcrumbsDefinition, PropTypes.bool]),
|
|
387
|
-
canCreate: PropTypes.bool.isRequired,
|
|
388
|
-
folder: FolderDefinition,
|
|
389
|
-
onToggleEditFolderDialog: PropTypes.func.isRequired,
|
|
390
|
-
onToggleUploadAssetDialog: PropTypes.func.isRequired
|
|
391
|
-
};
|
|
392
378
|
const BoxWithHeight = styled(Box)`
|
|
393
379
|
height: 3.2rem;
|
|
394
380
|
display: flex;
|
|
@@ -415,7 +401,7 @@ const MediaLibrary = () => {
|
|
|
415
401
|
canConfigureView,
|
|
416
402
|
isLoading: permissionsLoading
|
|
417
403
|
} = useMediaLibraryPermissions();
|
|
418
|
-
const currentFolderToEditRef = useRef();
|
|
404
|
+
const currentFolderToEditRef = React.useRef();
|
|
419
405
|
const { formatMessage } = useIntl();
|
|
420
406
|
const { pathname } = useLocation();
|
|
421
407
|
const { trackUsage } = useTracking();
|
|
@@ -426,7 +412,7 @@ const MediaLibrary = () => {
|
|
|
426
412
|
const {
|
|
427
413
|
data: assetsData,
|
|
428
414
|
isLoading: assetsLoading,
|
|
429
|
-
|
|
415
|
+
error: assetsError
|
|
430
416
|
} = useAssets({
|
|
431
417
|
skipWhen: !canRead,
|
|
432
418
|
query
|
|
@@ -434,7 +420,7 @@ const MediaLibrary = () => {
|
|
|
434
420
|
const {
|
|
435
421
|
data: foldersData,
|
|
436
422
|
isLoading: foldersLoading,
|
|
437
|
-
|
|
423
|
+
error: foldersError
|
|
438
424
|
} = useFolders({
|
|
439
425
|
enabled: canRead && assetsData?.pagination?.page === 1 && !containsAssetFilter(query),
|
|
440
426
|
query
|
|
@@ -446,13 +432,16 @@ const MediaLibrary = () => {
|
|
|
446
432
|
} = useFolder(query?.folder, {
|
|
447
433
|
enabled: canRead && !!query?.folder
|
|
448
434
|
});
|
|
449
|
-
if (currentFolderError?.
|
|
435
|
+
if (currentFolderError?.name === "NotFoundError") {
|
|
450
436
|
navigate(pathname);
|
|
451
437
|
}
|
|
452
438
|
const folders = foldersData?.map((folder) => ({
|
|
453
439
|
...folder,
|
|
454
440
|
type: "folder",
|
|
455
|
-
folderURL: getFolderURL(pathname, query,
|
|
441
|
+
folderURL: getFolderURL(pathname, query, {
|
|
442
|
+
folder: folder.id.toString(),
|
|
443
|
+
folderPath: folder.path
|
|
444
|
+
}),
|
|
456
445
|
isSelectable: canUpdate
|
|
457
446
|
})) ?? [];
|
|
458
447
|
const folderCount = folders?.length || 0;
|
|
@@ -460,11 +449,14 @@ const MediaLibrary = () => {
|
|
|
460
449
|
const assetCount = assets?.length ?? 0;
|
|
461
450
|
const totalAssetCount = assetsData?.pagination?.total;
|
|
462
451
|
const isLoading = isCurrentFolderLoading || foldersLoading || permissionsLoading || assetsLoading;
|
|
463
|
-
const [showUploadAssetDialog, setShowUploadAssetDialog] = useState(false);
|
|
464
|
-
const [showEditFolderDialog, setShowEditFolderDialog] = useState(false);
|
|
465
|
-
const [assetToEdit, setAssetToEdit] = useState(void 0);
|
|
466
|
-
const [folderToEdit, setFolderToEdit] = useState(void 0);
|
|
467
|
-
const [selected, { selectOne, selectAll }] = useSelectionState(
|
|
452
|
+
const [showUploadAssetDialog, setShowUploadAssetDialog] = React.useState(false);
|
|
453
|
+
const [showEditFolderDialog, setShowEditFolderDialog] = React.useState(false);
|
|
454
|
+
const [assetToEdit, setAssetToEdit] = React.useState(void 0);
|
|
455
|
+
const [folderToEdit, setFolderToEdit] = React.useState(void 0);
|
|
456
|
+
const [selected, { selectOne, selectAll }] = useSelectionState(
|
|
457
|
+
["type", "id"],
|
|
458
|
+
[]
|
|
459
|
+
);
|
|
468
460
|
const indeterminateBulkSelect = selected?.length > 0 && selected?.length !== assetCount + folderCount;
|
|
469
461
|
const toggleUploadAssetDialog = () => setShowUploadAssetDialog((prev) => !prev);
|
|
470
462
|
const toggleEditFolderDialog = ({ created = false } = {}) => {
|
|
@@ -501,7 +493,7 @@ const MediaLibrary = () => {
|
|
|
501
493
|
}
|
|
502
494
|
};
|
|
503
495
|
const handleAssetDeleted = (numberOfAssets) => {
|
|
504
|
-
if (numberOfAssets === assetCount && assetsData
|
|
496
|
+
if (numberOfAssets === assetCount && assetsData?.pagination?.page === assetsData?.pagination?.pageCount && assetsData?.pagination?.page && assetsData.pagination.page > 1) {
|
|
505
497
|
setQuery({
|
|
506
498
|
...query,
|
|
507
499
|
page: assetsData.pagination.page - 1
|
|
@@ -523,7 +515,10 @@ const MediaLibrary = () => {
|
|
|
523
515
|
/* @__PURE__ */ jsx(
|
|
524
516
|
Header,
|
|
525
517
|
{
|
|
526
|
-
breadcrumbs: !isCurrentFolderLoading
|
|
518
|
+
breadcrumbs: !isCurrentFolderLoading ? getBreadcrumbDataML(currentFolder, {
|
|
519
|
+
pathname,
|
|
520
|
+
query
|
|
521
|
+
}) : null,
|
|
527
522
|
canCreate,
|
|
528
523
|
onToggleEditFolderDialog: toggleEditFolderDialog,
|
|
529
524
|
onToggleUploadAssetDialog: toggleUploadAssetDialog,
|
|
@@ -627,7 +622,7 @@ const MediaLibrary = () => {
|
|
|
627
622
|
folderCount,
|
|
628
623
|
indeterminate: indeterminateBulkSelect,
|
|
629
624
|
onChangeSort: handleChangeSort,
|
|
630
|
-
onChangeFolder: (folderID, folderPath) => navigate(getFolderURL(pathname, query, { folder: folderID, folderPath })),
|
|
625
|
+
onChangeFolder: (folderID, folderPath) => navigate(getFolderURL(pathname, query, { folder: folderID.toString(), folderPath })),
|
|
631
626
|
onEditAsset: setAssetToEdit,
|
|
632
627
|
onEditFolder: handleEditFolder,
|
|
633
628
|
onSelectOne: selectOne,
|
|
@@ -660,7 +655,7 @@ const MediaLibrary = () => {
|
|
|
660
655
|
(currentFolder2) => currentFolder2.id === folder.id
|
|
661
656
|
);
|
|
662
657
|
const url = getFolderURL(pathname, query, {
|
|
663
|
-
folder: folder?.id,
|
|
658
|
+
folder: folder?.id.toString(),
|
|
664
659
|
folderPath: folder?.path
|
|
665
660
|
});
|
|
666
661
|
return /* @__PURE__ */ jsx(
|
|
@@ -676,7 +671,7 @@ const MediaLibrary = () => {
|
|
|
676
671
|
ariaLabel: folder.name,
|
|
677
672
|
id: `folder-${folder.id}`,
|
|
678
673
|
to: url,
|
|
679
|
-
startAction:
|
|
674
|
+
startAction: folder.isSelectable ? /* @__PURE__ */ jsx(
|
|
680
675
|
FolderCardCheckbox,
|
|
681
676
|
{
|
|
682
677
|
"data-testid": `folder-checkbox-${folder.id}`,
|
|
@@ -687,7 +682,7 @@ const MediaLibrary = () => {
|
|
|
687
682
|
cardActions: /* @__PURE__ */ jsx(
|
|
688
683
|
IconButton,
|
|
689
684
|
{
|
|
690
|
-
|
|
685
|
+
label: formatMessage({
|
|
691
686
|
id: getTrad("list.folder.edit"),
|
|
692
687
|
defaultMessage: "Edit folder"
|
|
693
688
|
}),
|
|
@@ -721,8 +716,8 @@ const MediaLibrary = () => {
|
|
|
721
716
|
defaultMessage: "{folderCount, plural, =0 {# folder} one {# folder} other {# folders}}, {filesCount, plural, =0 {# asset} one {# asset} other {# assets}}"
|
|
722
717
|
},
|
|
723
718
|
{
|
|
724
|
-
folderCount: folder.children
|
|
725
|
-
filesCount: folder.files
|
|
719
|
+
folderCount: folder.children?.count,
|
|
720
|
+
filesCount: folder.files?.count
|
|
726
721
|
}
|
|
727
722
|
)
|
|
728
723
|
}
|
|
@@ -743,7 +738,9 @@ const MediaLibrary = () => {
|
|
|
743
738
|
assets,
|
|
744
739
|
onEditAsset: setAssetToEdit,
|
|
745
740
|
onSelectAsset: selectOne,
|
|
746
|
-
selectedAssets: selected.filter(
|
|
741
|
+
selectedAssets: selected.filter(
|
|
742
|
+
({ type }) => type === "asset"
|
|
743
|
+
),
|
|
747
744
|
title: (
|
|
748
745
|
// Assets title should only appear if:
|
|
749
746
|
// - user is not filtering
|
|
@@ -760,7 +757,7 @@ const MediaLibrary = () => {
|
|
|
760
757
|
}
|
|
761
758
|
)
|
|
762
759
|
] }),
|
|
763
|
-
/* @__PURE__ */ jsxs(Pagination.Root, { ...assetsData
|
|
760
|
+
/* @__PURE__ */ jsxs(Pagination.Root, { ...assetsData?.pagination, children: [
|
|
764
761
|
/* @__PURE__ */ jsx(Pagination.PageSize, {}),
|
|
765
762
|
/* @__PURE__ */ jsx(Pagination.Links, {})
|
|
766
763
|
] })
|
|
@@ -779,7 +776,7 @@ const MediaLibrary = () => {
|
|
|
779
776
|
EditFolderDialog,
|
|
780
777
|
{
|
|
781
778
|
open: showEditFolderDialog,
|
|
782
|
-
onClose: handleEditFolderClose,
|
|
779
|
+
onClose: () => handleEditFolderClose(),
|
|
783
780
|
folder: folderToEdit,
|
|
784
781
|
parentFolderId: query?.folder,
|
|
785
782
|
location: "upload"
|
|
@@ -804,7 +801,9 @@ const MediaLibrary = () => {
|
|
|
804
801
|
)
|
|
805
802
|
] });
|
|
806
803
|
};
|
|
807
|
-
const ConfigureTheView = lazy(
|
|
804
|
+
const ConfigureTheView = React.lazy(
|
|
805
|
+
async () => import("./ConfigureTheView-DgN6B288.mjs").then((mod) => ({ default: mod.ConfigureTheView }))
|
|
806
|
+
);
|
|
808
807
|
const Upload = () => {
|
|
809
808
|
const {
|
|
810
809
|
config: { isLoading, isError, data: config }
|
|
@@ -812,11 +811,15 @@ const Upload = () => {
|
|
|
812
811
|
const [{ rawQuery }, setQuery] = useQueryParams();
|
|
813
812
|
const { formatMessage } = useIntl();
|
|
814
813
|
const title = formatMessage({ id: getTrad("plugin.name"), defaultMessage: "Media Library" });
|
|
815
|
-
useEffect(() => {
|
|
814
|
+
React.useEffect(() => {
|
|
816
815
|
if (isLoading || isError || rawQuery) {
|
|
817
816
|
return;
|
|
818
817
|
}
|
|
819
|
-
setQuery({
|
|
818
|
+
setQuery({
|
|
819
|
+
sort: config.sort,
|
|
820
|
+
page: 1,
|
|
821
|
+
pageSize: config.pageSize
|
|
822
|
+
});
|
|
820
823
|
}, [isLoading, isError, config, rawQuery, setQuery]);
|
|
821
824
|
if (isLoading) {
|
|
822
825
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -824,12 +827,18 @@ const Upload = () => {
|
|
|
824
827
|
/* @__PURE__ */ jsx(Page.Loading, {})
|
|
825
828
|
] });
|
|
826
829
|
}
|
|
827
|
-
return /* @__PURE__ */ jsx(Page.Main, { children: rawQuery ? /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Page.Loading, {}), children: /* @__PURE__ */ jsxs(Routes, { children: [
|
|
830
|
+
return /* @__PURE__ */ jsx(Page.Main, { children: rawQuery ? /* @__PURE__ */ jsx(React.Suspense, { fallback: /* @__PURE__ */ jsx(Page.Loading, {}), children: /* @__PURE__ */ jsxs(Routes, { children: [
|
|
828
831
|
/* @__PURE__ */ jsx(Route, { index: true, element: /* @__PURE__ */ jsx(MediaLibrary, {}) }),
|
|
829
|
-
/* @__PURE__ */ jsx(
|
|
832
|
+
/* @__PURE__ */ jsx(
|
|
833
|
+
Route,
|
|
834
|
+
{
|
|
835
|
+
path: "configuration",
|
|
836
|
+
element: /* @__PURE__ */ jsx(ConfigureTheView, { config })
|
|
837
|
+
}
|
|
838
|
+
)
|
|
830
839
|
] }) }) : null });
|
|
831
840
|
};
|
|
832
841
|
export {
|
|
833
|
-
Upload
|
|
842
|
+
Upload
|
|
834
843
|
};
|
|
835
|
-
//# sourceMappingURL=
|
|
844
|
+
//# sourceMappingURL=App-C5068OP3.mjs.map
|