Embed UI components
Project setup
Prerequisites
The Ampersand UI library requires React v18+.
Install the Ampersand React library
In your repo, use npm
or yarn
to install the package:
or
For versions 1.x.x (legacy)
Version 1.x.x requires chakra-ui peer dependencies.
If you are using yarn, you’ll have to explicitly install the peer dependencies.
Credentials
This library requires your components to be wrapped in the <AmpersandProvider/>
context. <AmpersandProvider />
takes these props:
apiKey
: an API key to access Ampersand services. If you don’t have one yet, create one on the API keys page of Ampersand Dashboard.project
: your Ampersand project name or ID. You can find it on your project’s General Settings page.
Example
Here’s an example:
Components
Install integration
The InstallIntegration component asks your customer for their SaaS credentials, and then guides them through the installation flow for an integration. If they’ve already installed this integration, then the component will display the current configuration of the integration and allow them to update it.
Please note that each group is able to install the integration once, so if someone else with the same groupRef
has already installed the integration, then the user will not be able to install the same integration again.
The parameters of the component are:
- integration (string): the name of an integration that you’ve defined in
amp.yaml
. See Defining integrations. - consumerRef (string): the ID that your app uses to identify this end user.
- consumerName (string, optional): the display name for this end user.
- groupRef (string): the ID that your app uses to identify a company, team, or workspace. See group.
- groupName (string, optional): the display name for this group.
- onInstallSuccess (function, optional): a callback function that gets invoked after a consumer successfully installs the integration.
- onUpdateSuccess (function, optional): a callback function that gets invoked after a consumer successfully updates an existing integration with the new configuration.
- onUninstallSuccess (function, optional): a callback function that gets invoked after a consumer successfully uninstalls the integration.
Both onInstallSuccess
and onUpdateSuccess
should be functions with the following signature: (installationId: string, config: Config) => void
. Config
is an exported type from @amp-labs/react
.
Connect provider
The ConnectProvider component allows your customer to put in their SaaS credential, but does not lead them through the installation flow. After their SaaS credential is persisted by Ampersand, you can then make an API request to the CreateInstallation endpoint.
The parameters of the component are:
- provider (string): the name SaaS provider, such as “salesforce”.
- consumerRef (string): the ID that your app uses to identify this end user.
- consumerName (string, optional): the display name for this end user.
- groupRef (string): the ID that your app uses to identify a company, team, or workspace. See group.
- groupName (string, optional): the display name for this group.
- redirectUrl (string, optional): if provided, the page will be redirected to this URL once a consumer successfully connects. This can either be an absolute or relative URL.
- onConnectSuccess (function, optional): a callback function that gets invoked after a consumer successfully connects.
- onDisconnectSuccess (function, optional): a callback function that gets invoked after a consumer successfully disconnects.
Both onConnectSuccess
and onDisconnectSuccess
should be functions with the following signature: (connection: Connection) => void
. Connection
is an exported type from @amp-labs/react
.
Hooks
Check if integration is installed
We provide a hook useIsIntegrationInstalled
to check if an integration has been installed yet for this group. It takes in 2 parameters:
- integration (string): the name of an integration that you’ve defined in
amp.yaml
. See Defining integrations. - groupRef (string): the ID that your app uses to identify a company, team, or workspace. See group.
It returns an object with fields isLoaded
checking if API call is resolved and isIntegrationInstalled
indicating whether the integration has already been installed by somebody in the group.
Customize styles
To customize the look and feel of Ampersand components, import your own CSS file directly after @amp-labs/react/styles
.
You can override CSS variables that are exposed in the variables.css file. By convention, CSS variables that are used in the Ampersand components are named with --amp
as a prefix.
Example App.css
Dark mode
Ampersand’s UI components support dark mode. Ensure that you have the following lines in your application’s CSS:
When a user sets their system settings to dark mode, then Ampersand’s UI components will automatically render in dark mode. We do this by making use of the light-dark CSS function in our default colors. You can customize the colors by adding an override CSS file. See Customize styles.
Migrating to v2
@amp-labs/react
v2.x.x no longer requires Chakra as a dependency, and also provides users with the ability to customize styles. When upgrading from v1.x.x. to v2.x.x, you must add an additional line after importing the library:
Troubleshooting
Why does does styling look so bare?
You likely forgot to import the stylesheet, please add this line once in your application.
Was this page helpful?