{"version":3,"file":"useBulkEdit.mjs","sources":["../../../admin/src/hooks/useBulkEdit.ts"],"sourcesContent":["import { useNotification, useFetchClient } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient } from 'react-query';\n\nimport { BulkUpdateFiles } from '../../../shared/contracts/files';\nimport { pluginId } from '../pluginId';\nimport { getTrad } from '../utils';\n\ninterface FileInfoUpdate {\n  name: string;\n  alternativeText: string | null;\n  caption: string | null;\n  folder: number | null;\n}\n\ninterface BulkEditParams {\n  updates: Array<{\n    id: number;\n    fileInfo: FileInfoUpdate;\n  }>;\n}\n\nexport const useBulkEdit = () => {\n  const { formatMessage } = useIntl();\n  const { toggleNotification } = useNotification();\n  const queryClient = useQueryClient();\n  const { post } = useFetchClient();\n\n  const bulkEditQuery = ({ updates }: BulkEditParams) => {\n    return post('/upload/actions/bulk-update', { updates });\n  };\n\n  const mutation = useMutation<\n    BulkUpdateFiles.Response,\n    BulkUpdateFiles.Response['error'],\n    BulkEditParams\n  >(bulkEditQuery, {\n    onSuccess(res) {\n      const { data } = res;\n\n      if (data && data.length > 0) {\n        queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n        queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n        queryClient.refetchQueries([pluginId, 'folders'], { active: true });\n      }\n\n      toggleNotification({\n        type: 'success',\n        message: formatMessage({\n          id: getTrad('modal.edit.success-label'),\n          defaultMessage: 'Files have been successfully updated.',\n        }),\n      });\n    },\n  });\n\n  const edit = (\n    updates: Array<{\n      id: number;\n      fileInfo: FileInfoUpdate;\n    }>\n  ) => mutation.mutateAsync({ updates });\n\n  return { ...mutation, edit };\n};\n"],"names":["useBulkEdit","formatMessage","useIntl","toggleNotification","useNotification","queryClient","useQueryClient","post","useFetchClient","bulkEditQuery","updates","mutation","useMutation","onSuccess","res","data","length","refetchQueries","pluginId","active","type","message","id","getTrad","defaultMessage","edit","mutateAsync"],"mappings":";;;;;;;;;;;MAsBaA,WAAAA,GAAc,IAAA;IACzB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAMC,WAAAA,GAAcC,cAAAA,EAAAA;IACpB,MAAM,EAAEC,IAAI,EAAE,GAAGC,cAAAA,EAAAA;AAEjB,IAAA,MAAMC,aAAAA,GAAgB,CAAC,EAAEC,OAAO,EAAkB,GAAA;AAChD,QAAA,OAAOH,KAAK,6BAAA,EAA+B;AAAEG,YAAAA;AAAQ,SAAA,CAAA;AACvD,IAAA,CAAA;IAEA,MAAMC,QAAAA,GAAWC,YAIfH,aAAAA,EAAe;AACfI,QAAAA,SAAAA,CAAAA,CAAUC,GAAG,EAAA;YACX,MAAM,EAAEC,IAAI,EAAE,GAAGD,GAAAA;AAEjB,YAAA,IAAIC,IAAAA,IAAQA,IAAAA,CAAKC,MAAM,GAAG,CAAA,EAAG;AAC3BX,gBAAAA,WAAAA,CAAYY,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAS,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AAChEd,gBAAAA,WAAAA,CAAYY,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAc,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACrEd,gBAAAA,WAAAA,CAAYY,cAAc,CAAC;AAACC,oBAAAA,QAAAA;AAAU,oBAAA;iBAAU,EAAE;oBAAEC,MAAAA,EAAQ;AAAK,iBAAA,CAAA;AACnE,YAAA;YAEAhB,kBAAAA,CAAmB;gBACjBiB,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASpB,aAAAA,CAAc;AACrBqB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,0BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMC,IAAAA,GAAO,CACXf,OAAAA,GAIGC,QAAAA,CAASe,WAAW,CAAC;AAAEhB,YAAAA;AAAQ,SAAA,CAAA;IAEpC,OAAO;AAAE,QAAA,GAAGC,QAAQ;AAAEc,QAAAA;AAAK,KAAA;AAC7B;;;;"}