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 { clsx } from 'clsx' import styles from './Modal.module.scss' interface ModalProps { name: string variant: 'narrow' | 'wide' children: JSX.Element onClose?: () => void } export const Modal = (props: ModalProps) => { const { modal } = useModalStore() const handleHide = () => { hideModal() props.onClose && props.onClose() } useEscKeyDownHandler(handleHide) const [visible, setVisible] = createSignal(false) createEffect(() => { setVisible(modal() === props.name) }) return (
event.stopPropagation()} > {props.children}
) }