{"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,kBAAqB,GAAA,CAAC,EACjCC,aAAa,EACbC,YAAY,EACZC,eAAe,EACf,GAAGC,KACqB,EAAA,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,QAAAA,GAAWC,KAAMC,CAAAA,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,eAAiB,EAAA;AACnBO,YAAAA,UAAAA,CAAW,iBAAmB,EAAA;gBAAEK,QAAUZ,EAAAA;AAAgB,aAAA,CAAA;AAC5D;AAEAI,QAAAA,QAAAA,CAASS,OAAO,EAAEC,KAAAA,EAAAA;AACpB,KAAA;AAEA,IAAA,MAAMC,YAAe,GAAA,IAAA;AACnB,QAAA,MAAMC,OAAOZ,QAASS,CAAAA,OAAO,EAAEI,KAAAA,GAAQ,CAAE,CAAA;QAEzCnB,aAAckB,CAAAA,IAAAA,CAAAA;AAChB,KAAA;IAEA,qBACEE,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAACC,CAAAA,MAAAA,EAAAA;gBAAOC,OAAQ,EAAA,WAAA;gBAAYC,OAASd,EAAAA,WAAAA;AAAc,gBAAA,GAAGR,KAAK;0BACxDC,aAAc,CAAA;AACbsB,oBAAAA,EAAAA,EAAIC,OAAQ,CAAA,4BAAA,CAAA;oBACZC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFN,GAACO,CAAAA,cAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAP,GAACQ,CAAAA,OAAAA,EAAAA;oBACCC,MAAQ9B,EAAAA,YAAAA;oBACR+B,IAAK,EAAA,MAAA;oBACLC,IAAK,EAAA,MAAA;oBACLC,aAAY,EAAA,YAAA;AACZC,oBAAAA,QAAAA,EAAU,CAAC,CAAA;oBACXC,GAAK9B,EAAAA,QAAAA;oBACL+B,QAAUpB,EAAAA,YAAAA;oBACVqB,aAAW,EAAA;;;;;AAKrB;;;;"}