@strapi/upload 5.35.0 → 5.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/admin/future/App.js +4 -9
  2. package/dist/admin/future/App.js.map +1 -1
  3. package/dist/admin/future/App.mjs +4 -9
  4. package/dist/admin/future/App.mjs.map +1 -1
  5. package/dist/admin/future/enums.js +12 -0
  6. package/dist/admin/future/enums.js.map +1 -0
  7. package/dist/admin/future/enums.mjs +10 -0
  8. package/dist/admin/future/enums.mjs.map +1 -0
  9. package/dist/admin/future/pages/Assets/AssetsPage.js +342 -0
  10. package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -0
  11. package/dist/admin/future/pages/Assets/AssetsPage.mjs +321 -0
  12. package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -0
  13. package/dist/admin/future/pages/Assets/components/AssetsGrid.js +164 -0
  14. package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -0
  15. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +162 -0
  16. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -0
  17. package/dist/admin/future/pages/Assets/components/AssetsTable.js +198 -0
  18. package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +1 -0
  19. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs +196 -0
  20. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +1 -0
  21. package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.js +33 -0
  22. package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.js.map +1 -0
  23. package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.mjs +31 -0
  24. package/dist/admin/future/pages/Assets/components/DropZone/DropZoneWithOverlay.mjs.map +1 -0
  25. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js +107 -0
  26. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -0
  27. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs +104 -0
  28. package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -0
  29. package/dist/admin/future/pages/Assets/constants.js +54 -0
  30. package/dist/admin/future/pages/Assets/constants.js.map +1 -0
  31. package/dist/admin/future/pages/Assets/constants.mjs +50 -0
  32. package/dist/admin/future/pages/Assets/constants.mjs.map +1 -0
  33. package/dist/admin/future/services/assets.js +37 -0
  34. package/dist/admin/future/services/assets.js.map +1 -0
  35. package/dist/admin/future/services/assets.mjs +35 -0
  36. package/dist/admin/future/services/assets.mjs.map +1 -0
  37. package/dist/admin/future/utils/files.js +23 -0
  38. package/dist/admin/future/utils/files.js.map +1 -0
  39. package/dist/admin/future/utils/files.mjs +19 -0
  40. package/dist/admin/future/utils/files.mjs.map +1 -0
  41. package/dist/admin/future/utils/getAssetIcon.js +28 -0
  42. package/dist/admin/future/utils/getAssetIcon.js.map +1 -0
  43. package/dist/admin/future/utils/getAssetIcon.mjs +26 -0
  44. package/dist/admin/future/utils/getAssetIcon.mjs.map +1 -0
  45. package/dist/admin/package.json.js +7 -6
  46. package/dist/admin/package.json.js.map +1 -1
  47. package/dist/admin/package.json.mjs +7 -6
  48. package/dist/admin/package.json.mjs.map +1 -1
  49. package/dist/admin/src/future/enums.d.ts +6 -0
  50. package/dist/admin/src/future/pages/Assets/AssetsPage.d.ts +1 -0
  51. package/dist/admin/src/future/pages/Assets/components/AssetsGrid.d.ts +6 -0
  52. package/dist/admin/src/future/pages/Assets/components/AssetsTable.d.ts +6 -0
  53. package/dist/admin/src/future/pages/Assets/components/DropZone/DropZoneWithOverlay.d.ts +4 -0
  54. package/dist/admin/src/future/pages/Assets/components/DropZone/UploadDropZoneContext.d.ts +11 -0
  55. package/dist/admin/src/future/pages/Assets/constants.d.ts +17 -0
  56. package/dist/admin/src/future/services/assets.d.ts +13 -0
  57. package/dist/admin/src/future/utils/files.d.ts +3 -0
  58. package/dist/admin/src/future/utils/getAssetIcon.d.ts +12 -0
  59. package/dist/admin/translations/en.json.js +3 -0
  60. package/dist/admin/translations/en.json.js.map +1 -1
  61. package/dist/admin/translations/en.json.mjs +3 -0
  62. package/dist/admin/translations/en.json.mjs.map +1 -1
  63. package/package.json +7 -6
  64. package/dist/admin/future/pages/MediaLibraryPage.js +0 -119
  65. package/dist/admin/future/pages/MediaLibraryPage.js.map +0 -1
  66. package/dist/admin/future/pages/MediaLibraryPage.mjs +0 -98
  67. package/dist/admin/future/pages/MediaLibraryPage.mjs.map +0 -1
  68. package/dist/admin/src/future/pages/MediaLibraryPage.d.ts +0 -1
