Skip to content

Commit c04e2b3

Browse files
committed
💄 Add 'form' elements to kitchen sink post example
1 parent b010b65 commit c04e2b3

File tree

2 files changed

+40
-29
lines changed

2 files changed

+40
-29
lines changed

examples/query/react/kitchen-sink/src/features/posts/PostDetail.tsx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,28 @@ const EditablePostName = ({
2525
target: { value },
2626
}: React.ChangeEvent<HTMLInputElement>) => setName(value)
2727

28-
const handleUpdate = () => onUpdate(name)
28+
const handleSubmit: React.FormEventHandler<HTMLFormElement> = (e) => {
29+
e.preventDefault()
30+
onUpdate(name)
31+
}
2932
const handleCancel = () => onCancel()
3033

3134
return (
3235
<div>
33-
<input
34-
type="text"
35-
onChange={handleChange}
36-
value={name}
37-
disabled={loading}
38-
/>
39-
<button onClick={handleUpdate} disabled={loading}>
40-
{loading ? 'Updating...' : 'Update'}
41-
</button>
42-
<button onClick={handleCancel} disabled={loading}>
43-
Cancel
44-
</button>
36+
<form onSubmit={handleSubmit}>
37+
<input
38+
type="text"
39+
onChange={handleChange}
40+
value={name}
41+
disabled={loading}
42+
/>
43+
<button type="submit" disabled={loading}>
44+
{loading ? 'Updating...' : 'Update'}
45+
</button>
46+
<button onClick={handleCancel} disabled={loading}>
47+
Cancel
48+
</button>
49+
</form>
4550
</div>
4651
)
4752
}

examples/query/react/kitchen-sink/src/features/posts/PostsManager.tsx

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,31 @@ const AddPost = () => {
2424
}))
2525
}
2626

27-
const handleAddPost = () => addPost(post).then(() => setPost(initialValue))
27+
const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (e) => {
28+
e.preventDefault()
29+
await addPost(post)
30+
setPost(initialValue)
31+
}
2832

2933
return (
30-
<div className="row">
31-
<div className="column column-3">
32-
<input
33-
name="name"
34-
placeholder="New post name"
35-
type="text"
36-
onChange={handleChange}
37-
value={post.name}
38-
/>
39-
</div>
40-
<div className="column column-1">
41-
<button onClick={handleAddPost} disabled={isLoading}>
42-
{isLoading ? 'Adding...' : 'Add Post'}
43-
</button>
34+
<form onSubmit={handleSubmit}>
35+
<div className="row">
36+
<div className="column column-3">
37+
<input
38+
name="name"
39+
placeholder="New post name"
40+
type="text"
41+
onChange={handleChange}
42+
value={post.name}
43+
/>
44+
</div>
45+
<div className="column column-1">
46+
<button type="submit" disabled={isLoading}>
47+
{isLoading ? 'Adding...' : 'Add Post'}
48+
</button>
49+
</div>
4450
</div>
45-
</div>
51+
</form>
4652
)
4753
}
4854

0 commit comments

Comments
 (0)