@strapi/upload 5.28.0 → 5.30.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/dist/admin/ai/components/AIAssetCard.js +4 -2
- package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
- package/dist/admin/ai/components/AIAssetCard.mjs +4 -2
- package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.js +2 -1
- package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.mjs +2 -1
- package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +2 -2
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js +8 -5
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +7 -4
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +2 -2
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +2 -2
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +2 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +2 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +2 -2
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +2 -2
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +2 -2
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
- package/dist/admin/hooks/useConfig.js +2 -1
- package/dist/admin/hooks/useConfig.js.map +1 -1
- package/dist/admin/hooks/useConfig.mjs +2 -1
- package/dist/admin/hooks/useConfig.mjs.map +1 -1
- package/dist/admin/hooks/useModalQueryParams.js +2 -2
- package/dist/admin/hooks/useModalQueryParams.js.map +1 -1
- package/dist/admin/hooks/useModalQueryParams.mjs +1 -1
- package/dist/admin/hooks/useModalQueryParams.mjs.map +1 -1
- package/dist/admin/hooks/useTracking.js +21 -0
- package/dist/admin/hooks/useTracking.js.map +1 -0
- package/dist/admin/hooks/useTracking.mjs +19 -0
- package/dist/admin/hooks/useTracking.mjs.map +1 -0
- package/dist/admin/package.json.js +5 -5
- package/dist/admin/package.json.mjs +5 -5
- package/dist/admin/pages/App/MediaLibrary/components/Filters.js +2 -1
- package/dist/admin/pages/App/MediaLibrary/components/Filters.js.map +1 -1
- package/dist/admin/pages/App/MediaLibrary/components/Filters.mjs +2 -1
- package/dist/admin/pages/App/MediaLibrary/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.js +9 -4
- package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs +9 -4
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
- package/dist/admin/src/hooks/useTracking.d.ts +4 -0
- package/dist/server/controllers/admin-folder-file.js +2 -2
- package/dist/server/controllers/admin-folder-file.js.map +1 -1
- package/dist/server/controllers/admin-folder-file.mjs +2 -2
- package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
- package/dist/server/controllers/admin-upload.js +9 -2
- package/dist/server/controllers/admin-upload.js.map +1 -1
- package/dist/server/controllers/admin-upload.mjs +9 -2
- package/dist/server/controllers/admin-upload.mjs.map +1 -1
- package/dist/server/services/metrics.js +11 -1
- package/dist/server/services/metrics.js.map +1 -1
- package/dist/server/services/metrics.mjs +11 -1
- package/dist/server/services/metrics.mjs.map +1 -1
- package/dist/server/services/upload.js +8 -8
- package/dist/server/services/upload.js.map +1 -1
- package/dist/server/services/upload.mjs +8 -8
- package/dist/server/services/upload.mjs.map +1 -1
- package/dist/server/services/weekly-metrics.js +3 -6
- package/dist/server/services/weekly-metrics.js.map +1 -1
- package/dist/server/services/weekly-metrics.mjs +3 -6
- package/dist/server/services/weekly-metrics.mjs.map +1 -1
- package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +1 -1
- package/dist/server/src/services/index.d.ts +1 -1
- package/dist/server/src/services/metrics.d.ts +1 -0
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/upload.d.ts.map +1 -1
- package/dist/server/src/services/weekly-metrics.d.ts +0 -1
- package/dist/server/src/services/weekly-metrics.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConfig.js","sources":["../../../admin/src/hooks/useConfig.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useConfig.js","sources":["../../../admin/src/hooks/useConfig.ts"],"sourcesContent":["import { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, UseMutationResult, UseQueryResult } from 'react-query';\n\nimport { GetConfiguration, UpdateConfiguration } from '../../../shared/contracts/configuration';\nimport { pluginId } from '../pluginId';\n\nimport { useTracking } from './useTracking';\n\nconst endpoint = `/${pluginId}/configuration`;\nconst queryKey = [pluginId, 'configuration'];\n\nexport const useConfig = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { get, put } = useFetchClient();\n\n const config: UseQueryResult<\n GetConfiguration.Response['data']['data'] | GetConfiguration.Response['error']\n > = useQuery(\n queryKey,\n async () => {\n const res: GetConfiguration.Response = await get(endpoint);\n\n return res.data.data;\n },\n {\n onError() {\n return toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n },\n /**\n * We're cementing that we always expect an object to be returned.\n */\n select: (data) => data || {},\n }\n );\n\n const putMutation: UseMutationResult<\n void,\n UpdateConfiguration.Response['error'],\n UpdateConfiguration.Request['body']\n > = useMutation(\n async (body) => {\n await put<UpdateConfiguration.Response>(endpoint, body);\n },\n {\n onSuccess() {\n trackUsage('didEditMediaLibraryConfig');\n config.refetch();\n },\n onError() {\n return toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n return {\n config,\n mutateConfig: putMutation,\n };\n};\n"],"names":["endpoint","pluginId","queryKey","useConfig","trackUsage","useTracking","formatMessage","useIntl","toggleNotification","useNotification","get","put","useFetchClient","config","useQuery","res","data","onError","type","message","id","select","putMutation","useMutation","body","onSuccess","refetch","mutateConfig"],"mappings":";;;;;;;;AASA,MAAMA,WAAW,CAAC,CAAC,EAAEC,iBAAAA,CAAS,cAAc,CAAC;AAC7C,MAAMC,QAAW,GAAA;AAACD,IAAAA,iBAAAA;AAAU,IAAA;AAAgB,CAAA;MAE/BE,SAAY,GAAA,IAAA;IACvB,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,2BAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAE,GAAGC,0BAAAA,EAAAA;IAErB,MAAMC,MAAAA,GAEFC,oBACFZ,QACA,EAAA,UAAA;QACE,MAAMa,GAAAA,GAAiC,MAAML,GAAIV,CAAAA,QAAAA,CAAAA;QAEjD,OAAOe,GAAAA,CAAIC,IAAI,CAACA,IAAI;KAEtB,EAAA;AACEC,QAAAA,OAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOT,kBAAmB,CAAA;gBACxBU,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASb,aAAc,CAAA;oBAAEc,EAAI,EAAA;AAAqB,iBAAA;AACpD,aAAA,CAAA;AACF,SAAA;AACA;;AAEC,UACDC,MAAQ,EAAA,CAACL,IAASA,GAAAA,IAAAA,IAAQ;AAC5B,KAAA,CAAA;IAGF,MAAMM,WAAAA,GAIFC,uBACF,OAAOC,IAAAA,GAAAA;AACL,QAAA,MAAMb,IAAkCX,QAAUwB,EAAAA,IAAAA,CAAAA;KAEpD,EAAA;AACEC,QAAAA,SAAAA,CAAAA,GAAAA;YACErB,UAAW,CAAA,2BAAA,CAAA;AACXS,YAAAA,MAAAA,CAAOa,OAAO,EAAA;AAChB,SAAA;AACAT,QAAAA,OAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOT,kBAAmB,CAAA;gBACxBU,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASb,aAAc,CAAA;oBAAEc,EAAI,EAAA;AAAqB,iBAAA;AACpD,aAAA,CAAA;AACF;AACF,KAAA,CAAA;IAGF,OAAO;AACLP,QAAAA,MAAAA;QACAc,YAAcL,EAAAA;AAChB,KAAA;AACF;;;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';
|
|
2
2
|
import { useIntl } from 'react-intl';
|
|
3
3
|
import { useQuery, useMutation } from 'react-query';
|
|
4
4
|
import { pluginId } from '../pluginId.mjs';
|
|
5
|
+
import { useTracking } from './useTracking.mjs';
|
|
5
6
|
|
|
6
7
|
const endpoint = `/${pluginId}/configuration`;
|
|
7
8
|
const queryKey = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConfig.mjs","sources":["../../../admin/src/hooks/useConfig.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useConfig.mjs","sources":["../../../admin/src/hooks/useConfig.ts"],"sourcesContent":["import { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, UseMutationResult, UseQueryResult } from 'react-query';\n\nimport { GetConfiguration, UpdateConfiguration } from '../../../shared/contracts/configuration';\nimport { pluginId } from '../pluginId';\n\nimport { useTracking } from './useTracking';\n\nconst endpoint = `/${pluginId}/configuration`;\nconst queryKey = [pluginId, 'configuration'];\n\nexport const useConfig = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { get, put } = useFetchClient();\n\n const config: UseQueryResult<\n GetConfiguration.Response['data']['data'] | GetConfiguration.Response['error']\n > = useQuery(\n queryKey,\n async () => {\n const res: GetConfiguration.Response = await get(endpoint);\n\n return res.data.data;\n },\n {\n onError() {\n return toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n },\n /**\n * We're cementing that we always expect an object to be returned.\n */\n select: (data) => data || {},\n }\n );\n\n const putMutation: UseMutationResult<\n void,\n UpdateConfiguration.Response['error'],\n UpdateConfiguration.Request['body']\n > = useMutation(\n async (body) => {\n await put<UpdateConfiguration.Response>(endpoint, body);\n },\n {\n onSuccess() {\n trackUsage('didEditMediaLibraryConfig');\n config.refetch();\n },\n onError() {\n return toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n return {\n config,\n mutateConfig: putMutation,\n };\n};\n"],"names":["endpoint","pluginId","queryKey","useConfig","trackUsage","useTracking","formatMessage","useIntl","toggleNotification","useNotification","get","put","useFetchClient","config","useQuery","res","data","onError","type","message","id","select","putMutation","useMutation","body","onSuccess","refetch","mutateConfig"],"mappings":";;;;;;AASA,MAAMA,WAAW,CAAC,CAAC,EAAEC,QAAAA,CAAS,cAAc,CAAC;AAC7C,MAAMC,QAAW,GAAA;AAACD,IAAAA,QAAAA;AAAU,IAAA;AAAgB,CAAA;MAE/BE,SAAY,GAAA,IAAA;IACvB,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;IACvB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAE,GAAGC,cAAAA,EAAAA;IAErB,MAAMC,MAAAA,GAEFC,SACFZ,QACA,EAAA,UAAA;QACE,MAAMa,GAAAA,GAAiC,MAAML,GAAIV,CAAAA,QAAAA,CAAAA;QAEjD,OAAOe,GAAAA,CAAIC,IAAI,CAACA,IAAI;KAEtB,EAAA;AACEC,QAAAA,OAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOT,kBAAmB,CAAA;gBACxBU,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASb,aAAc,CAAA;oBAAEc,EAAI,EAAA;AAAqB,iBAAA;AACpD,aAAA,CAAA;AACF,SAAA;AACA;;AAEC,UACDC,MAAQ,EAAA,CAACL,IAASA,GAAAA,IAAAA,IAAQ;AAC5B,KAAA,CAAA;IAGF,MAAMM,WAAAA,GAIFC,YACF,OAAOC,IAAAA,GAAAA;AACL,QAAA,MAAMb,IAAkCX,QAAUwB,EAAAA,IAAAA,CAAAA;KAEpD,EAAA;AACEC,QAAAA,SAAAA,CAAAA,GAAAA;YACErB,UAAW,CAAA,2BAAA,CAAA;AACXS,YAAAA,MAAAA,CAAOa,OAAO,EAAA;AAChB,SAAA;AACAT,QAAAA,OAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOT,kBAAmB,CAAA;gBACxBU,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASb,aAAc,CAAA;oBAAEc,EAAI,EAAA;AAAqB,iBAAA;AACpD,aAAA,CAAA;AACF;AACF,KAAA,CAAA;IAGF,OAAO;AACLP,QAAAA,MAAAA;QACAc,YAAcL,EAAAA;AAChB,KAAA;AACF;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
5
4
|
var qs = require('qs');
|
|
6
5
|
var useConfig = require('./useConfig.js');
|
|
6
|
+
var useTracking = require('./useTracking.js');
|
|
7
7
|
|
|
8
8
|
function _interopNamespaceDefault(e) {
|
|
9
9
|
var n = Object.create(null);
|
|
@@ -25,7 +25,7 @@ function _interopNamespaceDefault(e) {
|
|
|
25
25
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
26
26
|
|
|
27
27
|
const useModalQueryParams = (initialState)=>{
|
|
28
|
-
const { trackUsage } =
|
|
28
|
+
const { trackUsage } = useTracking.useTracking();
|
|
29
29
|
const { config: { data: config } } = useConfig.useConfig();
|
|
30
30
|
const [queryObject, setQueryObject] = React__namespace.useState({
|
|
31
31
|
page: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModalQueryParams.js","sources":["../../../admin/src/hooks/useModalQueryParams.ts"],"sourcesContent":["import * as React from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"useModalQueryParams.js","sources":["../../../admin/src/hooks/useModalQueryParams.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { stringify } from 'qs';\n\nimport { useConfig } from './useConfig';\nimport { useTracking } from './useTracking';\n\nimport type { Query, FilterCondition } from '../../../shared/contracts/files';\n\nexport const useModalQueryParams = (initialState?: Partial<Query>) => {\n const { trackUsage } = useTracking();\n const {\n config: { data: config },\n } = useConfig();\n\n const [queryObject, setQueryObject] = React.useState<Query>({\n page: 1,\n sort: 'updatedAt:DESC',\n pageSize: 10,\n filters: {\n $and: [],\n },\n ...initialState,\n });\n\n React.useEffect(() => {\n if (config && 'sort' in config && 'pageSize' in config) {\n setQueryObject((prevQuery) => ({\n ...prevQuery,\n sort: config.sort,\n pageSize: config.pageSize,\n }));\n }\n }, [config]);\n\n const handleChangeFilters = (nextFilters: FilterCondition<string>[]) => {\n if (nextFilters) {\n trackUsage('didFilterMediaLibraryElements', {\n location: 'content-manager',\n filter: Object.keys(nextFilters[nextFilters.length - 1])[0],\n });\n setQueryObject((prev) => ({ ...prev, page: 1, filters: { $and: nextFilters } }));\n }\n };\n\n const handleChangePageSize = (pageSize: Query['pageSize']) => {\n setQueryObject((prev) => ({\n ...prev,\n pageSize: typeof pageSize === 'string' ? parseInt(pageSize, 10) : pageSize,\n page: 1,\n }));\n };\n\n const handeChangePage = (page: Query['page']) => {\n setQueryObject((prev) => ({ ...prev, page }));\n };\n\n const handleChangeSort = (sort: Query['sort']) => {\n if (sort) {\n trackUsage('didSortMediaLibraryElements', {\n location: 'content-manager',\n sort,\n });\n setQueryObject((prev) => ({ ...prev, sort }));\n }\n };\n\n const handleChangeSearch = (_q: Query['_q'] | null) => {\n if (_q) {\n setQueryObject((prev) => ({ ...prev, _q, page: 1 }));\n } else {\n const newState: Query = { page: 1 };\n\n Object.keys(queryObject).forEach((key) => {\n if (!['page', '_q'].includes(key)) {\n (newState as Record<string, string | number | undefined>)[key] = (\n queryObject as Record<string, string | number | undefined>\n )[key];\n }\n });\n\n setQueryObject(newState);\n }\n };\n\n const handleChangeFolder = (folder: Query['folder'], folderPath: Query['folderPath']) => {\n setQueryObject((prev) => ({ ...prev, folder: folder ?? null, folderPath }));\n };\n\n return [\n { queryObject, rawQuery: stringify(queryObject, { encode: false }) },\n {\n onChangeFilters: handleChangeFilters,\n onChangeFolder: handleChangeFolder,\n onChangePage: handeChangePage,\n onChangePageSize: handleChangePageSize,\n onChangeSort: handleChangeSort,\n onChangeSearch: handleChangeSearch,\n },\n ];\n};\n"],"names":["useModalQueryParams","initialState","trackUsage","useTracking","config","data","useConfig","queryObject","setQueryObject","React","useState","page","sort","pageSize","filters","$and","useEffect","prevQuery","handleChangeFilters","nextFilters","location","filter","Object","keys","length","prev","handleChangePageSize","parseInt","handeChangePage","handleChangeSort","handleChangeSearch","_q","newState","forEach","key","includes","handleChangeFolder","folder","folderPath","rawQuery","stringify","encode","onChangeFilters","onChangeFolder","onChangePage","onChangePageSize","onChangeSort","onChangeSearch"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { useTracking } from '@strapi/admin/strapi-admin';
|
|
3
2
|
import { stringify } from 'qs';
|
|
4
3
|
import { useConfig } from './useConfig.mjs';
|
|
4
|
+
import { useTracking } from './useTracking.mjs';
|
|
5
5
|
|
|
6
6
|
const useModalQueryParams = (initialState)=>{
|
|
7
7
|
const { trackUsage } = useTracking();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModalQueryParams.mjs","sources":["../../../admin/src/hooks/useModalQueryParams.ts"],"sourcesContent":["import * as React from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"useModalQueryParams.mjs","sources":["../../../admin/src/hooks/useModalQueryParams.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { stringify } from 'qs';\n\nimport { useConfig } from './useConfig';\nimport { useTracking } from './useTracking';\n\nimport type { Query, FilterCondition } from '../../../shared/contracts/files';\n\nexport const useModalQueryParams = (initialState?: Partial<Query>) => {\n const { trackUsage } = useTracking();\n const {\n config: { data: config },\n } = useConfig();\n\n const [queryObject, setQueryObject] = React.useState<Query>({\n page: 1,\n sort: 'updatedAt:DESC',\n pageSize: 10,\n filters: {\n $and: [],\n },\n ...initialState,\n });\n\n React.useEffect(() => {\n if (config && 'sort' in config && 'pageSize' in config) {\n setQueryObject((prevQuery) => ({\n ...prevQuery,\n sort: config.sort,\n pageSize: config.pageSize,\n }));\n }\n }, [config]);\n\n const handleChangeFilters = (nextFilters: FilterCondition<string>[]) => {\n if (nextFilters) {\n trackUsage('didFilterMediaLibraryElements', {\n location: 'content-manager',\n filter: Object.keys(nextFilters[nextFilters.length - 1])[0],\n });\n setQueryObject((prev) => ({ ...prev, page: 1, filters: { $and: nextFilters } }));\n }\n };\n\n const handleChangePageSize = (pageSize: Query['pageSize']) => {\n setQueryObject((prev) => ({\n ...prev,\n pageSize: typeof pageSize === 'string' ? parseInt(pageSize, 10) : pageSize,\n page: 1,\n }));\n };\n\n const handeChangePage = (page: Query['page']) => {\n setQueryObject((prev) => ({ ...prev, page }));\n };\n\n const handleChangeSort = (sort: Query['sort']) => {\n if (sort) {\n trackUsage('didSortMediaLibraryElements', {\n location: 'content-manager',\n sort,\n });\n setQueryObject((prev) => ({ ...prev, sort }));\n }\n };\n\n const handleChangeSearch = (_q: Query['_q'] | null) => {\n if (_q) {\n setQueryObject((prev) => ({ ...prev, _q, page: 1 }));\n } else {\n const newState: Query = { page: 1 };\n\n Object.keys(queryObject).forEach((key) => {\n if (!['page', '_q'].includes(key)) {\n (newState as Record<string, string | number | undefined>)[key] = (\n queryObject as Record<string, string | number | undefined>\n )[key];\n }\n });\n\n setQueryObject(newState);\n }\n };\n\n const handleChangeFolder = (folder: Query['folder'], folderPath: Query['folderPath']) => {\n setQueryObject((prev) => ({ ...prev, folder: folder ?? null, folderPath }));\n };\n\n return [\n { queryObject, rawQuery: stringify(queryObject, { encode: false }) },\n {\n onChangeFilters: handleChangeFilters,\n onChangeFolder: handleChangeFolder,\n onChangePage: handeChangePage,\n onChangePageSize: handleChangePageSize,\n onChangeSort: handleChangeSort,\n onChangeSearch: handleChangeSearch,\n },\n ];\n};\n"],"names":["useModalQueryParams","initialState","trackUsage","useTracking","config","data","useConfig","queryObject","setQueryObject","React","useState","page","sort","pageSize","filters","$and","useEffect","prevQuery","handleChangeFilters","nextFilters","location","filter","Object","keys","length","prev","handleChangePageSize","parseInt","handeChangePage","handleChangeSort","handleChangeSearch","_q","newState","forEach","key","includes","handleChangeFolder","folder","folderPath","rawQuery","stringify","encode","onChangeFilters","onChangeFolder","onChangePage","onChangePageSize","onChangeSort","onChangeSearch"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
4
|
+
var useSettings = require('./useSettings.js');
|
|
5
|
+
|
|
6
|
+
const useTracking = ()=>{
|
|
7
|
+
const { trackUsage: trackStrapiUsage } = strapiAdmin.useTracking();
|
|
8
|
+
const { data } = useSettings.useSettings();
|
|
9
|
+
const trackUsage = (event, properties)=>{
|
|
10
|
+
return trackStrapiUsage(event, {
|
|
11
|
+
...properties,
|
|
12
|
+
isAIMediaLibraryConfigured: data?.aiMetadata
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
16
|
+
trackUsage
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.useTracking = useTracking;
|
|
21
|
+
//# sourceMappingURL=useTracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTracking.js","sources":["../../../admin/src/hooks/useTracking.ts"],"sourcesContent":["import { useTracking as useStrapiTracking, TrackingEvent } from '@strapi/admin/strapi-admin';\n\nimport { useSettings } from '../hooks/useSettings';\n\nexport const useTracking = () => {\n const { trackUsage: trackStrapiUsage } = useStrapiTracking();\n const { data } = useSettings();\n\n const trackUsage = <TEvent extends TrackingEvent>(\n event: TEvent['name'],\n properties?: TEvent['properties']\n ) => {\n return trackStrapiUsage(event, {\n ...properties,\n isAIMediaLibraryConfigured: data?.aiMetadata,\n } as TEvent['properties']);\n };\n\n return { trackUsage };\n};\n"],"names":["useTracking","trackUsage","trackStrapiUsage","useStrapiTracking","data","useSettings","event","properties","isAIMediaLibraryConfigured","aiMetadata"],"mappings":";;;;;MAIaA,WAAc,GAAA,IAAA;AACzB,IAAA,MAAM,EAAEC,UAAAA,EAAYC,gBAAgB,EAAE,GAAGC,uBAAAA,EAAAA;IACzC,MAAM,EAAEC,IAAI,EAAE,GAAGC,uBAAAA,EAAAA;IAEjB,MAAMJ,UAAAA,GAAa,CACjBK,KACAC,EAAAA,UAAAA,GAAAA;AAEA,QAAA,OAAOL,iBAAiBI,KAAO,EAAA;AAC7B,YAAA,GAAGC,UAAU;AACbC,YAAAA,0BAAAA,EAA4BJ,IAAMK,EAAAA;AACpC,SAAA,CAAA;AACF,KAAA;IAEA,OAAO;AAAER,QAAAA;AAAW,KAAA;AACtB;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useTracking as useTracking$1 } from '@strapi/admin/strapi-admin';
|
|
2
|
+
import { useSettings } from './useSettings.mjs';
|
|
3
|
+
|
|
4
|
+
const useTracking = ()=>{
|
|
5
|
+
const { trackUsage: trackStrapiUsage } = useTracking$1();
|
|
6
|
+
const { data } = useSettings();
|
|
7
|
+
const trackUsage = (event, properties)=>{
|
|
8
|
+
return trackStrapiUsage(event, {
|
|
9
|
+
...properties,
|
|
10
|
+
isAIMediaLibraryConfigured: data?.aiMetadata
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
return {
|
|
14
|
+
trackUsage
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { useTracking };
|
|
19
|
+
//# sourceMappingURL=useTracking.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTracking.mjs","sources":["../../../admin/src/hooks/useTracking.ts"],"sourcesContent":["import { useTracking as useStrapiTracking, TrackingEvent } from '@strapi/admin/strapi-admin';\n\nimport { useSettings } from '../hooks/useSettings';\n\nexport const useTracking = () => {\n const { trackUsage: trackStrapiUsage } = useStrapiTracking();\n const { data } = useSettings();\n\n const trackUsage = <TEvent extends TrackingEvent>(\n event: TEvent['name'],\n properties?: TEvent['properties']\n ) => {\n return trackStrapiUsage(event, {\n ...properties,\n isAIMediaLibraryConfigured: data?.aiMetadata,\n } as TEvent['properties']);\n };\n\n return { trackUsage };\n};\n"],"names":["useTracking","trackUsage","trackStrapiUsage","useStrapiTracking","data","useSettings","event","properties","isAIMediaLibraryConfigured","aiMetadata"],"mappings":";;;MAIaA,WAAc,GAAA,IAAA;AACzB,IAAA,MAAM,EAAEC,UAAAA,EAAYC,gBAAgB,EAAE,GAAGC,aAAAA,EAAAA;IACzC,MAAM,EAAEC,IAAI,EAAE,GAAGC,WAAAA,EAAAA;IAEjB,MAAMJ,UAAAA,GAAa,CACjBK,KACAC,EAAAA,UAAAA,GAAAA;AAEA,QAAA,OAAOL,iBAAiBI,KAAO,EAAA;AAC7B,YAAA,GAAGC,UAAU;AACbC,YAAAA,0BAAAA,EAA4BJ,IAAMK,EAAAA;AACpC,SAAA,CAAA;AACF,KAAA;IAEA,OAAO;AAAER,QAAAA;AAAW,KAAA;AACtB;;;;"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var name = "@strapi/upload";
|
|
6
|
-
var version = "5.
|
|
6
|
+
var version = "5.30.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 = {
|
|
@@ -67,8 +67,8 @@ var dependencies = {
|
|
|
67
67
|
"@reduxjs/toolkit": "1.9.7",
|
|
68
68
|
"@strapi/design-system": "2.0.0-rc.30",
|
|
69
69
|
"@strapi/icons": "2.0.0-rc.30",
|
|
70
|
-
"@strapi/provider-upload-local": "5.
|
|
71
|
-
"@strapi/utils": "5.
|
|
70
|
+
"@strapi/provider-upload-local": "5.30.0",
|
|
71
|
+
"@strapi/utils": "5.30.0",
|
|
72
72
|
"byte-size": "8.1.1",
|
|
73
73
|
cropperjs: "1.6.1",
|
|
74
74
|
"date-fns": "2.30.0",
|
|
@@ -91,8 +91,8 @@ var dependencies = {
|
|
|
91
91
|
zod: "3.25.67"
|
|
92
92
|
};
|
|
93
93
|
var devDependencies = {
|
|
94
|
-
"@strapi/admin": "5.
|
|
95
|
-
"@strapi/types": "5.
|
|
94
|
+
"@strapi/admin": "5.30.0",
|
|
95
|
+
"@strapi/types": "5.30.0",
|
|
96
96
|
"@testing-library/dom": "10.1.0",
|
|
97
97
|
"@testing-library/react": "15.0.7",
|
|
98
98
|
"@testing-library/user-event": "14.5.2",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "@strapi/upload";
|
|
2
|
-
var version = "5.
|
|
2
|
+
var version = "5.30.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 = {
|
|
@@ -63,8 +63,8 @@ var dependencies = {
|
|
|
63
63
|
"@reduxjs/toolkit": "1.9.7",
|
|
64
64
|
"@strapi/design-system": "2.0.0-rc.30",
|
|
65
65
|
"@strapi/icons": "2.0.0-rc.30",
|
|
66
|
-
"@strapi/provider-upload-local": "5.
|
|
67
|
-
"@strapi/utils": "5.
|
|
66
|
+
"@strapi/provider-upload-local": "5.30.0",
|
|
67
|
+
"@strapi/utils": "5.30.0",
|
|
68
68
|
"byte-size": "8.1.1",
|
|
69
69
|
cropperjs: "1.6.1",
|
|
70
70
|
"date-fns": "2.30.0",
|
|
@@ -87,8 +87,8 @@ var dependencies = {
|
|
|
87
87
|
zod: "3.25.67"
|
|
88
88
|
};
|
|
89
89
|
var devDependencies = {
|
|
90
|
-
"@strapi/admin": "5.
|
|
91
|
-
"@strapi/types": "5.
|
|
90
|
+
"@strapi/admin": "5.30.0",
|
|
91
|
+
"@strapi/types": "5.30.0",
|
|
92
92
|
"@testing-library/dom": "10.1.0",
|
|
93
93
|
"@testing-library/react": "15.0.7",
|
|
94
94
|
"@testing-library/user-event": "14.5.2",
|
|
@@ -8,6 +8,7 @@ var icons = require('@strapi/icons');
|
|
|
8
8
|
var reactIntl = require('react-intl');
|
|
9
9
|
var FilterList = require('../../../../components/FilterList/FilterList.js');
|
|
10
10
|
var FilterPopover = require('../../../../components/FilterPopover/FilterPopover.js');
|
|
11
|
+
var useTracking = require('../../../../hooks/useTracking.js');
|
|
11
12
|
var displayedFilters = require('../../../../utils/displayedFilters.js');
|
|
12
13
|
require('byte-size');
|
|
13
14
|
require('date-fns');
|
|
@@ -37,7 +38,7 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
|
37
38
|
const Filters = ()=>{
|
|
38
39
|
const [open, setOpen] = React__namespace.useState(false);
|
|
39
40
|
const { formatMessage } = reactIntl.useIntl();
|
|
40
|
-
const { trackUsage } =
|
|
41
|
+
const { trackUsage } = useTracking.useTracking();
|
|
41
42
|
const [{ query }, setQuery] = strapiAdmin.useQueryParams();
|
|
42
43
|
const filters = query?.filters?.$and || [];
|
|
43
44
|
const handleRemoveFilter = (nextFilters)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Filters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"Filters.js","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Filters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport { Button, Popover } from '@strapi/design-system';\nimport { Filter } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterList } from '../../../../components/FilterList/FilterList';\nimport { FilterPopover } from '../../../../components/FilterPopover/FilterPopover';\nimport { useTracking } from '../../../../hooks/useTracking';\nimport { displayedFilters } from '../../../../utils';\n\nimport type { Query } from '../../../../../../shared/contracts/files';\nimport type { FilterListProps } from '../../../../components/FilterList/FilterList';\nimport type { FilterPopoverProps } from '../../../../components/FilterPopover/FilterPopover';\n\nexport const Filters = () => {\n const [open, setOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }, setQuery] = useQueryParams<Query>();\n const filters = query?.filters?.$and || [];\n\n const handleRemoveFilter: FilterListProps['onRemoveFilter'] = (nextFilters) => {\n setQuery({ filters: { $and: nextFilters }, page: 1 } as Query);\n };\n\n const handleSubmit: FilterPopoverProps['onSubmit'] = (filters) => {\n trackUsage('didFilterMediaLibraryElements', {\n location: 'content-manager',\n filter: Object.keys(filters[filters.length - 1])[0],\n });\n setQuery({ filters: { $and: filters }, page: 1 } as Query);\n };\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger>\n <Button variant=\"tertiary\" startIcon={<Filter />} size=\"S\">\n {formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}\n </Button>\n </Popover.Trigger>\n <FilterPopover\n displayedFilters={displayedFilters}\n filters={filters}\n onSubmit={handleSubmit}\n onToggle={setOpen as FilterPopoverProps['onToggle']}\n />\n <FilterList\n appliedFilters={filters as FilterListProps['appliedFilters']}\n filtersSchema={displayedFilters}\n onRemoveFilter={handleRemoveFilter}\n />\n </Popover.Root>\n );\n};\n"],"names":["Filters","open","setOpen","React","useState","formatMessage","useIntl","trackUsage","useTracking","query","setQuery","useQueryParams","filters","$and","handleRemoveFilter","nextFilters","page","handleSubmit","location","filter","Object","keys","length","_jsxs","Popover","Root","onOpenChange","_jsx","Trigger","Button","variant","startIcon","Filter","size","id","defaultMessage","FilterPopover","displayedFilters","onSubmit","onToggle","FilterList","appliedFilters","filtersSchema","onRemoveFilter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBaA,OAAU,GAAA,IAAA;AACrB,IAAA,MAAM,CAACC,IAAMC,EAAAA,OAAAA,CAAQ,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IACvC,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,uBAAAA,EAAAA;AACvB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,0BAAAA,EAAAA;AAC9B,IAAA,MAAMC,OAAUH,GAAAA,KAAAA,EAAOG,OAASC,EAAAA,IAAAA,IAAQ,EAAE;AAE1C,IAAA,MAAMC,qBAAwD,CAACC,WAAAA,GAAAA;QAC7DL,QAAS,CAAA;YAAEE,OAAS,EAAA;gBAAEC,IAAME,EAAAA;AAAY,aAAA;YAAGC,IAAM,EAAA;AAAE,SAAA,CAAA;AACrD,KAAA;AAEA,IAAA,MAAMC,eAA+C,CAACL,OAAAA,GAAAA;AACpDL,QAAAA,UAAAA,CAAW,+BAAiC,EAAA;YAC1CW,QAAU,EAAA,iBAAA;YACVC,MAAQC,EAAAA,MAAAA,CAAOC,IAAI,CAACT,OAAO,CAACA,OAAQU,CAAAA,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAE;AACrD,SAAA,CAAA;QACAZ,QAAS,CAAA;YAAEE,OAAS,EAAA;gBAAEC,IAAMD,EAAAA;AAAQ,aAAA;YAAGI,IAAM,EAAA;AAAE,SAAA,CAAA;AACjD,KAAA;IAEA,qBACEO,eAAA,CAACC,qBAAQC,IAAI,EAAA;QAACxB,IAAMA,EAAAA,IAAAA;QAAMyB,YAAcxB,EAAAA,OAAAA;;AACtC,0BAAAyB,cAAA,CAACH,qBAAQI,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAD,cAACE,CAAAA,mBAAAA,EAAAA;oBAAOC,OAAQ,EAAA,UAAA;AAAWC,oBAAAA,SAAAA,gBAAWJ,cAACK,CAAAA,YAAAA,EAAAA,EAAAA,CAAAA;oBAAWC,IAAK,EAAA,GAAA;8BACpD5B,aAAc,CAAA;wBAAE6B,EAAI,EAAA,mBAAA;wBAAqBC,cAAgB,EAAA;AAAU,qBAAA;;;0BAGxER,cAACS,CAAAA,2BAAAA,EAAAA;gBACCC,gBAAkBA,EAAAA,iCAAAA;gBAClBzB,OAASA,EAAAA,OAAAA;gBACT0B,QAAUrB,EAAAA,YAAAA;gBACVsB,QAAUrC,EAAAA;;0BAEZyB,cAACa,CAAAA,qBAAAA,EAAAA;gBACCC,cAAgB7B,EAAAA,OAAAA;gBAChB8B,aAAeL,EAAAA,iCAAAA;gBACfM,cAAgB7B,EAAAA;;;;AAIxB;;;;"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { useQueryParams } from '@strapi/admin/strapi-admin';
|
|
4
4
|
import { Popover, Button } from '@strapi/design-system';
|
|
5
5
|
import { Filter } from '@strapi/icons';
|
|
6
6
|
import { useIntl } from 'react-intl';
|
|
7
7
|
import { FilterList } from '../../../../components/FilterList/FilterList.mjs';
|
|
8
8
|
import { FilterPopover } from '../../../../components/FilterPopover/FilterPopover.mjs';
|
|
9
|
+
import { useTracking } from '../../../../hooks/useTracking.mjs';
|
|
9
10
|
import { displayedFilters } from '../../../../utils/displayedFilters.mjs';
|
|
10
11
|
import 'byte-size';
|
|
11
12
|
import 'date-fns';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.mjs","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Filters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"Filters.mjs","sources":["../../../../../../admin/src/pages/App/MediaLibrary/components/Filters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams } from '@strapi/admin/strapi-admin';\nimport { Button, Popover } from '@strapi/design-system';\nimport { Filter } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterList } from '../../../../components/FilterList/FilterList';\nimport { FilterPopover } from '../../../../components/FilterPopover/FilterPopover';\nimport { useTracking } from '../../../../hooks/useTracking';\nimport { displayedFilters } from '../../../../utils';\n\nimport type { Query } from '../../../../../../shared/contracts/files';\nimport type { FilterListProps } from '../../../../components/FilterList/FilterList';\nimport type { FilterPopoverProps } from '../../../../components/FilterPopover/FilterPopover';\n\nexport const Filters = () => {\n const [open, setOpen] = React.useState(false);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }, setQuery] = useQueryParams<Query>();\n const filters = query?.filters?.$and || [];\n\n const handleRemoveFilter: FilterListProps['onRemoveFilter'] = (nextFilters) => {\n setQuery({ filters: { $and: nextFilters }, page: 1 } as Query);\n };\n\n const handleSubmit: FilterPopoverProps['onSubmit'] = (filters) => {\n trackUsage('didFilterMediaLibraryElements', {\n location: 'content-manager',\n filter: Object.keys(filters[filters.length - 1])[0],\n });\n setQuery({ filters: { $and: filters }, page: 1 } as Query);\n };\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger>\n <Button variant=\"tertiary\" startIcon={<Filter />} size=\"S\">\n {formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}\n </Button>\n </Popover.Trigger>\n <FilterPopover\n displayedFilters={displayedFilters}\n filters={filters}\n onSubmit={handleSubmit}\n onToggle={setOpen as FilterPopoverProps['onToggle']}\n />\n <FilterList\n appliedFilters={filters as FilterListProps['appliedFilters']}\n filtersSchema={displayedFilters}\n onRemoveFilter={handleRemoveFilter}\n />\n </Popover.Root>\n );\n};\n"],"names":["Filters","open","setOpen","React","useState","formatMessage","useIntl","trackUsage","useTracking","query","setQuery","useQueryParams","filters","$and","handleRemoveFilter","nextFilters","page","handleSubmit","location","filter","Object","keys","length","_jsxs","Popover","Root","onOpenChange","_jsx","Trigger","Button","variant","startIcon","Filter","size","id","defaultMessage","FilterPopover","displayedFilters","onSubmit","onToggle","FilterList","appliedFilters","filtersSchema","onRemoveFilter"],"mappings":";;;;;;;;;;;;;;;;MAgBaA,OAAU,GAAA,IAAA;AACrB,IAAA,MAAM,CAACC,IAAMC,EAAAA,OAAAA,CAAQ,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IACvC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AACvB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,EAAEC,SAAS,GAAGC,cAAAA,EAAAA;AAC9B,IAAA,MAAMC,OAAUH,GAAAA,KAAAA,EAAOG,OAASC,EAAAA,IAAAA,IAAQ,EAAE;AAE1C,IAAA,MAAMC,qBAAwD,CAACC,WAAAA,GAAAA;QAC7DL,QAAS,CAAA;YAAEE,OAAS,EAAA;gBAAEC,IAAME,EAAAA;AAAY,aAAA;YAAGC,IAAM,EAAA;AAAE,SAAA,CAAA;AACrD,KAAA;AAEA,IAAA,MAAMC,eAA+C,CAACL,OAAAA,GAAAA;AACpDL,QAAAA,UAAAA,CAAW,+BAAiC,EAAA;YAC1CW,QAAU,EAAA,iBAAA;YACVC,MAAQC,EAAAA,MAAAA,CAAOC,IAAI,CAACT,OAAO,CAACA,OAAQU,CAAAA,MAAM,GAAG,CAAA,CAAE,CAAC,CAAC,CAAE;AACrD,SAAA,CAAA;QACAZ,QAAS,CAAA;YAAEE,OAAS,EAAA;gBAAEC,IAAMD,EAAAA;AAAQ,aAAA;YAAGI,IAAM,EAAA;AAAE,SAAA,CAAA;AACjD,KAAA;IAEA,qBACEO,IAAA,CAACC,QAAQC,IAAI,EAAA;QAACxB,IAAMA,EAAAA,IAAAA;QAAMyB,YAAcxB,EAAAA,OAAAA;;AACtC,0BAAAyB,GAAA,CAACH,QAAQI,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAD,GAACE,CAAAA,MAAAA,EAAAA;oBAAOC,OAAQ,EAAA,UAAA;AAAWC,oBAAAA,SAAAA,gBAAWJ,GAACK,CAAAA,MAAAA,EAAAA,EAAAA,CAAAA;oBAAWC,IAAK,EAAA,GAAA;8BACpD5B,aAAc,CAAA;wBAAE6B,EAAI,EAAA,mBAAA;wBAAqBC,cAAgB,EAAA;AAAU,qBAAA;;;0BAGxER,GAACS,CAAAA,aAAAA,EAAAA;gBACCC,gBAAkBA,EAAAA,gBAAAA;gBAClBzB,OAASA,EAAAA,OAAAA;gBACT0B,QAAUrB,EAAAA,YAAAA;gBACVsB,QAAUrC,EAAAA;;0BAEZyB,GAACa,CAAAA,UAAAA,EAAAA;gBACCC,cAAgB7B,EAAAA,OAAAA;gBAChB8B,aAAeL,EAAAA,gBAAAA;gBACfM,cAAgB7B,EAAAA;;;;AAIxB;;;;"}
|
|
@@ -71,7 +71,12 @@ const SettingsPage = ()=>{
|
|
|
71
71
|
});
|
|
72
72
|
},
|
|
73
73
|
onError (err) {
|
|
74
|
-
|
|
74
|
+
toggleNotification({
|
|
75
|
+
type: 'danger',
|
|
76
|
+
message: err.message || formatMessage({
|
|
77
|
+
id: 'notification.error'
|
|
78
|
+
})
|
|
79
|
+
});
|
|
75
80
|
}
|
|
76
81
|
});
|
|
77
82
|
const handleSubmit = async (e)=>{
|
|
@@ -187,15 +192,15 @@ const SettingsPage = ()=>{
|
|
|
187
192
|
justifyContent: 'center',
|
|
188
193
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Root, {
|
|
189
194
|
name: "aiMetadata",
|
|
190
|
-
|
|
195
|
+
minWidth: "200px",
|
|
191
196
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Toggle, {
|
|
192
197
|
checked: modifiedData?.aiMetadata,
|
|
193
198
|
offLabel: formatMessage({
|
|
194
|
-
id: 'app.components.ToggleCheckbox.
|
|
199
|
+
id: 'app.components.ToggleCheckbox.disabled-label',
|
|
195
200
|
defaultMessage: 'Disabled'
|
|
196
201
|
}),
|
|
197
202
|
onLabel: formatMessage({
|
|
198
|
-
id: 'app.components.ToggleCheckbox.
|
|
203
|
+
id: 'app.components.ToggleCheckbox.enabled-label',
|
|
199
204
|
defaultMessage: 'Enabled'
|
|
200
205
|
}),
|
|
201
206
|
onChange: (e)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsPage.js","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err) {\n console.error(err);\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" width={'158px'}>\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","console","error","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","width","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingsPage.js","sources":["../../../../admin/src/pages/SettingsPage/SettingsPage.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page, useNotification, useFetchClient, Layouts } from '@strapi/admin/strapi-admin';\nimport { useAIAvailability } from '@strapi/admin/strapi-admin/ee';\nimport { Box, Button, Flex, Grid, Toggle, Typography, Field } from '@strapi/design-system';\nimport { Check, Sparkle } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\nimport { useMutation } from 'react-query';\n\nimport { UpdateSettings } from '../../../../shared/contracts/settings';\nimport { PERMISSIONS } from '../../constants';\nimport { useSettings } from '../../hooks/useSettings';\nimport { getTrad } from '../../utils';\n\nimport { init } from './init';\nimport { initialState, reducer } from './reducer';\n\nimport type { InitialState } from './reducer';\n\nexport const SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { put } = useFetchClient();\n\n const [{ initialData, modifiedData }, dispatch] = React.useReducer(reducer, initialState, init);\n\n const { data, isLoading, refetch } = useSettings();\n const isAIAvailable = useAIAvailability();\n\n React.useEffect(() => {\n if (data) {\n dispatch({\n type: 'GET_DATA_SUCCEEDED',\n data,\n });\n }\n }, [data]);\n\n const isSaveButtonDisabled = isEqual(initialData, modifiedData);\n\n const { mutateAsync, isLoading: isSubmitting } = useMutation<\n UpdateSettings.Response['data'],\n UpdateSettings.Response['error'],\n UpdateSettings.Request['body']\n >(\n async (body) => {\n const { data } = await put('/upload/settings', body);\n\n return data;\n },\n {\n onSuccess() {\n refetch();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.form.success.fields' }),\n });\n },\n onError(err: any) {\n toggleNotification({\n type: 'danger',\n message: err.message || formatMessage({ id: 'notification.error' }),\n });\n },\n }\n );\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n if (isSaveButtonDisabled) {\n return;\n }\n\n await mutateAsync(modifiedData!);\n };\n\n const handleChange = ({\n target: { name, value },\n }: {\n target: { name: keyof NonNullable<InitialState['initialData']>; value: boolean };\n }) => {\n dispatch({\n type: 'ON_CHANGE',\n keys: name,\n value,\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Page.Title>\n {formatMessage({\n id: getTrad('page.title'),\n defaultMessage: 'Settings - Media Library',\n })}\n </Page.Title>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('settings.header.label'),\n defaultMessage: 'Media Library',\n })}\n primaryAction={\n <Button\n disabled={isSaveButtonDisabled}\n loading={isSubmitting}\n type=\"submit\"\n startIcon={<Check />}\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n }\n subtitle={formatMessage({\n id: getTrad('settings.sub-header.label'),\n defaultMessage: 'Configure the settings for the Media Library',\n })}\n />\n <Layouts.Content>\n <Layouts.Root>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {isAIAvailable && (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={6}>\n <Grid.Item col={8} s={12} direction=\"column\" alignItems=\"stretch\">\n <Flex gap={2}>\n <Box color=\"alternative700\">\n <Sparkle />\n </Box>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.label'),\n defaultMessage:\n 'Generate AI captions and alt texts automatically on upload!',\n })}\n </Typography>\n </Flex>\n <Flex paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('settings.form.aiMetadata.description'),\n defaultMessage:\n 'Enable this feature to save time, optimize your SEO and increase accessibility by letting our AI generate captions and alternative texts for you.',\n })}\n </Typography>\n </Flex>\n </Grid.Item>\n <Grid.Item\n col={4}\n s={12}\n direction=\"column\"\n alignItems=\"end\"\n justifyContent={'center'}\n >\n <Field.Root name=\"aiMetadata\" minWidth=\"200px\">\n <Toggle\n checked={modifiedData?.aiMetadata}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.disabled-label',\n defaultMessage: 'Disabled',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.enabled-label',\n defaultMessage: 'Enabled',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'aiMetadata', value: e.target.checked },\n });\n }}\n />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n )}\n\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: getTrad('settings.blockTitle'),\n defaultMessage: 'Asset management',\n })}\n </Typography>\n </Flex>\n <Grid.Root gap={6}>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.responsiveDimensions.description'),\n defaultMessage:\n 'Enabling this option will generate multiple formats (small, medium and large) of the uploaded asset.',\n })}\n name=\"responsiveDimensions\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.responsiveDimensions.label'),\n defaultMessage: 'Responsive friendly upload',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.responsiveDimensions}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'responsiveDimensions', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.sizeOptimization.description'),\n defaultMessage:\n 'Enabling this option will reduce the image size and slightly reduce its quality.',\n })}\n name=\"sizeOptimization\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.sizeOptimization.label'),\n defaultMessage: 'Size optimization',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.sizeOptimization}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'sizeOptimization', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} s={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n hint={formatMessage({\n id: getTrad('settings.form.autoOrientation.description'),\n defaultMessage:\n 'Enabling this option will automatically rotate the image according to EXIF orientation tag.',\n })}\n name=\"autoOrientation\"\n >\n <Field.Label>\n {formatMessage({\n id: getTrad('settings.form.autoOrientation.label'),\n defaultMessage: 'Auto orientation',\n })}\n </Field.Label>\n <Toggle\n checked={modifiedData?.autoOrientation}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'Off',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'On',\n })}\n onChange={(e) => {\n handleChange({\n target: { name: 'autoOrientation', value: e.target.checked },\n });\n }}\n />\n <Field.Hint />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n </Flex>\n </Layouts.Root>\n </Layouts.Content>\n </form>\n </Page.Main>\n );\n};\n\nexport const ProtectedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.settings}>\n <SettingsPage />\n </Page.Protect>\n);\n"],"names":["SettingsPage","formatMessage","useIntl","toggleNotification","useNotification","put","useFetchClient","initialData","modifiedData","dispatch","React","useReducer","reducer","initialState","init","data","isLoading","refetch","useSettings","isAIAvailable","useAIAvailability","useEffect","type","isSaveButtonDisabled","isEqual","mutateAsync","isSubmitting","useMutation","body","onSuccess","message","id","onError","err","handleSubmit","e","preventDefault","handleChange","target","name","value","keys","_jsx","Page","Loading","_jsxs","Main","tabIndex","Title","getTrad","defaultMessage","form","onSubmit","Layouts","Header","title","primaryAction","Button","disabled","loading","startIcon","Check","size","subtitle","Content","Root","Flex","direction","alignItems","gap","Box","background","padding","shadow","hasRadius","Grid","Item","col","s","color","Sparkle","Typography","variant","tag","paddingTop","textColor","justifyContent","Field","minWidth","Toggle","checked","aiMetadata","offLabel","onLabel","onChange","hint","Label","responsiveDimensions","Hint","sizeOptimization","autoOrientation","ProtectedSettingsPage","Protect","permissions","PERMISSIONS","settings"],"mappings":"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"}
|
|
@@ -50,7 +50,12 @@ const SettingsPage = ()=>{
|
|
|
50
50
|
});
|
|
51
51
|
},
|
|
52
52
|
onError (err) {
|
|
53
|
-
|
|
53
|
+
toggleNotification({
|
|
54
|
+
type: 'danger',
|
|
55
|
+
message: err.message || formatMessage({
|
|
56
|
+
id: 'notification.error'
|
|
57
|
+
})
|
|
58
|
+
});
|
|
54
59
|
}
|
|
55
60
|
});
|
|
56
61
|
const handleSubmit = async (e)=>{
|
|
@@ -166,15 +171,15 @@ const SettingsPage = ()=>{
|
|
|
166
171
|
justifyContent: 'center',
|
|
167
172
|
children: /*#__PURE__*/ jsx(Field.Root, {
|
|
168
173
|
name: "aiMetadata",
|
|
169
|
-
|
|
174
|
+
minWidth: "200px",
|
|
170
175
|
children: /*#__PURE__*/ jsx(Toggle, {
|
|
171
176
|
checked: modifiedData?.aiMetadata,
|
|
172
177
|
offLabel: formatMessage({
|
|
173
|
-
id: 'app.components.ToggleCheckbox.
|
|
178
|
+
id: 'app.components.ToggleCheckbox.disabled-label',
|
|
174
179
|
defaultMessage: 'Disabled'
|
|
175
180
|
}),
|
|
176
181
|
onLabel: formatMessage({
|
|
177
|
-
id: 'app.components.ToggleCheckbox.
|
|
182
|
+
id: 'app.components.ToggleCheckbox.enabled-label',
|
|
178
183
|
defaultMessage: 'Enabled'
|
|
179
184
|
}),
|
|
180
185
|
onChange: (e)=>{
|