@@ -0,0 +1,26 @@
1
+ import { Images, Monitor, VolumeUp, File, FilePdf, FileCsv, FileXls, FileZip } from '@strapi/icons';
2
+ import { AssetType } from '../enums.mjs';
3
+ import { getFileExtension } from './files.mjs';
4
+
5
+ const DOC_ICON_MAP = {
6
+ pdf: FilePdf,
7
+ csv: FileCsv,
8
+ xls: FileXls,
9
+ zip: FileZip
10
+ };
11
+ const getAssetIcon = (mime, ext)=>{
12
+ const fileExtension = getFileExtension(ext);
13
+ if (mime?.includes(AssetType.Image)) {
14
+ return Images;
15
+ }
16
+ if (mime?.includes(AssetType.Video)) {
17
+ return Monitor;
18
+ }
19
+ if (mime?.includes(AssetType.Audio)) {
20
+ return VolumeUp;
21
+ }
22
+ return fileExtension ? DOC_ICON_MAP[fileExtension] || File : File;
23
+ };
24
+
25
+ export { getAssetIcon };
26
+ //# sourceMappingURL=getAssetIcon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAssetIcon.mjs","sources":["../../../../admin/src/future/utils/getAssetIcon.ts"],"sourcesContent":["import { SVGProps } from 'react';\n\nimport {\n File as FileIcon,\n FileCsv,\n FilePdf,\n FileXls,\n FileZip,\n Monitor,\n VolumeUp,\n Images,\n} from '@strapi/icons';\nimport { DefaultTheme } from 'styled-components';\n\nimport { AssetType } from '../enums';\n\nimport { getFileExtension } from './files';\n\n// NOTE: IconProps interface is not exported from our design library package, so we need to redefine it here\ninterface IconProps extends Omit<SVGProps<SVGSVGElement>, 'fill' | 'stroke'> {\n /**\n * @default \"currentColor\"\n */\n fill?: keyof DefaultTheme['colors'] | string;\n stroke?: keyof DefaultTheme['colors'] | string;\n}\n\ntype IconComponent = React.FC<IconProps>;\n\nconst DOC_ICON_MAP: Record<string, IconComponent> = {\n pdf: FilePdf,\n csv: FileCsv,\n xls: FileXls,\n zip: FileZip,\n};\n\nexport const getAssetIcon = (mime: string | undefined, ext: string | undefined): IconComponent => {\n const fileExtension = getFileExtension(ext);\n\n if (mime?.includes(AssetType.Image)) {\n return Images;\n }\n\n if (mime?.includes(AssetType.Video)) {\n return Monitor;\n }\n\n if (mime?.includes(AssetType.Audio)) {\n return VolumeUp;\n }\n\n return fileExtension ? DOC_ICON_MAP[fileExtension] || FileIcon : FileIcon;\n};\n"],"names":["DOC_ICON_MAP","pdf","FilePdf","csv","FileCsv","xls","FileXls","zip","FileZip","getAssetIcon","mime","ext","fileExtension","getFileExtension","includes","AssetType","Image","Images","Video","Monitor","Audio","VolumeUp","FileIcon"],"mappings":";;;;AA6BA,MAAMA,YAA8C,GAAA;IAClDC,GAAKC,EAAAA,OAAAA;IACLC,GAAKC,EAAAA,OAAAA;IACLC,GAAKC,EAAAA,OAAAA;IACLC,GAAKC,EAAAA;AACP,CAAA;AAEO,MAAMC,YAAe,GAAA,CAACC,IAA0BC,EAAAA,GAAAA,GAAAA;AACrD,IAAA,MAAMC,gBAAgBC,gBAAiBF,CAAAA,GAAAA,CAAAA;AAEvC,IAAA,IAAID,IAAMI,EAAAA,QAAAA,CAASC,SAAUC,CAAAA,KAAK,CAAG,EAAA;QACnC,OAAOC,MAAAA;AACT;AAEA,IAAA,IAAIP,IAAMI,EAAAA,QAAAA,CAASC,SAAUG,CAAAA,KAAK,CAAG,EAAA;QACnC,OAAOC,OAAAA;AACT;AAEA,IAAA,IAAIT,IAAMI,EAAAA,QAAAA,CAASC,SAAUK,CAAAA,KAAK,CAAG,EAAA;QACnC,OAAOC,QAAAA;AACT;AAEA,IAAA,OAAOT,aAAgBZ,GAAAA,YAAY,CAACY,aAAAA,CAAc,IAAIU,IAAWA,GAAAA,IAAAA;AACnE;;;;"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "@strapi/upload";
6
- var version = "5.35.0";
6
+ var version = "5.36.0";
7
7
  var description = "Makes it easy to upload images and files to your Strapi Application.";
8
8
  var license = "SEE LICENSE IN LICENSE";
