Skip to content

Commit ad428f5

Browse files
authored
Merge pull request #6426 from menloresearch/fix/error-validate-nested-dom
fix: avoid error validate nested DOM
2 parents ea72c1a + 4293fe7 commit ad428f5

File tree

5 files changed

+56
-10
lines changed

5 files changed

+56
-10
lines changed

web-app/src/containers/dialogs/DeleteMessageDialog.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,19 @@ export function DeleteMessageDialog({ onDelete }: DeleteMessageDialogProps) {
4141
const trigger = (
4242
<Tooltip>
4343
<TooltipTrigger asChild>
44-
<button className="flex items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative">
44+
<div
45+
className="flex items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative"
46+
role="button"
47+
tabIndex={0}
48+
onKeyDown={(e) => {
49+
if (e.key === 'Enter' || e.key === ' ') {
50+
e.preventDefault()
51+
setIsOpen(true)
52+
}
53+
}}
54+
>
4555
<IconTrash size={16} />
46-
</button>
56+
</div>
4757
</TooltipTrigger>
4858
<TooltipContent>
4959
<p>{t('delete')}</p>

web-app/src/containers/dialogs/EditMessageDialog.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,19 @@ export function EditMessageDialog({
6464
const defaultTrigger = (
6565
<Tooltip>
6666
<TooltipTrigger asChild>
67-
<button className="flex outline-0 items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative">
67+
<div
68+
className="flex outline-0 items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative"
69+
role="button"
70+
tabIndex={0}
71+
onKeyDown={(e) => {
72+
if (e.key === 'Enter' || e.key === ' ') {
73+
e.preventDefault()
74+
setIsOpen(true)
75+
}
76+
}}
77+
>
6878
<IconPencil size={16} />
69-
</button>
79+
</div>
7080
</TooltipTrigger>
7181
<TooltipContent>
7282
<p>{t('edit')}</p>

web-app/src/containers/dialogs/ErrorDialog.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,25 @@ export default function ErrorDialog() {
6161

6262
<div className="bg-main-view-fg/2 p-2 border border-main-view-fg/5 rounded-lg space-y-2">
6363
<div>
64-
<button
64+
<div
6565
onClick={() => setIsDetailExpanded(!isDetailExpanded)}
6666
className="flex items-center gap-1 text-sm text-main-view-fg/60 hover:text-main-view-fg/80 transition-colors cursor-pointer"
67+
role="button"
68+
tabIndex={0}
69+
onKeyDown={(e) => {
70+
if (e.key === 'Enter' || e.key === ' ') {
71+
e.preventDefault()
72+
setIsDetailExpanded(!isDetailExpanded)
73+
}
74+
}}
6775
>
6876
{isDetailExpanded ? (
6977
<ChevronDown className="size-3" />
7078
) : (
7179
<ChevronRight className="size-3" />
7280
)}
7381
Details
74-
</button>
82+
</div>
7583

7684
{isDetailExpanded && (
7785
<div

web-app/src/containers/dialogs/LoadModelErrorDialog.tsx

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,17 +131,25 @@ export default function LoadModelErrorDialog() {
131131

132132
{hasErrorDetail(modelLoadError) && (
133133
<div>
134-
<button
134+
<div
135135
onClick={() => setIsDetailExpanded(!isDetailExpanded)}
136136
className="flex items-center gap-1 text-sm text-main-view-fg/60 hover:text-main-view-fg/80 transition-colors cursor-pointer"
137+
role="button"
138+
tabIndex={0}
139+
onKeyDown={(e) => {
140+
if (e.key === 'Enter' || e.key === ' ') {
141+
e.preventDefault()
142+
setIsDetailExpanded(!isDetailExpanded)
143+
}
144+
}}
137145
>
138146
{isDetailExpanded ? (
139147
<ChevronDown className="size-3" />
140148
) : (
141149
<ChevronRight className="size-3" />
142150
)}
143151
Details
144-
</button>
152+
</div>
145153

146154
{isDetailExpanded && (
147155
<div

web-app/src/containers/dialogs/MessageMetadataDialog.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,19 @@ export function MessageMetadataDialog({
3232
const defaultTrigger = (
3333
<Tooltip>
3434
<TooltipTrigger asChild>
35-
<button className="outline-0 focus:outline-0 flex items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative">
35+
<div
36+
className="outline-0 focus:outline-0 flex items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative"
37+
role="button"
38+
tabIndex={0}
39+
onKeyDown={(e) => {
40+
if (e.key === 'Enter' || e.key === ' ') {
41+
e.preventDefault()
42+
setIsOpen(true)
43+
}
44+
}}
45+
>
3646
<IconInfoCircle size={16} />
37-
</button>
47+
</div>
3848
</TooltipTrigger>
3949
<TooltipContent>
4050
<p>{t('metadata')}</p>

0 commit comments

Comments
 (0)