+
}>
+ <>
+
+
+
+ {dragError() ?? t('Drag the image to this area')}
+
+
+
+
+ {uploadError()}
+
+
+ {
+ hideModal()
+ }}
+ validate={(value) => verifyImg(value)}
+ onSubmit={handleImageFormSubmit}
+ errorMessage={t('Invalid image link')}
+ />
+
+ >
+
+
+ )
+}
diff --git a/src/components/Editor/UploadModal/index.ts b/src/components/Editor/UploadModal/index.ts
new file mode 100644
index 00000000..9e38ddda
--- /dev/null
+++ b/src/components/Editor/UploadModal/index.ts
@@ -0,0 +1 @@
+export { UploadModalContent } from './UploadModalContent'
diff --git a/src/components/Nav/Modal.module.scss b/src/components/Nav/Modal/Modal.module.scss
similarity index 100%
rename from src/components/Nav/Modal.module.scss
rename to src/components/Nav/Modal/Modal.module.scss
diff --git a/src/components/Nav/Modal.tsx b/src/components/Nav/Modal/Modal.tsx
similarity index 76%
rename from src/components/Nav/Modal.tsx
rename to src/components/Nav/Modal/Modal.tsx
index 9e28aed6..d07f6ed2 100644
--- a/src/components/Nav/Modal.tsx
+++ b/src/components/Nav/Modal/Modal.tsx
@@ -1,7 +1,7 @@
import { createEffect, createSignal, Show } from 'solid-js'
import type { JSX } from 'solid-js'
-import { hideModal, useModalStore } from '../../stores/ui'
-import { useEscKeyDownHandler } from '../../utils/useEscKeyDownHandler'
+import { hideModal, useModalStore } from '../../../stores/ui'
+import { useEscKeyDownHandler } from '../../../utils/useEscKeyDownHandler'
import { clsx } from 'clsx'
import styles from './Modal.module.scss'
@@ -9,16 +9,18 @@ interface ModalProps {
name: string
variant: 'narrow' | 'wide'
children: JSX.Element
+ onClose?: () => void
}
export const Modal = (props: ModalProps) => {
const { modal } = useModalStore()
- const backdropClick = () => {
+ const handleHide = () => {
hideModal()
+ props.onClose && props.onClose()
}
- useEscKeyDownHandler(() => hideModal())
+ useEscKeyDownHandler(handleHide)
const [visible, setVisible] = createSignal(false)
@@ -28,7 +30,7 @@ export const Modal = (props: ModalProps) => {
return (