{"version":3,"file":"FromUrlForm.mjs","sources":["../../../../../admin/src/components/UploadAssetDialog/AddAssetStep/FromUrlForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Field, Modal, Textarea } from '@strapi/design-system';\nimport { Form, Formik } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport { useTracking } from '../../../hooks/useTracking';\nimport { getTrad, urlsToAssets, urlSchema } from '../../../utils';\n\nimport type { FileWithRawFile } from './AddAssetStep';\n\ninterface FromUrlFormProps {\n  onClose: () => void;\n  onAddAsset: (assets: FileWithRawFile[]) => void;\n  trackedLocation?: string;\n}\n\nexport const FromUrlForm = ({ onClose, onAddAsset, trackedLocation }: FromUrlFormProps) => {\n  const [loading, setLoading] = React.useState(false);\n  const [error, setError] = React.useState<Error | undefined>(undefined);\n  const { formatMessage } = useIntl();\n  const { trackUsage } = useTracking();\n\n  const handleSubmit = async ({ urls }: { urls: string }) => {\n    setLoading(true);\n    const urlArray = urls.split(/\\r?\\n/);\n    try {\n      const assets: FileWithRawFile[] = await urlsToAssets(urlArray);\n\n      if (trackedLocation) {\n        trackUsage('didSelectFile', { source: 'url', location: trackedLocation });\n      }\n\n      // no need to set the loading to false since the component unmounts\n      onAddAsset(assets);\n    } catch (e: unknown) {\n      setError(e as Error);\n      setLoading(false);\n    }\n  };\n\n  return (\n    <Formik\n      enableReinitialize\n      initialValues={{\n        urls: '',\n      }}\n      onSubmit={handleSubmit}\n      validationSchema={urlSchema}\n      validateOnChange={false}\n    >\n      {({ values, errors, handleChange }) => (\n        <Form noValidate>\n          <Box paddingLeft={8} paddingRight={8} paddingBottom={6} paddingTop={6}>\n            <Field.Root\n              hint={formatMessage({\n                id: getTrad('input.url.description'),\n                defaultMessage: 'Separate your URL links by a carriage return.',\n              })}\n              error={\n                error?.message ||\n                (errors.urls\n                  ? formatMessage({ id: errors.urls, defaultMessage: 'An error occurred' })\n                  : undefined)\n              }\n            >\n              <Field.Label>\n                {formatMessage({ id: getTrad('input.url.label'), defaultMessage: 'URL' })}\n              </Field.Label>\n              <Textarea name=\"urls\" onChange={handleChange} value={values.urls} />\n              <Field.Hint />\n              <Field.Error />\n            </Field.Root>\n          </Box>\n\n          <Modal.Footer>\n            <Button onClick={onClose} variant=\"tertiary\">\n              {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'cancel' })}\n            </Button>\n            <Button type=\"submit\" loading={loading}>\n              {formatMessage({\n                id: getTrad('button.next'),\n                defaultMessage: 'Next',\n              })}\n            </Button>\n          </Modal.Footer>\n        </Form>\n      )}\n    </Formik>\n  );\n};\n"],"names":["FromUrlForm","onClose","onAddAsset","trackedLocation","loading","setLoading","React","useState","error","setError","undefined","formatMessage","useIntl","trackUsage","useTracking","handleSubmit","urls","urlArray","split","assets","urlsToAssets","source","location","e","_jsx","Formik","enableReinitialize","initialValues","onSubmit","validationSchema","urlSchema","validateOnChange","values","errors","handleChange","_jsxs","Form","noValidate","Box","paddingLeft","paddingRight","paddingBottom","paddingTop","Field","Root","hint","id","getTrad","defaultMessage","message","Label","Textarea","name","onChange","value","Hint","Error","Modal","Footer","Button","onClick","variant","type"],"mappings":"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"}