{"version":3,"file":"ImportFromUrlDialog.mjs","sources":["../../../../../../admin/src/future/pages/Assets/components/ImportFromUrlDialog.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Field, Modal, Textarea } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { validateUrls } from '../../../utils/files';\nimport { getTranslationKey } from '../../../utils/translations';\n\ninterface ImportFromUrlDialogProps {\n  open: boolean;\n  onClose: () => void;\n  onUpload: (urls: string[]) => Promise<void>;\n}\n\nexport const ImportFromUrlDialog = ({ open, onClose, onUpload }: ImportFromUrlDialogProps) => {\n  const { formatMessage } = useIntl();\n  const [urls, setUrls] = React.useState('');\n  const [error, setError] = React.useState<string | null>(null);\n\n  const handleClose = () => {\n    setUrls('');\n    setError(null);\n    onClose();\n  };\n\n  const handleSubmit = async (e: React.FormEvent) => {\n    e.preventDefault();\n\n    // Validate URLs\n    const { urls: validUrls, error: validationError } = validateUrls(urls);\n    if (validationError) {\n      setError(validationError);\n      return;\n    }\n\n    setError(null);\n\n    // Close dialog and let the mutation handle fetching and uploading\n    handleClose();\n\n    // Pass URLs to mutation which handles fetching and upload progress\n    await onUpload(validUrls);\n  };\n\n  return (\n    <Modal.Root open={open} onOpenChange={(isOpen) => !isOpen && handleClose()}>\n      <Modal.Content>\n        <form onSubmit={handleSubmit}>\n          <Modal.Header>\n            <Modal.Title>\n              {formatMessage({\n                id: getTranslationKey('modal.url.title'),\n                defaultMessage: 'Import from URL',\n              })}\n            </Modal.Title>\n          </Modal.Header>\n\n          <Modal.Body>\n            <Field.Root\n              error={error || undefined}\n              hint={formatMessage({\n                id: getTranslationKey('input.url.description'),\n                defaultMessage: 'Separate your URL links by a carriage return.',\n              })}\n            >\n              <Field.Label>\n                {formatMessage({\n                  id: getTranslationKey('input.url.label'),\n                  defaultMessage: 'URL(s)',\n                })}\n              </Field.Label>\n              <Textarea\n                name=\"urls\"\n                minHeight=\"unset\"\n                rows={Math.min(urls.split('\\n').length, 7)}\n                maxHeight=\"10.5rem\"\n                placeholder={formatMessage({\n                  id: getTranslationKey('input.url.placeholder'),\n                  defaultMessage: 'Empty',\n                })}\n                value={urls}\n                onChange={(e: React.ChangeEvent<HTMLTextAreaElement>) => {\n                  setUrls(e.target.value);\n                  setError(null);\n                }}\n              />\n              <Field.Hint />\n              <Field.Error />\n            </Field.Root>\n          </Modal.Body>\n\n          <Modal.Footer>\n            <Button variant=\"tertiary\" onClick={handleClose}>\n              {formatMessage({\n                id: 'app.components.Button.cancel',\n                defaultMessage: 'Cancel',\n              })}\n            </Button>\n            <Button type=\"submit\">\n              {formatMessage({\n                id: getTranslationKey('modal.url.upload'),\n                defaultMessage: 'Upload',\n              })}\n            </Button>\n          </Modal.Footer>\n        </form>\n      </Modal.Content>\n    </Modal.Root>\n  );\n};\n"],"names":["ImportFromUrlDialog","open","onClose","onUpload","formatMessage","useIntl","urls","setUrls","React","useState","error","setError","handleClose","handleSubmit","e","preventDefault","validUrls","validationError","validateUrls","_jsx","Modal","Root","onOpenChange","isOpen","Content","_jsxs","form","onSubmit","Header","Title","id","getTranslationKey","defaultMessage","Body","Field","undefined","hint","Label","Textarea","name","minHeight","rows","Math","min","split","length","maxHeight","placeholder","value","onChange","target","Hint","Error","Footer","Button","variant","onClick","type"],"mappings":"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"}