Skip to content

Commit eafaab9

Browse files
committed
fix(settings): render non-clickable inbox rows as div, not disabled button
Addresses review: a native disabled <button> can inherit browser disabled styling (dimmed text / lower contrast) on non-navigable task rows. Render an interactive <button> only when the row is clickable; otherwise a plain <div> with identical layout — preserving the semantic-button a11y win without the disabled-state visual regression.
1 parent 45217c0 commit eafaab9

1 file changed

Lines changed: 22 additions & 12 deletions

File tree

  • apps/sim/app/workspace/[workspaceId]/settings/components/inbox/components/inbox-task-list

apps/sim/app/workspace/[workspaceId]/settings/components/inbox/components/inbox-task-list/inbox-task-list.tsx

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,18 +133,13 @@ export function InboxTaskList() {
133133
const statusBadge = STATUS_BADGES[task.status] || STATUS_BADGES.received
134134
const isClickable =
135135
task.chatId && (task.status === 'completed' || task.status === 'failed')
136-
return (
137-
<button
138-
key={task.id}
139-
type='button'
140-
disabled={!isClickable}
141-
className={`flex w-full items-center gap-2.5 rounded-lg p-2 text-left transition-colors ${
142-
isClickable
143-
? 'cursor-pointer hover-hover:bg-[var(--surface-active)]'
144-
: 'cursor-default'
145-
}`}
146-
onClick={() => handleTaskClick(task)}
147-
>
136+
const rowClassName = `flex w-full items-center gap-2.5 rounded-lg p-2 text-left transition-colors ${
137+
isClickable
138+
? 'cursor-pointer hover-hover:bg-[var(--surface-active)]'
139+
: 'cursor-default'
140+
}`
141+
const rowContent = (
142+
<>
148143
<div className='flex min-w-0 flex-1 flex-col'>
149144
<div className='flex min-w-0 items-center gap-1.5'>
150145
<span className='truncate text-[14px] text-[var(--text-body)]'>
@@ -195,7 +190,22 @@ export function InboxTaskList() {
195190
<ArrowRight className='size-4 flex-shrink-0 text-[var(--text-icon)]' />
196191
)}
197192
</div>
193+
</>
194+
)
195+
196+
return isClickable ? (
197+
<button
198+
key={task.id}
199+
type='button'
200+
className={rowClassName}
201+
onClick={() => handleTaskClick(task)}
202+
>
203+
{rowContent}
198204
</button>
205+
) : (
206+
<div key={task.id} className={rowClassName}>
207+
{rowContent}
208+
</div>
199209
)
200210
})}
201211
</div>

0 commit comments

Comments
 (0)