Skip to content

Commit 25a67d1

Browse files
committed
fix(connectors): explain disabled settings with tooltips
1 parent 81cd643 commit 25a67d1

5 files changed

Lines changed: 30 additions & 10 deletions

File tree

‎apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connector-access-field/connector-access-field.test.tsx‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,17 @@ describe('connection method selection', () => {
123123
expect(container.textContent).toContain(label)
124124
expect(container.textContent).not.toContain('Add a new connection')
125125
expect(container.querySelector('[role="radiogroup"]')).toBeNull()
126-
expect(container.querySelector('button')).toBeNull()
126+
const trigger = container.querySelector('button')!
127+
expect(trigger).toBeDisabled()
128+
expect(document.querySelector('[role="tooltip"]')).toBeNull()
129+
await act(async () => {
130+
trigger.parentElement!.dispatchEvent(
131+
new MouseEvent('pointerover', { bubbles: true, clientX: 200, clientY: 200 })
132+
)
133+
})
134+
expect(document.querySelector('[role="tooltip"]')).toHaveTextContent(
135+
'Add a new connection to change the sync method.'
136+
)
127137
expect(onChange).not.toHaveBeenCalled()
128138
})
129139

‎apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/connector-access-field/connector-access-field.tsx‎

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ import {
55
ChipButtonGroup,
66
ChipButtonGroupItem,
77
ChipCombobox,
8+
ChipDropdown,
89
ChipLink,
910
ChipModalField,
1011
type ComboboxOption,
12+
Tooltip,
1113
} from '@sim/emcn'
1214
import type { ConnectorAccessMode } from '@/lib/api/contracts/knowledge/connectors'
1315
import { type ResourceScope, resourceScopeFromOwner } from '@/lib/core/resource-scope'
@@ -164,7 +166,22 @@ export function ConnectorAccessField({
164166
}
165167
>
166168
<div className='flex flex-col gap-2'>
167-
{slackSetupOnly ? null : !lockAccessMode && showModeSelector ? (
169+
{slackSetupOnly ? null : lockAccessMode ? (
170+
<Tooltip.Root>
171+
<Tooltip.Trigger asChild>
172+
<span className='inline-flex w-fit cursor-not-allowed'>
173+
<ChipDropdown
174+
aria-label={`Sync using: ${currentMode?.label ?? 'Unavailable'}`}
175+
value={value.accessMode}
176+
options={visibleModes.map(({ mode, label }) => ({ value: mode, label }))}
177+
disabled
178+
className='pointer-events-none w-fit'
179+
/>
180+
</span>
181+
</Tooltip.Trigger>
182+
<Tooltip.Content>Add a new connection to change the sync method.</Tooltip.Content>
183+
</Tooltip.Root>
184+
) : showModeSelector ? (
168185
<ChipButtonGroup
169186
value={value.accessMode}
170187
disabled={disabled}

‎apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/connector-settings-fields.tsx‎

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ export interface ConnectorSettingsFieldsProps {
9191
hasMaxAccess: boolean
9292
isSaving: boolean
9393
error: string | null
94-
saveBlockedReason?: string
9594
access: ConnectorAccessSelection
9695
onAccessChange: (access: ConnectorAccessSelection) => void
9796
canAdmin: boolean
@@ -134,7 +133,6 @@ export function ConnectorSettingsFields({
134133
hasMaxAccess,
135134
isSaving,
136135
error,
137-
saveBlockedReason,
138136
access,
139137
onAccessChange,
140138
canAdmin,
@@ -553,11 +551,6 @@ export function ConnectorSettingsFields({
553551
</ChipModalField>
554552
)}
555553

556-
{saveBlockedReason && (
557-
<p role='status' className='px-2 text-[var(--text-muted)] text-caption'>
558-
{saveBlockedReason}
559-
</p>
560-
)}
561554
<ChipModalError>{error}</ChipModalError>
562555
</>
563556
)

‎apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/edit-connector-modal.tsx‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ export function EditConnectorModal({
108108
label: form.saving ? 'Saving…' : 'Save',
109109
onClick: form.save,
110110
disabled: !form.canSave,
111+
disabledTooltip: form.saveBlockedReason,
111112
}}
112113
/>
113114
)}

‎apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/use-connector-settings-form.ts‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,6 @@ export function useConnectorSettingsForm({
519519
hasMaxAccess,
520520
isSaving,
521521
error: error ?? searchSetupError,
522-
saveBlockedReason,
523522
access,
524523
onAccessChange: setAccess,
525524
canAdmin,

0 commit comments

Comments
 (0)