diff --git a/frontend/control-center/src/components/ChannelAvatar/index.tsx b/frontend/control-center/src/components/ChannelAvatar/index.tsx index 796d5361d4..f57ea9aa14 100644 --- a/frontend/control-center/src/components/ChannelAvatar/index.tsx +++ b/frontend/control-center/src/components/ChannelAvatar/index.tsx @@ -6,10 +6,13 @@ import {ReactComponent as FacebookAvatar} from 'assets/images/icons/facebookMess import {ReactComponent as AiryAvatar} from 'assets/images/icons/airyLogo.svg'; import {ReactComponent as InstagramAvatar} from 'assets/images/icons/instagramLogoFilled.svg'; import {ReactComponent as TwilioAvatar} from 'assets/images/icons/twilioLogo.svg'; -import {ReactComponent as ViberAvatar} from 'assets/images/icons/viberLogoFilled.svg'; +import {ReactComponent as ViberAvatar} from 'assets/images/icons/viber.svg'; import {ReactComponent as ZendeskAvatar} from 'assets/images/icons/zendeskLogo.svg'; import {ReactComponent as DialogflowAvatar} from 'assets/images/icons/dialogflowLogo.svg'; import {ReactComponent as SalesforceAvatar} from 'assets/images/icons/salesforceLogo.svg'; +import {ReactComponent as CongnigyAvatar} from 'assets/images/icons/congnigyLogo.svg'; +import {ReactComponent as RasaAvatar} from 'assets/images/icons/rasaLogo.svg'; +import {ReactComponent as AmeliaAvatar} from 'assets/images/icons/ameliaLogo.svg'; import {Channel, Source} from 'model'; import styles from './index.module.scss'; @@ -61,6 +64,12 @@ export const getChannelAvatar = (source: string) => { case Source.salesforce: case 'Salesforce': return ; + case 'Congnigy': + return ; + case 'Rasa': + return ; + case 'Amelia': + return ; default: return ; } diff --git a/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss b/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss index 4472297f95..3394acc0a2 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss +++ b/frontend/control-center/src/pages/Catalog/CatalogCard/index.module.scss @@ -42,6 +42,7 @@ svg { height: 55px; + max-width: 85px; fill: var(--color-text-contrast); } } diff --git a/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx b/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx index 1e9b015fcc..7012fc8c01 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx +++ b/frontend/control-center/src/pages/Catalog/CatalogCard/index.tsx @@ -45,7 +45,7 @@ export const getDescriptionSourceName = (name: string, displayName: string) => { const CatalogCard = (props: CatalogCardProps) => { const {component, componentInfo, installComponent} = props; - const isInstalled = component[componentInfo?.name].installed; + const isInstalled = component[componentInfo?.name]?.installed; const [isModalVisible, setIsModalVisible] = useState(false); const [isInstalling, setIsInstalling] = useState(false); const [notification, setNotification] = useState(null); diff --git a/frontend/control-center/src/pages/Catalog/CatalogItemDetails/index.module.scss b/frontend/control-center/src/pages/Catalog/CatalogItemDetails/index.module.scss index 9c34dba9a1..000468f7cb 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogItemDetails/index.module.scss +++ b/frontend/control-center/src/pages/Catalog/CatalogItemDetails/index.module.scss @@ -87,6 +87,9 @@ .logoIcon { width: 120px; + height: 125px; + display: flex; + align-items: center; } .installButton { diff --git a/frontend/control-center/src/pages/Catalog/CatalogItemDetails/index.tsx b/frontend/control-center/src/pages/Catalog/CatalogItemDetails/index.tsx index d34929768e..ba4d29b49c 100644 --- a/frontend/control-center/src/pages/Catalog/CatalogItemDetails/index.tsx +++ b/frontend/control-center/src/pages/Catalog/CatalogItemDetails/index.tsx @@ -159,12 +159,20 @@ const CatalogItemDetails = (props: ConnectedProps) => {

