feat: post with Ctrl+Enter

This commit is contained in:
Shusui MOYATANI
2023-03-04 16:19:51 +09:00
parent 07b20b2649
commit 0327af6ba1

View File

@@ -14,13 +14,23 @@ const NotePostForm: Component<NotePostFormProps> = (props) => {
setText(ev.currentTarget.value); setText(ev.currentTarget.value);
}; };
const handleSubmit: JSX.EventHandler<HTMLFormElement, Event> = (ev) => { // TODO 投稿完了したかどうかの検知をしたい
ev.preventDefault(); const submit = () => {
// TODO 投稿完了したかどうかの検知をしたい
props.onPost({ content: text() }); props.onPost({ content: text() });
clearText(); clearText();
}; };
const handleSubmit: JSX.EventHandler<HTMLFormElement, Event> = (ev) => {
ev.preventDefault();
submit();
};
const handleKeyDown: JSX.EventHandler<HTMLFormElement, KeyboardEvent> = (ev) => {
if (ev.key === 'Enter' && (ev.ctrlKey || ev.metaKey)) {
submit();
}
};
const submitDisabled = createMemo(() => text().trim().length === 0); const submitDisabled = createMemo(() => text().trim().length === 0);
return ( return (
@@ -32,6 +42,7 @@ const NotePostForm: Component<NotePostFormProps> = (props) => {
rows={4} rows={4}
placeholder="いまどうしてる?" placeholder="いまどうしてる?"
onInput={handleChangeText} onInput={handleChangeText}
onKeyDown={handleKeyDown}
value={text()} value={text()}
/> />
<div class="grid justify-end"> <div class="grid justify-end">