diff --git a/src/components/NotePostForm.tsx b/src/components/NotePostForm.tsx index 0eee368..51654fa 100644 --- a/src/components/NotePostForm.tsx +++ b/src/components/NotePostForm.tsx @@ -25,7 +25,7 @@ const NotePostForm: Component = (props) => { submit(); }; - const handleKeyDown: JSX.EventHandler = (ev) => { + const handleKeyDown: JSX.EventHandlerUnion = (ev) => { if (ev.key === 'Enter' && (ev.ctrlKey || ev.metaKey)) { submit(); } diff --git a/src/components/ReplyPostForm.tsx b/src/components/ReplyPostForm.tsx index 9355ab5..ca05bca 100644 --- a/src/components/ReplyPostForm.tsx +++ b/src/components/ReplyPostForm.tsx @@ -18,13 +18,23 @@ const ReplyPostForm: Component = (props: ReplyPostFormProps) setText(ev.currentTarget.value); }; - const handleSubmit: JSX.EventHandler = (ev) => { - ev.preventDefault(); - // TODO 投稿完了したかどうかの検知をしたい + // TODO 投稿完了したかどうかの検知をしたい + const submit = () => { props.onPost({ content: text() }); clearText(); }; + const handleSubmit: JSX.EventHandler = (ev) => { + ev.preventDefault(); + submit(); + }; + + const handleKeyDown: JSX.EventHandler = (ev) => { + if (ev.key === 'Enter' && (ev.ctrlKey || ev.metaKey)) { + submit(); + } + }; + const submitDisabled = createMemo(() => text().trim().length === 0); return ( @@ -40,6 +50,7 @@ const ReplyPostForm: Component = (props: ReplyPostFormProps) rows={4} placeholder="返信を投稿" onInput={handleChangeText} + onKeyDown={handleKeyDown} value={text()} />