Merge pull request #504 from automatisch/issue-498

feat: show CTA for connecting to services
This commit is contained in:
Ömer Faruk Aydın
2022-09-13 21:32:12 +03:00
committed by GitHub
8 changed files with 23 additions and 6 deletions

View File

@@ -3,6 +3,7 @@
"key": "scheduler", "key": "scheduler",
"iconUrl": "{BASE_URL}/apps/scheduler/assets/favicon.svg", "iconUrl": "{BASE_URL}/apps/scheduler/assets/favicon.svg",
"docUrl": "https://automatisch.io/docs/scheduler", "docUrl": "https://automatisch.io/docs/scheduler",
"authDocUrl": "https://automatisch.io/docs/connections/scheduler",
"primaryColor": "0059F7", "primaryColor": "0059F7",
"supportsConnections": false, "supportsConnections": false,
"requiresAuthentication": false, "requiresAuthentication": false,

View File

@@ -3,6 +3,7 @@
"key": "slack", "key": "slack",
"iconUrl": "{BASE_URL}/apps/slack/assets/favicon.svg", "iconUrl": "{BASE_URL}/apps/slack/assets/favicon.svg",
"docUrl": "https://automatisch.io/docs/slack", "docUrl": "https://automatisch.io/docs/slack",
"authDocUrl": "https://automatisch.io/docs/connections/slack",
"primaryColor": "2DAAE1", "primaryColor": "2DAAE1",
"supportsConnections": true, "supportsConnections": true,
"fields": [ "fields": [
@@ -15,7 +16,6 @@
"value": null, "value": null,
"placeholder": null, "placeholder": null,
"description": "Access token of slack that Automatisch will connect to.", "description": "Access token of slack that Automatisch will connect to.",
"docUrl": "https://automatisch.io/docs/slack#access-token",
"clickToCopy": false "clickToCopy": false
} }
], ],

View File

@@ -3,6 +3,7 @@
"key": "twitter", "key": "twitter",
"iconUrl": "{BASE_URL}/apps/twitter/assets/favicon.svg", "iconUrl": "{BASE_URL}/apps/twitter/assets/favicon.svg",
"docUrl": "https://automatisch.io/docs/twitter", "docUrl": "https://automatisch.io/docs/twitter",
"authDocUrl": "https://automatisch.io/docs/connections/twitter",
"primaryColor": "2DAAE1", "primaryColor": "2DAAE1",
"supportsConnections": true, "supportsConnections": true,
"fields": [ "fields": [
@@ -15,7 +16,6 @@
"value": "{WEB_APP_URL}/app/twitter/connections/add", "value": "{WEB_APP_URL}/app/twitter/connections/add",
"placeholder": null, "placeholder": null,
"description": "When asked to input an OAuth callback or redirect URL in Twitter OAuth, enter the URL above.", "description": "When asked to input an OAuth callback or redirect URL in Twitter OAuth, enter the URL above.",
"docUrl": "https://automatisch.io/docs/twitter#oauth-redirect-url",
"clickToCopy": true "clickToCopy": true
}, },
{ {
@@ -27,7 +27,6 @@
"value": null, "value": null,
"placeholder": null, "placeholder": null,
"description": null, "description": null,
"docUrl": "https://automatisch.io/docs/twitter#consumer-key",
"clickToCopy": false "clickToCopy": false
}, },
{ {
@@ -39,7 +38,6 @@
"value": null, "value": null,
"placeholder": null, "placeholder": null,
"description": null, "description": null,
"docUrl": "https://automatisch.io/docs/twitter#consumer-secret",
"clickToCopy": false "clickToCopy": false
} }
], ],

View File

@@ -101,6 +101,7 @@ type App {
flowCount: Int flowCount: Int
iconUrl: String iconUrl: String
docUrl: String docUrl: String
authDocUrl: String
primaryColor: String primaryColor: String
supportsConnections: Boolean supportsConnections: Boolean
fields: [Field] fields: [Field]

View File

@@ -150,6 +150,7 @@ export interface IApp {
key: string; key: string;
iconUrl: string; iconUrl: string;
docUrl: string; docUrl: string;
authDocUrl: string;
primaryColor: string; primaryColor: string;
supportsConnections: boolean; supportsConnections: boolean;
fields: IField[]; fields: IField[];

View File

@@ -14,6 +14,10 @@ import InputCreator from 'components/InputCreator';
import type { IApp, IField } from '@automatisch/types'; import type { IApp, IField } from '@automatisch/types';
import { Form } from './style'; import { Form } from './style';
const generateDocsLink = (link: string) => (str: string) => (
<a href={link} target="_blank">{str}</a>
);
type AddAppConnectionProps = { type AddAppConnectionProps = {
onClose: () => void; onClose: () => void;
application: IApp; application: IApp;
@@ -26,7 +30,7 @@ type Response = {
export default function AddAppConnection(props: AddAppConnectionProps): React.ReactElement { export default function AddAppConnection(props: AddAppConnectionProps): React.ReactElement {
const { application, connectionId, onClose } = props; const { application, connectionId, onClose } = props;
const { key, fields, authenticationSteps, reconnectionSteps } = application; const { name, authDocUrl, key, fields, authenticationSteps, reconnectionSteps } = application;
const formatMessage = useFormatMessage(); const formatMessage = useFormatMessage();
const [errorMessage, setErrorMessage] = React.useState<string | null>(null); const [errorMessage, setErrorMessage] = React.useState<string | null>(null);
const [inProgress, setInProgress] = React.useState(false); const [inProgress, setInProgress] = React.useState(false);
@@ -82,8 +86,18 @@ export default function AddAppConnection(props: AddAppConnectionProps): React.Re
<Dialog open={true} onClose={onClose}> <Dialog open={true} onClose={onClose}>
<DialogTitle>{hasConnection ? formatMessage('app.reconnectConnection') : formatMessage('app.addConnection')}</DialogTitle> <DialogTitle>{hasConnection ? formatMessage('app.reconnectConnection') : formatMessage('app.addConnection')}</DialogTitle>
<Alert severity="info" sx={{ fontWeight: 300 }}>
{formatMessage(
'addAppConnection.callToDocs',
{
appName: name,
docsLink: generateDocsLink(authDocUrl)
}
)}
</Alert>
{errorMessage && ( {errorMessage && (
<Alert severity="error" sx={{ mb: 1, fontWeight: 500 }}> <Alert severity="error" sx={{ mt: 1, fontWeight: 500 }}>
{errorMessage} {errorMessage}
</Alert> </Alert>
)} )}

View File

@@ -7,6 +7,7 @@ export const GET_APP = gql`
key key
iconUrl iconUrl
docUrl docUrl
authDocUrl
primaryColor primaryColor
supportsConnections supportsConnections
fields { fields {

View File

@@ -27,6 +27,7 @@
"apps.searchApp": "Search for app", "apps.searchApp": "Search for app",
"apps.noConnections": "You don't have any connections yet.", "apps.noConnections": "You don't have any connections yet.",
"addAppConnection.submit": "Submit", "addAppConnection.submit": "Submit",
"addAppConnection.callToDocs": "Visit <docsLink>our documentation</docsLink> to see how to add connection for {appName}.",
"connection.flowCount": "{count} flows", "connection.flowCount": "{count} flows",
"connection.viewFlows": "View flows", "connection.viewFlows": "View flows",
"connection.testConnection": "Test connection", "connection.testConnection": "Test connection",