Skip to content

Component: Channel Selector

Allow selection of channel types/connectors for a workspace, with clear availability and plan/permission gating.

Composition:

  • Inputs:
    • available connector list (with metadata)
    • selected channel types
    • gating info (plan/permission)
  • Outputs:
    • onChange(selected)
    • onConnect(type) (optional)
  • Selection-only
  • Selection + connect CTA
  • Dropdown single-select (button that opens a list to pick one channel): implemented in the app as ChannelSelect (src/components/ui/channel-select.tsx). Use for filters, forms, or any “select one channel” UI. Built with Popover + Button + option list; supports value, onValueChange, placeholder, disabled, optional showIcons.
  • Default: selectable list
  • Loading: connector catalog loading
  • Empty: no connectors available (contract restriction)
  • Error: catalog unavailable
  • Disabled: lacks channels.configure
  • Checkbox/radio semantics
  • Keyboard navigable list
  • Announce disabled reasons (tooltip text + aria-describedby)

Security & privacy considerations (if applicable)

Section titled “Security & privacy considerations (if applicable)”
  • Do not embed secrets; connector metadata only
  • get_started.channels.selected