Skip to content

Commit a0970fb

Browse files
authored
docs(fix): better usability on feedback form (#10382)
### Description I went back to use our feedback form to test it out and realized the behavior and user feedback feels awkward. You can type a message, but its not clear that you need to select an emoji before you can submit the form. This PR adds a small message to ensure the required action for form submission is clear. ### Testing Instructions Try out the feedaback form on the preview.
1 parent f451bef commit a0970fb

File tree

4 files changed

+27
-5
lines changed

4 files changed

+27
-5
lines changed

docs/site/components/feedback-widget.tsx

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ export function FeedbackWidget() {
2222
{ emoji: "😭", component: <FaceSad />, label: "Hate it" },
2323
];
2424

25-
const handleSubmit = (e?: React.FormEvent<HTMLFormElement>): void => {
25+
const handleSubmit = (
26+
e?: React.FormEvent<HTMLFormElement> | React.MouseEvent<HTMLButtonElement>
27+
): void => {
2628
e?.preventDefault();
2729

2830
setLoading(true);
@@ -108,6 +110,19 @@ export function FeedbackWidget() {
108110
/>
109111
</div>
110112

113+
{!selectedEmoji && feedback ? (
114+
<p
115+
className="text-red-900 text-right mb-4 text-sm"
116+
role="alert"
117+
aria-live="assertive"
118+
id="emoji-selection-error"
119+
>
120+
Please select an emoji.
121+
</p>
122+
) : (
123+
<div className="h-9" />
124+
)}
125+
111126
<div className="flex items-center justify-between text-black dark:text-gray-900">
112127
<div className="flex space-x-4">
113128
{emojis.map((item) => {
@@ -123,6 +138,11 @@ export function FeedbackWidget() {
123138
: ""
124139
)}
125140
aria-label={item.label}
141+
aria-describedby={
142+
!selectedEmoji && feedback
143+
? "emoji-selection-error"
144+
: undefined
145+
}
126146
>
127147
<span className="relative">{item.component}</span>
128148
</button>
@@ -133,7 +153,9 @@ export function FeedbackWidget() {
133153
<div className="flex items-center gap-2">
134154
<Button
135155
type="submit"
136-
onClick={(e: any) => handleSubmit(e)}
156+
onClick={(e: React.MouseEvent<HTMLButtonElement>) =>
157+
handleSubmit(e)
158+
}
137159
disabled={loading || !feedback || !selectedEmoji}
138160
>
139161
Send

packages/turbo-types/schemas/schema.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,4 +378,4 @@
378378
"additionalProperties": false
379379
}
380380
}
381-
}
381+
}

packages/turbo-types/schemas/schema.v1.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,4 +244,4 @@
244244
"additionalProperties": false
245245
}
246246
}
247-
}
247+
}

packages/turbo-types/schemas/schema.v2.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,4 +378,4 @@
378378
"additionalProperties": false
379379
}
380380
}
381-
}
381+
}

0 commit comments

Comments
 (0)