{"version":3,"file":"ReplaceMediaButton.mjs","sources":["../../../../admin/src/components/EditAssetDialog/ReplaceMediaButton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, VisuallyHidden, ButtonProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../hooks/useTracking';\nimport { getTrad } from '../../utils';\n\ninterface ReplaceMediaButtonProps extends ButtonProps {\n  acceptedMime: string;\n  onSelectMedia: (file?: File) => void;\n  trackedLocation?: string;\n}\n\nexport const ReplaceMediaButton = ({\n  onSelectMedia,\n  acceptedMime,\n  trackedLocation,\n  ...props\n}: ReplaceMediaButtonProps) => {\n  const { formatMessage } = useIntl();\n  const inputRef = React.useRef<HTMLInputElement>(null);\n  const { trackUsage } = useTracking();\n\n  const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n    e.preventDefault();\n\n    if (trackedLocation) {\n      trackUsage('didReplaceMedia', { location: trackedLocation });\n    }\n\n    inputRef.current?.click();\n  };\n\n  const handleChange = () => {\n    const file = inputRef.current?.files?.[0];\n\n    onSelectMedia(file);\n  };\n\n  return (\n    <>\n      <Button variant=\"secondary\" onClick={handleClick} {...props}>\n        {formatMessage({\n          id: getTrad('control-card.replace-media'),\n          defaultMessage: 'Replace media',\n        })}\n      </Button>\n      <VisuallyHidden>\n        <input\n          accept={acceptedMime}\n          type=\"file\"\n          name=\"file\"\n          data-testid=\"file-input\"\n          tabIndex={-1}\n          ref={inputRef}\n          onChange={handleChange}\n          aria-hidden\n        />\n      </VisuallyHidden>\n    </>\n  );\n};\n"],"names":["ReplaceMediaButton","onSelectMedia","acceptedMime","trackedLocation","props","formatMessage","useIntl","inputRef","React","useRef","trackUsage","useTracking","handleClick","e","preventDefault","location","current","click","handleChange","file","files","_jsxs","_Fragment","_jsx","Button","variant","onClick","id","getTrad","defaultMessage","VisuallyHidden","input","accept","type","name","data-testid","tabIndex","ref","onChange","aria-hidden"],"mappings":";;;;;;;;;;;;AAcO,MAAMA,kBAAAA,GAAqB,CAAC,EACjCC,aAAa,EACbC,YAAY,EACZC,eAAe,EACf,GAAGC,KAAAA,EACqB,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,QAAAA,GAAWC,KAAAA,CAAMC,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AAEvB,IAAA,MAAMC,cAAc,CAACC,CAAAA,GAAAA;AACnBA,QAAAA,CAAAA,CAAEC,cAAc,EAAA;AAEhB,QAAA,IAAIX,eAAAA,EAAiB;AACnBO,YAAAA,UAAAA,CAAW,iBAAA,EAAmB;gBAAEK,QAAAA,EAAUZ;AAAgB,aAAA,CAAA;AAC5D,QAAA;AAEAI,QAAAA,QAAAA,CAASS,OAAO,EAAEC,KAAAA,EAAAA;AACpB,IAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAe,IAAA;AACnB,QAAA,MAAMC,OAAOZ,QAAAA,CAASS,OAAO,EAAEI,KAAAA,GAAQ,CAAA,CAAE;QAEzCnB,aAAAA,CAAckB,IAAAA,CAAAA;AAChB,IAAA,CAAA;IAEA,qBACEE,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAAA,CAACC,MAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,WAAA;gBAAYC,OAAAA,EAASd,WAAAA;AAAc,gBAAA,GAAGR,KAAK;0BACxDC,aAAAA,CAAc;AACbsB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;;0BAEFN,GAAA,CAACO,cAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAP,GAAA,CAACQ,OAAAA,EAAAA;oBACCC,MAAAA,EAAQ9B,YAAAA;oBACR+B,IAAAA,EAAK,MAAA;oBACLC,IAAAA,EAAK,MAAA;oBACLC,aAAAA,EAAY,YAAA;AACZC,oBAAAA,QAAAA,EAAU,EAAC;oBACXC,GAAAA,EAAK9B,QAAAA;oBACL+B,QAAAA,EAAUpB,YAAAA;oBACVqB,aAAW,EAAA;;;;;AAKrB;;;;"}