import { z } from "zod" import { onMount } from "solid-js" import { createDialog } from "./context-dialog" import { Button } from "./button" export const DialogString = createDialog({ size: "sm", schema: z.object({ title: z.string(), placeholder: z.string(), action: z.string(), onSubmit: z.function().args(z.string()).returns(z.void()), }), render: (ctx) => { let input: HTMLInputElement onMount(() => { setTimeout(() => { input.focus() input.value = "" }, 50) }) function submit() { const value = input.value.trim() if (value) { ctx.input.onSubmit(value) ctx.control.close() } } return ( <>
(input = r)} placeholder={ctx.input.placeholder} id={`dialog-string-${ctx.input.title}`} onKeyDown={(e) => { if (e.key === "Enter") { e.preventDefault() submit() } }} />
) }, })