{t('price')}:

- +

- Airy Docs:
{' '} + Docs:
{' '} {componentInfo?.docs} diff --git a/frontend/control-center/src/pages/Catalog/getRouteForCard.ts b/frontend/control-center/src/pages/Catalog/getRouteForCard.ts index 88678b847b..bff9b12686 100644 --- a/frontend/control-center/src/pages/Catalog/getRouteForCard.ts +++ b/frontend/control-center/src/pages/Catalog/getRouteForCard.ts @@ -26,6 +26,13 @@ import { CATALOG_DIALOGFLOW_ROUTE, CATALOG_ZENDESK_ROUTE, CATALOG_SALESFORCE_ROUTE, + CATALOG_CONGNIFY_ROUTE, + CATALOG_AMELIA_ROUTE, + CATALOG_FRONTEND_INBOX_ROUTE, + CATALOG_RASA_ROUTE, + CATALOG_WEBHOOKS_ROUTE, + CATALOG_MOBILE_ROUTE, + CATALOG_VIBER_ROUTE, } from '../../routes/routes'; export const getConnectedRouteForComponent = (displayName: string) => { @@ -100,5 +107,19 @@ export const getCatalogProductRouteForComponent = (displayName: string) => { return CATALOG_SALESFORCE_ROUTE; case 'Zendesk': return CATALOG_ZENDESK_ROUTE; + case 'Congnigy': + return CATALOG_CONGNIFY_ROUTE; + case 'Amelia': + return CATALOG_AMELIA_ROUTE; + case 'Inbox': + return CATALOG_FRONTEND_INBOX_ROUTE; + case 'Rasa': + return CATALOG_RASA_ROUTE; + case 'Mobile': + return CATALOG_MOBILE_ROUTE; + case 'Webhooks': + return CATALOG_WEBHOOKS_ROUTE; + case 'Viber': + return CATALOG_VIBER_ROUTE; } }; diff --git a/frontend/control-center/src/pages/Catalog/index.tsx b/frontend/control-center/src/pages/Catalog/index.tsx index 6e0d97b6eb..0daa42dece 100644 --- a/frontend/control-center/src/pages/Catalog/index.tsx +++ b/frontend/control-center/src/pages/Catalog/index.tsx @@ -4,7 +4,7 @@ import {connect, ConnectedProps, useSelector} from 'react-redux'; import {listComponents} from '../../actions/catalog'; import {StateModel} from '../../reducers'; import {setPageTitle} from '../../services'; -import {ComponentInfo, getSourceForComponent} from 'model'; +import {ComponentInfo} from 'model'; import CatalogCard from './CatalogCard'; import styles from './index.module.scss'; @@ -44,7 +44,7 @@ const Catalog = (props: ConnectedProps) => {

{orderedCatalogList && orderedCatalogList.map((infoItem: ComponentInfo) => { - if (infoItem?.name && !infoItem.name.includes('viber') && getSourceForComponent(infoItem.name)) { + if (infoItem?.name && infoItem?.displayName) { return ; } })} diff --git a/frontend/control-center/src/pages/Connectors/index.tsx b/frontend/control-center/src/pages/Connectors/index.tsx index 70113c990f..4d81a30be8 100644 --- a/frontend/control-center/src/pages/Connectors/index.tsx +++ b/frontend/control-center/src/pages/Connectors/index.tsx @@ -85,8 +85,7 @@ const Connectors = (props: ConnectedProps) => { <> {sourcesInfo.map((infoItem: SourceInfo, index: number) => { return ( - (channelsBySource(infoItem.type).length > 0 && - components && + (components && components[infoItem?.configKey] && isInstalled && connectors[infoItem.configKey] && diff --git a/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx b/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx index 979aedb917..e70dc5d463 100644 --- a/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx +++ b/frontend/control-center/src/pages/Status/ComponentListItem/ItemInfo.tsx @@ -28,16 +28,6 @@ const mapDispatchToProps = { const connector = connect(null, mapDispatchToProps); -const formatName = (name: string) => { - if (name?.includes('enterprise')) { - name = name.replace('enterprise-', ''); - } - if (name?.includes('sources')) { - name = name.replace('sources-', ''); - } - return name; -}; - const isConfigurableConnector = (name: string) => { let isConfigurable = false; @@ -59,9 +49,7 @@ const ItemInfo = (props: ComponentInfoProps) => { const {t} = useTranslation(); const isComponentConfigured = - connectors[formatName(itemName)] && - isConfigurableConnector(itemName) && - Object.keys(connectors[formatName(itemName)]).length > 0; + connectors[itemName] && isConfigurableConnector(itemName) && Object.keys(connectors[itemName]).length > 0; //status const needsConfig = diff --git a/frontend/control-center/src/pages/Status/ComponentListItem/index.module.scss b/frontend/control-center/src/pages/Status/ComponentListItem/index.module.scss index da1fedb7ae..f4a76994ca 100644 --- a/frontend/control-center/src/pages/Status/ComponentListItem/index.module.scss +++ b/frontend/control-center/src/pages/Status/ComponentListItem/index.module.scss @@ -122,8 +122,6 @@ } .enableModalContainerWrapper { - width: 50%; - height: 70%; display: flex; flex-direction: column; justify-content: center; diff --git a/frontend/control-center/src/routes/routes.ts b/frontend/control-center/src/routes/routes.ts index 5359a8aa86..c90969f8e1 100644 --- a/frontend/control-center/src/routes/routes.ts +++ b/frontend/control-center/src/routes/routes.ts @@ -36,6 +36,13 @@ export const CATALOG_INSTAGRAM_ROUTE = '/catalog/instagram'; export const CATALOG_DIALOGFLOW_ROUTE = '/catalog/dialogflow'; export const CATALOG_ZENDESK_ROUTE = '/catalog/zendesk'; export const CATALOG_SALESFORCE_ROUTE = '/catalog/salesforce'; +export const CATALOG_CONGNIFY_ROUTE = '/catalog/congnify'; +export const CATALOG_AMELIA_ROUTE = '/catalog/amelia'; +export const CATALOG_FRONTEND_INBOX_ROUTE = '/catalog/frontend-inbox'; +export const CATALOG_RASA_ROUTE = '/catalog/rasa'; +export const CATALOG_WEBHOOKS_ROUTE = '/catalog/webhooks'; +export const CATALOG_MOBILE_ROUTE = '/catalog/mobile'; +export const CATALOG_VIBER_ROUTE = '/catalog/viber'; export const INBOX_ROUTE = '/inbox'; export const INBOX_CONNECTED_ROUTE = '/inbox/connected'; diff --git a/lib/typescript/assets/images/icons/ameliaLogo.svg b/lib/typescript/assets/images/icons/ameliaLogo.svg new file mode 100644 index 0000000000..cf7d40a7da --- /dev/null +++ b/lib/typescript/assets/images/icons/ameliaLogo.svg @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib/typescript/assets/images/icons/congnigyLogo.svg b/lib/typescript/assets/images/icons/congnigyLogo.svg new file mode 100644 index 0000000000..038ca24eae --- /dev/null +++ b/lib/typescript/assets/images/icons/congnigyLogo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/lib/typescript/assets/images/icons/rasaLogo.svg b/lib/typescript/assets/images/icons/rasaLogo.svg new file mode 100644 index 0000000000..2b693eda89 --- /dev/null +++ b/lib/typescript/assets/images/icons/rasaLogo.svg @@ -0,0 +1 @@ +Artboard 4 \ No newline at end of file diff --git a/lib/typescript/assets/images/icons/viber.svg b/lib/typescript/assets/images/icons/viber.svg index b776d0bd90..58e9d4ff00 100644 --- a/lib/typescript/assets/images/icons/viber.svg +++ b/lib/typescript/assets/images/icons/viber.svg @@ -1,32 +1,11 @@ - - - - - - - - - - - + + + + + + \ No newline at end of file diff --git a/lib/typescript/assets/images/icons/viberLogoFilled.svg b/lib/typescript/assets/images/icons/viberLogoFilled.svg deleted file mode 100644 index 042093970d..0000000000 --- a/lib/typescript/assets/images/icons/viberLogoFilled.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/lib/typescript/components/general/ConnectorAvatar/index.tsx b/lib/typescript/components/general/ConnectorAvatar/index.tsx index 8a245bb509..3a75d865ae 100644 --- a/lib/typescript/components/general/ConnectorAvatar/index.tsx +++ b/lib/typescript/components/general/ConnectorAvatar/index.tsx @@ -6,7 +6,7 @@ import {ReactComponent as FacebookAvatar} from 'assets/images/icons/facebookMess import {ReactComponent as AiryAvatar} from 'assets/images/icons/airyLogo.svg'; import {ReactComponent as InstagramAvatar} from 'assets/images/icons/instagramLogoFilled.svg'; import {ReactComponent as TwilioAvatar} from 'assets/images/icons/twilioLogo.svg'; -import {ReactComponent as ViberAvatar} from 'assets/images/icons/viberLogoFilled.svg'; +import {ReactComponent as ViberAvatar} from 'assets/images/icons/viber.svg'; import {ReactComponent as ZendeskAvatar} from 'assets/images/icons/zendeskLogo.svg'; import {ReactComponent as DialogflowAvatar} from 'assets/images/icons/dialogflowLogo.svg'; import {Source} from 'model'; diff --git a/lib/typescript/model/Source.ts b/lib/typescript/model/Source.ts index bd9e2ad555..a766c4399b 100644 --- a/lib/typescript/model/Source.ts +++ b/lib/typescript/model/Source.ts @@ -10,6 +10,12 @@ export enum Source { zendesk = 'zendesk', dialogflow = 'dialogflow', salesforce = 'salesforce', + congnigy = 'congnigy', + rasa = 'rasa', + webhooks = 'webhooks', + amelia = 'amelia', + frontendinbox = 'frontendinbox', + mobile = 'mobile', } export const prettifySource = (source: string) => @@ -34,5 +40,6 @@ export const getSourceForComponent = (item: string) => { if (componentName === 'chatplugin') componentName = 'chatPlugin'; if (componentName === 'whatsappbusinesscloud') componentName = 'twilioWhatsApp'; if (componentName === 'salesforcecontactsingestion') componentName = 'salesforce'; + return Source[componentName]; }; diff --git a/lib/typescript/translations/translations.ts b/lib/typescript/translations/translations.ts index b82915f241..072bdf9218 100644 --- a/lib/typescript/translations/translations.ts +++ b/lib/typescript/translations/translations.ts @@ -379,6 +379,27 @@ const resources = { connectWhatsappNumber: 'Connect Whatsapp Number', updateWhatsappNumber: 'Update Whatsapp Number', + //Congnigy + congnigyDescription: 'A low-code UI for conversational AI.', + + //Rasa + rasaDescription: 'Open source conversational AI.', + + //webhooks + webhooksDescription: 'Get notified when events happen.', + + //amelia + ameliaDescription: 'An intelligent cognitive conversational chatbot.', + + //mobile + mobileDescription: 'An Airy mobile app for your Inbox.', + + //viber + viberDescription: 'The messaging app connecting over a billion people worldwide.', + + //Inbox + frontendinboxDescription: 'An Inbox to view and organize all your conversations.', + //Connectors connectors: 'Connectors', noResults: 'Result not found.', @@ -395,6 +416,7 @@ const resources = { price: 'Price', Free: 'Free', Paid: 'Paid', + ['REQUEST ACCESS']: 'REQUEST ACCESS', //NotFound notFound: `Oops! We couldn't find that here.`, @@ -757,6 +779,27 @@ const resources = { securityToken: 'Sicherheitstoken', yourSalesforceSecurityToken: 'Ihr Salesforce-Sicherheitstoken', + //Congnigy + congnigyDescription: 'Eine Low-Code-Benutzeroberfläche für Konversations-KI.', + + //Rasa + rasaDescription: 'Open-Source-Gesprächs-KI.', + + //webhooks + webhooksDescription: 'Lassen Sie sich benachrichtigen, wenn Ereignisse eintreten.', + + //amelia + ameliaDescription: 'Ein intelligenter kognitiver Konversations-Chatbot.', + + //mobile + mobileDescription: 'Eine mobile Airy-App für Ihren Posteingang.', + + //viber + viberDescription: 'Die Messaging-App, die über eine Milliarde Menschen weltweit verbindet.', + + //Inbox + frontendinboxDescription: 'Ein Inbox zum Anzeigen und Organisieren aller Ihrer Konversationen.', + //Facebook Messenger connectMessenger: 'Messenger verbinden', facebookConfiguration: 'Die Facebook-Quelle erfordert die folgende Konfiguration:', @@ -830,6 +873,7 @@ const resources = { price: 'Preis', Free: 'Kostenlos', Paid: 'Kostenpflichtig', + ['REQUEST ACCESS']: 'ANFRAGE ZUGANG', //NotFound notFound: 'Huch! Das konnten wir hier nicht finden.', @@ -1241,6 +1285,27 @@ const resources = { connectWhatsappNumber: 'Connecter le numéro Whatsapp', updateWhatsappNumber: 'Mise à jour du numéro Whatsapp', + //Congnigy + congnigyDescription: "Une interface utilisateur low-code pour l'IA conversationnelle.", + + //Rasa + rasaDescription: 'IA conversationnelle open source.', + + //webhooks + webhooksDescription: 'Soyez averti lorsque des événements se produisent.', + + //amelia + ameliaDescription: 'Un chatbot conversationnel cognitif intelligent.', + + //mobile + mobileDescription: 'Une application mobile Airy pour votre boîte de réception.', + + //viber + viberDescription: "L'application de messagerie connectant plus d'un milliard de personnes dans le monde.", + + //Inbox + frontendinboxDescription: 'Une boîte de réception pour afficher et organiser toutes vos conversations.', + //Connectors connectors: 'Connecteurs', noResults: 'Résultat non trouvé.', @@ -1257,6 +1322,7 @@ const resources = { price: 'Prix', Free: 'Gratuit', Paid: 'Payant', + ['REQUEST ACCESS']: "DEMANDE D'ACCÈS", //NotFound notFound: 'Oups! Page non trouvée.', @@ -1672,6 +1738,27 @@ const resources = { connectWhatsappNumber: 'Conectar el número de Whatsapp', updateWhatsappNumber: 'Actualizar el número de Whatsapp', + //Congnigy + congnigyDescription: 'Una interfaz de usuario de código bajo para IA conversacional.', + + //Rasa + rasaDescription: 'IA conversacional Open Source.', + + //webhooks + webhooksDescription: 'Reciba notificaciones cuando ocurran eventos.', + + //amelia + ameliaDescription: 'Un chatbot conversacional cognitivo inteligente.', + + //mobile + mobileDescription: 'Una aplicación móvil Airy para su bandeja de entrada.', + + //viber + viberDescription: 'La aplicación de mensajería que conecta a más de mil millones de personas en todo el mundo.', + + //Inbox + frontendinboxDescription: 'Una bandeja de entrada para ver y organizar todas tus conversaciones.', + //Connectors connectors: 'Conectores', noResults: 'Resultado no encontrado.', @@ -1688,6 +1775,7 @@ const resources = { price: 'Precio', Free: 'Gratis', Paid: 'Premium', + ['REQUEST ACCESS']: 'SOLICITAR ACCESO', //NotFound notFound: '¡Uy! No pudimos encontrarlo aquí.',