diff --git a/src/components/NotePostForm.tsx b/src/components/NotePostForm.tsx index 1b7051e..0eee368 100644 --- a/src/components/NotePostForm.tsx +++ b/src/components/NotePostForm.tsx @@ -14,13 +14,23 @@ const NotePostForm: Component = (props) => { 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 ( @@ -32,6 +42,7 @@ const NotePostForm: Component = (props) => { rows={4} placeholder="いまどうしてる?" onInput={handleChangeText} + onKeyDown={handleKeyDown} value={text()} />