{"version":3,"file":"useRemoveAsset.mjs","sources":["../../../admin/src/hooks/useRemoveAsset.ts"],"sourcesContent":["import {\n  useNotification,\n  useFetchClient,\n  FetchResponse,\n  adminApi,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQueryClient, UseMutationResult } from 'react-query';\nimport { useDispatch } from 'react-redux';\n\nimport { pluginId } from '../pluginId';\n\nimport type { DeleteFile } from '../../../shared/contracts/files';\n\ntype UseRemoveAsset = {\n  removeAsset: (assetId: number) => Promise<void>;\n} & UseMutationResult<FetchResponse<DeleteFile.Response>, Error, number>;\n\nexport const useRemoveAsset = (onSuccess: () => void): UseRemoveAsset => {\n  const dispatch = useDispatch();\n  const { toggleNotification } = useNotification();\n  const { formatMessage } = useIntl();\n  const queryClient = useQueryClient();\n  const { del } = useFetchClient();\n\n  const mutation = useMutation(\n    (assetId: number) => del<DeleteFile.Response>(`/upload/files/${assetId}`),\n    {\n      onSuccess() {\n        queryClient.refetchQueries([pluginId, 'assets'], { active: true });\n        queryClient.refetchQueries([pluginId, 'asset-count'], { active: true });\n\n        toggleNotification({\n          type: 'success',\n          message: formatMessage({\n            id: 'modal.remove.success-label',\n            defaultMessage: 'Elements have been successfully deleted.',\n          }),\n        });\n        dispatch(adminApi.util.invalidateTags(['HomepageKeyStatistics']));\n\n        onSuccess();\n      },\n      onError(error: Error) {\n        toggleNotification({ type: 'danger', message: error.message });\n      },\n    }\n  );\n\n  const removeAsset = async (assetId: number) => {\n    await mutation.mutateAsync(assetId);\n  };\n\n  return { ...mutation, removeAsset };\n};\n"],"names":["useRemoveAsset","onSuccess","dispatch","useDispatch","toggleNotification","useNotification","formatMessage","useIntl","queryClient","useQueryClient","del","useFetchClient","mutation","useMutation","assetId","refetchQueries","pluginId","active","type","message","id","defaultMessage","adminApi","util","invalidateTags","onError","error","removeAsset","mutateAsync"],"mappings":";;;;;;AAkBO,MAAMA,iBAAiB,CAACC,SAAAA,GAAAA;AAC7B,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;IACjB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMC,WAAAA,GAAcC,cAAAA,EAAAA;IACpB,MAAM,EAAEC,GAAG,EAAE,GAAGC,cAAAA,EAAAA;IAEhB,MAAMC,QAAAA,GAAWC,YACf,CAACC,OAAAA,GAAoBJ,IAAyB,CAAC,cAAc,EAAEI,OAAAA,CAAAA,CAAS,CAAA,EACxE;AACEb,QAAAA,SAAAA,CAAAA,GAAAA;AACEO,YAAAA,WAAAA,CAAYO,cAAc,CAAC;AAACC,gBAAAA,QAAAA;AAAU,gBAAA;aAAS,EAAE;gBAAEC,MAAAA,EAAQ;AAAK,aAAA,CAAA;AAChET,YAAAA,WAAAA,CAAYO,cAAc,CAAC;AAACC,gBAAAA,QAAAA;AAAU,gBAAA;aAAc,EAAE;gBAAEC,MAAAA,EAAQ;AAAK,aAAA,CAAA;YAErEb,kBAAAA,CAAmB;gBACjBc,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAASb,aAAAA,CAAc;oBACrBc,EAAAA,EAAI,4BAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACAnB,YAAAA,QAAAA,CAASoB,QAAAA,CAASC,IAAI,CAACC,cAAc,CAAC;AAAC,gBAAA;AAAwB,aAAA,CAAA,CAAA;AAE/DvB,YAAAA,SAAAA,EAAAA;AACF,QAAA,CAAA;AACAwB,QAAAA,OAAAA,CAAAA,CAAQC,KAAY,EAAA;YAClBtB,kBAAAA,CAAmB;gBAAEc,IAAAA,EAAM,QAAA;AAAUC,gBAAAA,OAAAA,EAASO,MAAMP;AAAQ,aAAA,CAAA;AAC9D,QAAA;AACF,KAAA,CAAA;AAGF,IAAA,MAAMQ,cAAc,OAAOb,OAAAA,GAAAA;QACzB,MAAMF,QAAAA,CAASgB,WAAW,CAACd,OAAAA,CAAAA;AAC7B,IAAA,CAAA;IAEA,OAAO;AAAE,QAAA,GAAGF,QAAQ;AAAEe,QAAAA;AAAY,KAAA;AACpC;;;;"}