Merge pull request #6426 from menloresearch/fix/error-validate-nested-dom

fix: avoid error validate nested DOM
This commit is contained in:
Faisal Amir 2025-09-12 12:28:46 +07:00 committed by GitHub
commit ad428f587b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 56 additions and 10 deletions

View File

@ -41,9 +41,19 @@ export function DeleteMessageDialog({ onDelete }: DeleteMessageDialogProps) {
const trigger = ( const trigger = (
<Tooltip> <Tooltip>
<TooltipTrigger asChild> <TooltipTrigger asChild>
<button className="flex items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative"> <div
className="flex items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative"
role="button"
tabIndex={0}
onKeyDown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault()
setIsOpen(true)
}
}}
>
<IconTrash size={16} /> <IconTrash size={16} />
</button> </div>
</TooltipTrigger> </TooltipTrigger>
<TooltipContent> <TooltipContent>
<p>{t('delete')}</p> <p>{t('delete')}</p>

View File

@ -64,9 +64,19 @@ export function EditMessageDialog({
const defaultTrigger = ( const defaultTrigger = (
<Tooltip> <Tooltip>
<TooltipTrigger asChild> <TooltipTrigger asChild>
<button className="flex outline-0 items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative"> <div
className="flex outline-0 items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative"
role="button"
tabIndex={0}
onKeyDown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault()
setIsOpen(true)
}
}}
>
<IconPencil size={16} /> <IconPencil size={16} />
</button> </div>
</TooltipTrigger> </TooltipTrigger>
<TooltipContent> <TooltipContent>
<p>{t('edit')}</p> <p>{t('edit')}</p>

View File

@ -61,9 +61,17 @@ export default function ErrorDialog() {
<div className="bg-main-view-fg/2 p-2 border border-main-view-fg/5 rounded-lg space-y-2"> <div className="bg-main-view-fg/2 p-2 border border-main-view-fg/5 rounded-lg space-y-2">
<div> <div>
<button <div
onClick={() => setIsDetailExpanded(!isDetailExpanded)} onClick={() => setIsDetailExpanded(!isDetailExpanded)}
className="flex items-center gap-1 text-sm text-main-view-fg/60 hover:text-main-view-fg/80 transition-colors cursor-pointer" className="flex items-center gap-1 text-sm text-main-view-fg/60 hover:text-main-view-fg/80 transition-colors cursor-pointer"
role="button"
tabIndex={0}
onKeyDown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault()
setIsDetailExpanded(!isDetailExpanded)
}
}}
> >
{isDetailExpanded ? ( {isDetailExpanded ? (
<ChevronDown className="size-3" /> <ChevronDown className="size-3" />
@ -71,7 +79,7 @@ export default function ErrorDialog() {
<ChevronRight className="size-3" /> <ChevronRight className="size-3" />
)} )}
Details Details
</button> </div>
{isDetailExpanded && ( {isDetailExpanded && (
<div <div

View File

@ -131,9 +131,17 @@ export default function LoadModelErrorDialog() {
{hasErrorDetail(modelLoadError) && ( {hasErrorDetail(modelLoadError) && (
<div> <div>
<button <div
onClick={() => setIsDetailExpanded(!isDetailExpanded)} onClick={() => setIsDetailExpanded(!isDetailExpanded)}
className="flex items-center gap-1 text-sm text-main-view-fg/60 hover:text-main-view-fg/80 transition-colors cursor-pointer" className="flex items-center gap-1 text-sm text-main-view-fg/60 hover:text-main-view-fg/80 transition-colors cursor-pointer"
role="button"
tabIndex={0}
onKeyDown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault()
setIsDetailExpanded(!isDetailExpanded)
}
}}
> >
{isDetailExpanded ? ( {isDetailExpanded ? (
<ChevronDown className="size-3" /> <ChevronDown className="size-3" />
@ -141,7 +149,7 @@ export default function LoadModelErrorDialog() {
<ChevronRight className="size-3" /> <ChevronRight className="size-3" />
)} )}
Details Details
</button> </div>
{isDetailExpanded && ( {isDetailExpanded && (
<div <div

View File

@ -32,9 +32,19 @@ export function MessageMetadataDialog({
const defaultTrigger = ( const defaultTrigger = (
<Tooltip> <Tooltip>
<TooltipTrigger asChild> <TooltipTrigger asChild>
<button className="outline-0 focus:outline-0 flex items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative"> <div
className="outline-0 focus:outline-0 flex items-center gap-1 hover:text-accent transition-colors cursor-pointer group relative"
role="button"
tabIndex={0}
onKeyDown={(e) => {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault()
setIsOpen(true)
}
}}
>
<IconInfoCircle size={16} /> <IconInfoCircle size={16} />
</button> </div>
</TooltipTrigger> </TooltipTrigger>
<TooltipContent> <TooltipContent>
<p>{t('metadata')}</p> <p>{t('metadata')}</p>