9
9
  var author = {
@@ -64,12 +64,13 @@ var scripts = {
64
64
  };
65
65
  var dependencies = {
66
66
  "@mux/mux-player-react": "3.1.0",
67
+ "@radix-ui/react-toggle-group": "1.1.11",
67
68
  "@reduxjs/toolkit": "1.9.7",
68
- "@strapi/database": "5.33.3",
69
+ "@strapi/database": "5.36.0",
69
70
  "@strapi/design-system": "2.1.2",
70
71
  "@strapi/icons": "2.1.2",
71
- "@strapi/provider-upload-local": "5.35.0",
72
- "@strapi/utils": "5.35.0",
72
+ "@strapi/provider-upload-local": "5.36.0",
73
+ "@strapi/utils": "5.36.0",
73
74
  "byte-size": "8.1.1",
74
75
  cropperjs: "1.6.1",
75
76
  "date-fns": "2.30.0",
@@ -93,8 +94,8 @@ var dependencies = {
93
94
  zod: "3.25.67"
94
95
  };
95
96
  var devDependencies = {
96
- "@strapi/admin": "5.35.0",
97
- "@strapi/types": "5.35.0",
97
+ "@strapi/admin": "5.36.0",
98
+ "@strapi/types": "5.36.0",
98
99
  "@testing-library/dom": "10.4.1",
99
100
  "@testing-library/react": "16.3.0",
100
101
  "@testing-library/user-event": "14.6.1",
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  var name = "@strapi/upload";
2
- var version = "5.35.0";
2
+ var version = "5.36.0";
3
3
  var description = "Makes it easy to upload images and files to your Strapi Application.";
4
4
  var license = "SEE LICENSE IN LICENSE";
5
5
  var author = {
@@ -60,12 +60,13 @@ var scripts = {
60
60
  };
61
61
  var dependencies = {
62
62
  "@mux/mux-player-react": "3.1.0",
63
+ "@radix-ui/react-toggle-group": "1.1.11",
63
64
  "@reduxjs/toolkit": "1.9.7",
64
- "@strapi/database": "5.33.3",
65
+ "@strapi/database": "5.36.0",
65
66
  "@strapi/design-system": "2.1.2",
66
67
  "@strapi/icons": "2.1.2",
67
- "@strapi/provider-upload-local": "5.35.0",
68
- "@strapi/utils": "5.35.0",
68
+ "@strapi/provider-upload-local": "5.36.0",
69
+ "@strapi/utils": "5.36.0",
69
70
  "byte-size": "8.1.1",
70
71
  cropperjs: "1.6.1",
71
72
  "date-fns": "2.30.0",
@@ -89,8 +90,8 @@ var dependencies = {
89
90
  zod: "3.25.67"
90
91
  };
91
92
  var devDependencies = {
92
- "@strapi/admin": "5.35.0",
93
- "@strapi/types": "5.35.0",
93
+ "@strapi/admin": "5.36.0",
94
+ "@strapi/types": "5.36.0",
94
95
  "@testing-library/dom": "10.4.1",
95
96
  "@testing-library/react": "16.3.0",
96
97
  "@testing-library/user-event": "14.6.1",
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ export declare enum AssetType {
2
+ Video = "video",
3
+ Image = "image",
4
+ Document = "doc",
5
+ Audio = "audio"
6
+ }
@@ -0,0 +1 @@
1
+ export declare const AssetsPage: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { File } from '../../../../../../shared/contracts/files';
2
+ interface AssetsGridProps {
3
+ assets: File[];
4
+ }
5
+ export declare const AssetsGrid: ({ assets }: AssetsGridProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { File } from '../../../../../../shared/contracts/files';
2
+ interface AssetsTableProps {
3
+ assets: File[];
4
+ }
5
+ export declare const AssetsTable: ({ assets }: AssetsTableProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,4 @@
1
+ declare const DropZoneWithOverlay: ({ children }: {
2
+ children: React.ReactNode;
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
+ export { DropZoneWithOverlay };
@@ -0,0 +1,11 @@
1
+ import { type ReactNode } from 'react';
2
+ type DropHandler = (files: File[]) => void | Promise<void>;
3
+ interface UploadDropZoneProps {
4
+ children: ReactNode;
5
+ onDrop?: DropHandler;
6
+ }
7
+ export declare const UploadDropZoneProvider: ({ children, onDrop }: UploadDropZoneProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const useUploadDropZone: () => {
9
+ isDragging: boolean;
10
+ };
11
+ export {};
@@ -0,0 +1,17 @@
1
+ export declare const localStorageKeys: {
2
+ view: string;
3
+ };
4
+ export declare const viewOptions: {
5
+ GRID: number;
6
+ TABLE: number;
7
+ };
8
+ interface TableHeader {
9
+ name: string;
10
+ label: {
11
+ id: string;
12
+ defaultMessage: string;
13
+ };
14
+ isVisuallyHidden?: boolean;
15
+ }
16
+ export declare const TABLE_HEADERS: TableHeader[];
17
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { File, Pagination } from '../../../../shared/contracts/files';
2
+ interface GetAssetsParams {
3
+ page?: number;
4
+ pageSize?: number;
5
+ folder?: number | null;
6
+ sort?: string;
7
+ }
8
+ interface GetAssetsResponse {
9
+ results: File[];
10
+ pagination: Pagination;
11
+ }
12
+ export declare const useGetAssetsQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query").QueryDefinition<void | GetAssetsParams, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@strapi/admin/strapi-admin").QueryArguments, unknown, import("@strapi/admin/strapi-admin").BaseQueryError, {}, {}>, "GuidedTourMeta" | "HomepageKeyStatistics" | "AIUsage" | "AIFeatureConfig" | "Asset" | "Folder", GetAssetsResponse, "adminApi">>;
13
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare function formatBytes(receivedBytes: number | string, decimals?: number): string;
2
+ export declare const getFileExtension: (ext?: string | null) => string | null | undefined;
3
+ export declare const prefixFileUrlWithBackendUrl: (fileURL?: string) => string | undefined;
@@ -0,0 +1,12 @@
1
+ import { SVGProps } from 'react';
2
+ import { DefaultTheme } from 'styled-components';
3
+ interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'fill' | 'stroke'> {
4
+ /**
5
+ * @default "currentColor"
6
+ */
7
+ fill?: keyof DefaultTheme['colors'] | string;
8
+ stroke?: keyof DefaultTheme['colors'] | string;
9
+ }
10
+ type IconComponent = React.FC<IconProps>;
11
+ export declare const getAssetIcon: (mime: string | undefined, ext: string | undefined) => IconComponent;
12
+ export {};
@@ -24,6 +24,7 @@ var en = {
24
24
  "control-card.replace-media": "Replace Media",
25
25
  "control-card.save": "Save",
26
26
  "control-card.stop-crop": "Stop cropping",
27
+ "dropzone.upload.message": "Drop here to upload to",
27
28
  "filter.add": "Add filter",
28
29
  "form.button.replace-media": "Replace media",
29
30
  "form.input.description.file-alt": "This text will be displayed if the asset can’t be shown.",
@@ -145,6 +146,8 @@ var en = {
145
146
  "list.table.header.size": "size",
146
147
  "list.table.header.createdAt": "created",
147
148
  "list.table.header.updatedAt": "last update",
149
+ "list.table.header.creationDate": "Creation Date",
150
+ "list.table.header.lastModified": "Last Modified",
148
151
  "list.table.header.sort": "Sort on {label}",
149
152
  "list.table.content.empty-label": "This field is empty",
150
153
  "tabs.title": "How do you want to upload your assets?",
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -22,6 +22,7 @@ var en = {
22
22
  "control-card.replace-media": "Replace Media",
23
23
  "control-card.save": "Save",
24
24
  "control-card.stop-crop": "Stop cropping",
25
+ "dropzone.upload.message": "Drop here to upload to",
25
26
  "filter.add": "Add filter",
26
27
  "form.button.replace-media": "Replace media",
27
28
  "form.input.description.file-alt": "This text will be displayed if the asset can’t be shown.",
@@ -143,6 +144,8 @@ var en = {
143
144
  "list.table.header.size": "size",
144
145
  "list.table.header.createdAt": "created",
145
146
  "list.table.header.updatedAt": "last update",
147
+ "list.table.header.creationDate": "Creation Date",
148
+ "list.table.header.lastModified": "Last Modified",
146
149
  "list.table.header.sort": "Sort on {label}",
147
150
  "list.table.content.empty-label": "This field is empty",
148
151
  "tabs.title": "How do you want to upload your assets?",
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/upload",
3
- "version": "5.35.0",
3
+ "version": "5.36.0",
4
4
  "description": "Makes it easy to upload images and files to your Strapi Application.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": {
@@ -61,12 +61,13 @@
61
61
  },
62
62
  "dependencies": {
63
63
  "@mux/mux-player-react": "3.1.0",
64
+ "@radix-ui/react-toggle-group": "1.1.11",
64
65
  "@reduxjs/toolkit": "1.9.7",
65
- "@strapi/database": "5.33.3",
66
+ "@strapi/database": "5.36.0",
66
67
  "@strapi/design-system": "2.1.2",
67
68
  "@strapi/icons": "2.1.2",
68
- "@strapi/provider-upload-local": "5.35.0",
69
- "@strapi/utils": "5.35.0",
69
+ "@strapi/provider-upload-local": "5.36.0",
70
+ "@strapi/utils": "5.36.0",
70
71
  "byte-size": "8.1.1",
71
72
  "cropperjs": "1.6.1",
72
73
  "date-fns": "2.30.0",
@@ -90,8 +91,8 @@
90
91
  "zod": "3.25.67"
91
92
  },
92
93
  "devDependencies": {
93
- "@strapi/admin": "5.35.0",
94
- "@strapi/types": "5.35.0",
94
+ "@strapi/admin": "5.36.0",
95
+ "@strapi/types": "5.36.0",
95
96
  "@testing-library/dom": "10.4.1",
96
97
  "@testing-library/react": "16.3.0",
97
98
  "@testing-library/user-event": "14.6.1",
@@ -1,119 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
- var strapiAdmin = require('@strapi/admin/strapi-admin');
6
- var designSystem = require('@strapi/design-system');
7
- var icons = require('@strapi/icons');
8
- var reactIntl = require('react-intl');
9
- var api = require('../services/api.js');
10
- var translations = require('../utils/translations.js');
11
-
12
- function _interopNamespaceDefault(e) {
13
- var n = Object.create(null);
14
- if (e) {
15
- Object.keys(e).forEach(function (k) {
16
- if (k !== 'default') {
17
- var d = Object.getOwnPropertyDescriptor(e, k);
18
- Object.defineProperty(n, k, d.get ? d : {
19
- enumerable: true,
20
- get: function () { return e[k]; }
21
- });
22
- }
23
- });
24
- }
25
- n.default = e;
26
- return Object.freeze(n);
27
- }
28
-
29
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
30
-
31
- const MediaLibraryPage = ()=>{
32
- const { formatMessage } = reactIntl.useIntl();
33
- const { toggleNotification } = strapiAdmin.useNotification();
34
- const { _unstableFormatAPIError } = strapiAdmin.useAPIErrorHandler();
35
- const fileInputRef = React__namespace.useRef(null);
36
- const [uploadFiles] = api.useUploadFilesMutation();
37
- const handleFileSelect = ()=>{
38
- fileInputRef.current?.click();
39
- };
40
- const handleFileChange = async (e)=>{
41
- const files = e.target.files;
42
- if (files && files.length > 0) {
43
- const formData = new FormData();
44
- const filesArray = Array.from(files);
45
- // Add files and fileInfo to the form data
46
- filesArray.forEach((file)=>{
47
- formData.append('files', file);
48
- formData.append('fileInfo', JSON.stringify({
49
- name: file.name,
50
- caption: null,
51
- alternativeText: null,
52
- folder: null
53
- }));
54
- });
55
- try {
56
- // unwrap() is needed to throw errors and trigger the catch block
57
- // Without it, RTK Query never rejects and catch would never execute
58
- await uploadFiles(formData).unwrap();
59
- toggleNotification({
60
- type: 'success',
61
- message: formatMessage({
62
- id: translations.getTranslationKey('assets.uploaded'),
63
- defaultMessage: '{number, plural, one {# asset} other {# assets}} uploaded successfully'
64
- }, {
65
- number: filesArray.length
66
- })
67
- });
68
- } catch (error) {
69
- // Format the error message using the API error handler to provide
70
- // context-specific feedback (e.g., file size limits, format restrictions, network errors)
71
- const errorMessage = _unstableFormatAPIError(error);
72
- toggleNotification({
73
- type: 'danger',
74
- message: errorMessage
75
- });
76
- }
77
- }
78
- // Reset input so the same file can be selected again
79
- e.target.value = '';
80
- };
81
- return /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Layouts.Root, {
82
- children: [
83
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.VisuallyHidden, {
84
- children: /*#__PURE__*/ jsxRuntime.jsx("input", {
85
- type: "file",
86
- ref: fileInputRef,
87
- onChange: handleFileChange,
88
- multiple: true
89
- })
90
- }),
91
- /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Header, {
92
- title: "TODO: Folder location",
93
- primaryAction: /*#__PURE__*/ jsxRuntime.jsx(designSystem.SimpleMenu, {
94
- popoverPlacement: "bottom-end",
95
- variant: "default",
96
- endIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.ChevronDown, {}),
97
- label: formatMessage({
98
- id: translations.getTranslationKey('new'),
99
- defaultMessage: 'New'
100
- }),
101
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.MenuItem, {
102
- onSelect: handleFileSelect,
103
- startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Files, {}),
104
- children: formatMessage({
105
- id: translations.getTranslationKey('import-files'),
106
- defaultMessage: 'Import files'
107
- })
108
- })
109
- })
110
- }),
111
- /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Content, {
112
- children: "TODO: List/Grid views"
113
- })
114
- ]
115
- });
116
- };
117
-
118
- exports.MediaLibraryPage = MediaLibraryPage;
119
- //# sourceMappingURL=MediaLibraryPage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MediaLibraryPage.js","sources":["../../../../admin/src/future/pages/MediaLibraryPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Layouts, useNotification, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { MenuItem, SimpleMenu, VisuallyHidden } from '@strapi/design-system';\nimport { ChevronDown, Files } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useUploadFilesMutation } from '../services/api';\nimport { getTranslationKey } from '../utils/translations';\n\nexport const MediaLibraryPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError } = useAPIErrorHandler();\n const fileInputRef = React.useRef<HTMLInputElement>(null);\n const [uploadFiles] = useUploadFilesMutation();\n\n const handleFileSelect = () => {\n fileInputRef.current?.click();\n };\n\n const handleFileChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const files = e.target.files;\n if (files && files.length > 0) {\n const formData = new FormData();\n const filesArray = Array.from(files);\n\n // Add files and fileInfo to the form data\n filesArray.forEach((file) => {\n formData.append('files', file);\n formData.append(\n 'fileInfo',\n JSON.stringify({\n name: file.name,\n caption: null,\n alternativeText: null,\n folder: null,\n })\n );\n });\n\n try {\n // unwrap() is needed to throw errors and trigger the catch block\n // Without it, RTK Query never rejects and catch would never execute\n await uploadFiles(formData).unwrap();\n toggleNotification({\n type: 'success',\n message: formatMessage(\n {\n id: getTranslationKey('assets.uploaded'),\n defaultMessage:\n '{number, plural, one {# asset} other {# assets}} uploaded successfully',\n },\n { number: filesArray.length }\n ),\n });\n } catch (error) {\n // Format the error message using the API error handler to provide\n // context-specific feedback (e.g., file size limits, format restrictions, network errors)\n const errorMessage = _unstableFormatAPIError(error as Error);\n toggleNotification({\n type: 'danger',\n message: errorMessage,\n });\n }\n }\n // Reset input so the same file can be selected again\n e.target.value = '';\n };\n\n return (\n <Layouts.Root>\n <VisuallyHidden>\n <input type=\"file\" ref={fileInputRef} onChange={handleFileChange} multiple />\n </VisuallyHidden>\n <Layouts.Header\n title=\"TODO: Folder location\"\n primaryAction={\n <SimpleMenu\n popoverPlacement=\"bottom-end\"\n variant=\"default\"\n endIcon={<ChevronDown />}\n label={formatMessage({ id: getTranslationKey('new'), defaultMessage: 'New' })}\n >\n <MenuItem onSelect={handleFileSelect} startIcon={<Files />}>\n {formatMessage({\n id: getTranslationKey('import-files'),\n defaultMessage: 'Import files',\n })}\n </MenuItem>\n </SimpleMenu>\n }\n />\n\n <Layouts.Content>TODO: List/Grid views</Layouts.Content>\n </Layouts.Root>\n );\n};\n"],"names":["MediaLibraryPage","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","useAPIErrorHandler","fileInputRef","React","useRef","uploadFiles","useUploadFilesMutation","handleFileSelect","current","click","handleFileChange","e","files","target","length","formData","FormData","filesArray","Array","from","forEach","file","append","JSON","stringify","name","caption","alternativeText","folder","unwrap","type","message","id","getTranslationKey","defaultMessage","number","error","errorMessage","value","_jsxs","Layouts","Root","_jsx","VisuallyHidden","input","ref","onChange","multiple","Header","title","primaryAction","SimpleMenu","popoverPlacement","variant","endIcon","ChevronDown","label","MenuItem","onSelect","startIcon","Files","Content"],"mappings":"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"}
@@ -1,98 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import { useNotification, useAPIErrorHandler, Layouts } from '@strapi/admin/strapi-admin';
4
- import { VisuallyHidden, SimpleMenu, MenuItem } from '@strapi/design-system';
5
- import { ChevronDown, Files } from '@strapi/icons';
6
- import { useIntl } from 'react-intl';
7
- import { useUploadFilesMutation } from '../services/api.mjs';
8
- import { getTranslationKey } from '../utils/translations.mjs';
9
-
10
- const MediaLibraryPage = ()=>{
11
- const { formatMessage } = useIntl();
12
- const { toggleNotification } = useNotification();
13
- const { _unstableFormatAPIError } = useAPIErrorHandler();
14
- const fileInputRef = React.useRef(null);
15
- const [uploadFiles] = useUploadFilesMutation();
16
- const handleFileSelect = ()=>{
17
- fileInputRef.current?.click();
18
- };
19
- const handleFileChange = async (e)=>{
20
- const files = e.target.files;
21
- if (files && files.length > 0) {
22
- const formData = new FormData();
23
- const filesArray = Array.from(files);
24
- // Add files and fileInfo to the form data
25
- filesArray.forEach((file)=>{
26
- formData.append('files', file);
27
- formData.append('fileInfo', JSON.stringify({
28
- name: file.name,
29
- caption: null,
30
- alternativeText: null,
31
- folder: null
32
- }));
33
- });
34
- try {
35
- // unwrap() is needed to throw errors and trigger the catch block
36
- // Without it, RTK Query never rejects and catch would never execute
37
- await uploadFiles(formData).unwrap();
38
- toggleNotification({
39
- type: 'success',
40
- message: formatMessage({
41
- id: getTranslationKey('assets.uploaded'),
42
- defaultMessage: '{number, plural, one {# asset} other {# assets}} uploaded successfully'
43
- }, {
44
- number: filesArray.length
45
- })
46
- });
47
- } catch (error) {
48
- // Format the error message using the API error handler to provide
49
- // context-specific feedback (e.g., file size limits, format restrictions, network errors)
50
- const errorMessage = _unstableFormatAPIError(error);
51
- toggleNotification({
52
- type: 'danger',
53
- message: errorMessage
54
- });
55
- }
56
- }
57
- // Reset input so the same file can be selected again
58
- e.target.value = '';
59
- };
60
- return /*#__PURE__*/ jsxs(Layouts.Root, {
61
- children: [
62
- /*#__PURE__*/ jsx(VisuallyHidden, {
63
- children: /*#__PURE__*/ jsx("input", {
64
- type: "file",
65
- ref: fileInputRef,
66
- onChange: handleFileChange,
67
- multiple: true
68
- })
69
- }),
70
- /*#__PURE__*/ jsx(Layouts.Header, {
71
- title: "TODO: Folder location",
72
- primaryAction: /*#__PURE__*/ jsx(SimpleMenu, {
73
- popoverPlacement: "bottom-end",
74
- variant: "default",
75
- endIcon: /*#__PURE__*/ jsx(ChevronDown, {}),
76
- label: formatMessage({
77
- id: getTranslationKey('new'),
78
- defaultMessage: 'New'
79
- }),
80
- children: /*#__PURE__*/ jsx(MenuItem, {
81
- onSelect: handleFileSelect,
82
- startIcon: /*#__PURE__*/ jsx(Files, {}),
83
- children: formatMessage({
84
- id: getTranslationKey('import-files'),
85
- defaultMessage: 'Import files'
86
- })
87
- })
88
- })
89
- }),
90
- /*#__PURE__*/ jsx(Layouts.Content, {
91
- children: "TODO: List/Grid views"
92
- })
93
- ]
94
- });
95
- };
96
-
97
- export { MediaLibraryPage };
98
- //# sourceMappingURL=MediaLibraryPage.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MediaLibraryPage.mjs","sources":["../../../../admin/src/future/pages/MediaLibraryPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Layouts, useNotification, useAPIErrorHandler } from '@strapi/admin/strapi-admin';\nimport { MenuItem, SimpleMenu, VisuallyHidden } from '@strapi/design-system';\nimport { ChevronDown, Files } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useUploadFilesMutation } from '../services/api';\nimport { getTranslationKey } from '../utils/translations';\n\nexport const MediaLibraryPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError } = useAPIErrorHandler();\n const fileInputRef = React.useRef<HTMLInputElement>(null);\n const [uploadFiles] = useUploadFilesMutation();\n\n const handleFileSelect = () => {\n fileInputRef.current?.click();\n };\n\n const handleFileChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const files = e.target.files;\n if (files && files.length > 0) {\n const formData = new FormData();\n const filesArray = Array.from(files);\n\n // Add files and fileInfo to the form data\n filesArray.forEach((file) => {\n formData.append('files', file);\n formData.append(\n 'fileInfo',\n JSON.stringify({\n name: file.name,\n caption: null,\n alternativeText: null,\n folder: null,\n })\n );\n });\n\n try {\n // unwrap() is needed to throw errors and trigger the catch block\n // Without it, RTK Query never rejects and catch would never execute\n await uploadFiles(formData).unwrap();\n toggleNotification({\n type: 'success',\n message: formatMessage(\n {\n id: getTranslationKey('assets.uploaded'),\n defaultMessage:\n '{number, plural, one {# asset} other {# assets}} uploaded successfully',\n },\n { number: filesArray.length }\n ),\n });\n } catch (error) {\n // Format the error message using the API error handler to provide\n // context-specific feedback (e.g., file size limits, format restrictions, network errors)\n const errorMessage = _unstableFormatAPIError(error as Error);\n toggleNotification({\n type: 'danger',\n message: errorMessage,\n });\n }\n }\n // Reset input so the same file can be selected again\n e.target.value = '';\n };\n\n return (\n <Layouts.Root>\n <VisuallyHidden>\n <input type=\"file\" ref={fileInputRef} onChange={handleFileChange} multiple />\n </VisuallyHidden>\n <Layouts.Header\n title=\"TODO: Folder location\"\n primaryAction={\n <SimpleMenu\n popoverPlacement=\"bottom-end\"\n variant=\"default\"\n endIcon={<ChevronDown />}\n label={formatMessage({ id: getTranslationKey('new'), defaultMessage: 'New' })}\n >\n <MenuItem onSelect={handleFileSelect} startIcon={<Files />}>\n {formatMessage({\n id: getTranslationKey('import-files'),\n defaultMessage: 'Import files',\n })}\n </MenuItem>\n </SimpleMenu>\n }\n />\n\n <Layouts.Content>TODO: List/Grid views</Layouts.Content>\n </Layouts.Root>\n );\n};\n"],"names":["MediaLibraryPage","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","useAPIErrorHandler","fileInputRef","React","useRef","uploadFiles","useUploadFilesMutation","handleFileSelect","current","click","handleFileChange","e","files","target","length","formData","FormData","filesArray","Array","from","forEach","file","append","JSON","stringify","name","caption","alternativeText","folder","unwrap","type","message","id","getTranslationKey","defaultMessage","number","error","errorMessage","value","_jsxs","Layouts","Root","_jsx","VisuallyHidden","input","ref","onChange","multiple","Header","title","primaryAction","SimpleMenu","popoverPlacement","variant","endIcon","ChevronDown","label","MenuItem","onSelect","startIcon","Files","Content"],"mappings":";;;;;;;;;MAUaA,gBAAmB,GAAA,IAAA;IAC9B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,uBAAuB,EAAE,GAAGC,kBAAAA,EAAAA;IACpC,MAAMC,YAAAA,GAAeC,KAAMC,CAAAA,MAAM,CAAmB,IAAA,CAAA;IACpD,MAAM,CAACC,YAAY,GAAGC,sBAAAA,EAAAA;AAEtB,IAAA,MAAMC,gBAAmB,GAAA,IAAA;AACvBL,QAAAA,YAAAA,CAAaM,OAAO,EAAEC,KAAAA,EAAAA;AACxB,KAAA;AAEA,IAAA,MAAMC,mBAAmB,OAAOC,CAAAA,GAAAA;AAC9B,QAAA,MAAMC,KAAQD,GAAAA,CAAAA,CAAEE,MAAM,CAACD,KAAK;AAC5B,QAAA,IAAIA,KAASA,IAAAA,KAAAA,CAAME,MAAM,GAAG,CAAG,EAAA;AAC7B,YAAA,MAAMC,WAAW,IAAIC,QAAAA,EAAAA;YACrB,MAAMC,UAAAA,GAAaC,KAAMC,CAAAA,IAAI,CAACP,KAAAA,CAAAA;;YAG9BK,UAAWG,CAAAA,OAAO,CAAC,CAACC,IAAAA,GAAAA;gBAClBN,QAASO,CAAAA,MAAM,CAAC,OAASD,EAAAA,IAAAA,CAAAA;AACzBN,gBAAAA,QAAAA,CAASO,MAAM,CACb,UACAC,EAAAA,IAAAA,CAAKC,SAAS,CAAC;AACbC,oBAAAA,IAAAA,EAAMJ,KAAKI,IAAI;oBACfC,OAAS,EAAA,IAAA;oBACTC,eAAiB,EAAA,IAAA;oBACjBC,MAAQ,EAAA;AACV,iBAAA,CAAA,CAAA;AAEJ,aAAA,CAAA;YAEA,IAAI;;;gBAGF,MAAMvB,WAAAA,CAAYU,UAAUc,MAAM,EAAA;gBAClC/B,kBAAmB,CAAA;oBACjBgC,IAAM,EAAA,SAAA;AACNC,oBAAAA,OAAAA,EAASnC,aACP,CAAA;AACEoC,wBAAAA,EAAAA,EAAIC,iBAAkB,CAAA,iBAAA,CAAA;wBACtBC,cACE,EAAA;qBAEJ,EAAA;AAAEC,wBAAAA,MAAAA,EAAQlB,WAAWH;AAAO,qBAAA;AAEhC,iBAAA,CAAA;AACF,aAAA,CAAE,OAAOsB,KAAO,EAAA;;;AAGd,gBAAA,MAAMC,eAAerC,uBAAwBoC,CAAAA,KAAAA,CAAAA;gBAC7CtC,kBAAmB,CAAA;oBACjBgC,IAAM,EAAA,QAAA;oBACNC,OAASM,EAAAA;AACX,iBAAA,CAAA;AACF;AACF;;QAEA1B,CAAEE,CAAAA,MAAM,CAACyB,KAAK,GAAG,EAAA;AACnB,KAAA;IAEA,qBACEC,IAAA,CAACC,QAAQC,IAAI,EAAA;;0BACXC,GAACC,CAAAA,cAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAACE,CAAAA,OAAAA,EAAAA;oBAAMd,IAAK,EAAA,MAAA;oBAAOe,GAAK3C,EAAAA,YAAAA;oBAAc4C,QAAUpC,EAAAA,gBAAAA;oBAAkBqC,QAAQ,EAAA;;;AAE5E,0BAAAL,GAAA,CAACF,QAAQQ,MAAM,EAAA;gBACbC,KAAM,EAAA,uBAAA;AACNC,gBAAAA,aAAAA,gBACER,GAACS,CAAAA,UAAAA,EAAAA;oBACCC,gBAAiB,EAAA,YAAA;oBACjBC,OAAQ,EAAA,SAAA;AACRC,oBAAAA,OAAAA,gBAASZ,GAACa,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;AACVC,oBAAAA,KAAAA,EAAO5D,aAAc,CAAA;AAAEoC,wBAAAA,EAAAA,EAAIC,iBAAkB,CAAA,KAAA,CAAA;wBAAQC,cAAgB,EAAA;AAAM,qBAAA,CAAA;AAE3E,oBAAA,QAAA,gBAAAQ,GAACe,CAAAA,QAAAA,EAAAA;wBAASC,QAAUnD,EAAAA,gBAAAA;AAAkBoD,wBAAAA,SAAAA,gBAAWjB,GAACkB,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;kCAC/ChE,aAAc,CAAA;AACboC,4BAAAA,EAAAA,EAAIC,iBAAkB,CAAA,cAAA,CAAA;4BACtBC,cAAgB,EAAA;AAClB,yBAAA;;;;AAMR,0BAAAQ,GAAA,CAACF,QAAQqB,OAAO,EAAA;AAAC,gBAAA,QAAA,EAAA;;;;AAGvB;;;;"}
@@ -1 +0,0 @@
1
- export declare const MediaLibraryPage: () => import("react/jsx-runtime").JSX.Element;