import React from "react" /** * A form that can only be submitted when using the meta or control key. */ export const KeyboundForm = React.forwardRef< HTMLFormElement, React.FormHTMLAttributes >(({ onSubmit, onKeyDown, ...rest }, ref) => { const handleSubmit = (event: React.FormEvent) => { event.preventDefault() onSubmit?.(event) } const handleKeyDown = (event: React.KeyboardEvent) => { if (event.key === "Enter") { if ( event.target instanceof HTMLTextAreaElement && !(event.metaKey || event.ctrlKey) ) { return } event.preventDefault() if (event.metaKey || event.ctrlKey) { handleSubmit(event) } } } return (
) }) KeyboundForm.displayName = "KeyboundForm"