affectUI › Components › Inputs
Integration Settings
Settings card for a connected service – on/off switch, API key, validated site address, time zone and a save bar.
Part of affectUI Pro. Install: npx shadcn@latest add https://www.affectui.com/r/integration-settings.json · Import from @/components/ui/integration-settings
When to use
- The settings of one connected service – a store, an ad account, a data source
- Forms that should only save when someone confirms, with a clear way to discard
When not to use
- Long settings pages with many sections – split them into separate cards or pages
Usage
import { IntegrationSettings } from "@/components/ui/integration-settings";
export function Store() {
return (
<IntegrationSettings
name="Shopify store"
logo={<ShopifyLogo />}
count={128}
meta="Connected on March 4, 2026"
defaultValues={{ siteUrl: "lumen-studio.com", timeZone: "(GMT +01:00) Berlin" }}
onGenerateKey={() => api.createKey()}
onSave={(values) => api.saveSettings(values)}
/>
);
}Props
| Name | Type | Default | Description |
|---|---|---|---|
name | string | Name of the service | |
logo | ReactNode | Logo in the white tile | |
count | number | Small number next to the name | |
meta | string | Line under the name; switching off shows a paused note instead | |
defaultValues | Partial<IntegrationValues> | enabled, siteUrl, timeZone and apiKey to start with | |
siteHint | string | Helper text under the address field | |
timeZones | string[] | Choices in the time zone picker | |
onGenerateKey | () => string | Promise<string> | Creates a key – a random demo key without it | |
onSave | (values) => void | Promise<void> | Called with all values from the save bar | |
onToggle | (enabled: boolean) => void | Called when the switch changes |
Keyboard
- Space: Toggle the switch
- Tab: Move through the key actions, the address and the time zone
- Escape: Close the time zone picker
Accessibility
- The toggle is a real switch; the address field reports invalid input and points to its hint
- A new key is announced together with the reminder to copy it
Responsive
- Dark mode built in: switches when an ancestor (usually <html>) has the class dark or data-theme="dark"
Requirements
- React 19
Related
- App Directory – Browse, search and connect integrations – categories, filters and app cards with a connect flow
- Data Table – Spreadsheet-style table: select cells and ranges, edit in place, copy and paste, undo and sort
Guides
- Human-in-the-loop UI: approvals, permissions and autonomy – UI patterns for keeping people in control of AI agents – approval cards, permission requests, autonomy levels, steering and reviewing changes.