import { Input, InputArea } from "@cloudflare/kumo"; import { useCallback } from "react"; import type { BlockInteraction, TextInputElement } from "../types.js"; export function TextInputElementComponent({ element, onAction, onChange, }: { element: TextInputElement; onAction: (interaction: BlockInteraction) => void; onChange?: (actionId: string, value: unknown) => void; }) { const handleChange = useCallback( (e: React.ChangeEvent) => { if (onChange) { onChange(element.action_id, e.target.value); } }, [onChange, element.action_id], ); const handleBlur = useCallback( (e: React.FocusEvent) => { if (!onChange) { onAction({ type: "block_action", action_id: element.action_id, value: e.target.value, }); } }, [onChange, onAction, element.action_id], ); if (element.multiline) { return ( ); } return ( ); }