diff --git a/frontend/app/components/Client/Integrations/Integrations.tsx b/frontend/app/components/Client/Integrations/Integrations.tsx index bf47663f1..abbd506ea 100644 --- a/frontend/app/components/Client/Integrations/Integrations.tsx +++ b/frontend/app/components/Client/Integrations/Integrations.tsx @@ -24,7 +24,7 @@ import NgRxDoc from './NgRxDoc'; import MobxDoc from './MobxDoc'; import ProfilerDoc from './ProfilerDoc'; import AssistDoc from './AssistDoc'; -import { PageTitle } from 'UI'; +import { PageTitle, Tooltip } from 'UI'; import AnimatedSVG, { ICONS } from 'Shared/AnimatedSVG/AnimatedSVG'; import withPageTitle from 'HOCs/withPageTitle'; import PiniaDoc from './PiniaDoc' @@ -77,7 +77,7 @@ function Integrations(props: Props) {
{!hideHeader && Integrations
} />} {integrations.map((cat: any) => ( -
+

{cat.title}

{cat.isProject && ( @@ -92,20 +92,26 @@ function Integrations(props: Props) {
{cat.description}
- {/* */} {cat.integrations.map((integration: any) => ( - onClick(integration, cat.title === "Plugins" ? 500 : 350)} - hide={ - (integration.slug === 'github' && integratedList.includes('jira')) || - (integration.slug === 'jira' && integratedList.includes('github')) - } - /> + + + onClick(integration, cat.title === "Plugins" ? 500 : 350)} + hide={ + (integration.slug === 'github' && integratedList.includes('jira')) || + (integration.slug === 'jira' && integratedList.includes('github')) + } + /> + + ))} - {/* */}
))} @@ -126,22 +132,24 @@ export default connect( const integrations = [ { title: 'Issue Reporting and Collaborations', + key: 1, description: 'Seamlessly report issues or share issues with your team right from OpenReplay.', isProject: false, integrations: [ { title: 'Jira', slug: 'jira', category: 'Errors', icon: 'integrations/jira', component: }, { title: 'Github', slug: 'github', category: 'Errors', icon: 'integrations/github', component: }, - { title: 'Slack', slug: 'slack', category: 'Errors', icon: 'integrations/slack', component: }, - { title: 'MS Teams', slug: 'msteams', category: 'Errors', icon: 'integrations/teams', component: }, + { title: 'Slack', slug: 'slack', category: 'Errors', icon: 'integrations/slack', component: , shared: true }, + { title: 'MS Teams', slug: 'msteams', category: 'Errors', icon: 'integrations/teams', component: , shared: true }, ], }, { title: 'Backend Logging', + key: 2, isProject: true, description: 'Sync your backend errors with sessions replays and see what happened front-to-back.', integrations: [ { title: 'Sentry', slug: 'sentry', icon: 'integrations/sentry', component: }, - { title: 'Datadog', slug: 'datadog', icon: 'integrations/datadog', component: }, + { title: 'Bugsnag', slug: 'bugsnag', icon: 'integrations/bugsnag', component: }, { title: 'Rollbar', slug: 'rollbar', icon: 'integrations/rollbar', component: }, { title: 'Elasticsearch', slug: 'elasticsearch', icon: 'integrations/elasticsearch', component: }, { title: 'Datadog', slug: 'datadog', icon: 'integrations/datadog', component: }, @@ -158,19 +166,20 @@ const integrations = [ }, { title: 'Plugins', + key: 3, isProject: true, description: "Reproduce issues as if they happened in your own browser. Plugins help capture your application's store, HTTP requeets, GraphQL queries, and more.", integrations: [ - { title: 'Redux', slug: '', icon: 'integrations/redux', component: }, - { title: 'VueX', slug: '', icon: 'integrations/vuejs', component: }, - { title: 'Pinia', slug: '', icon: 'integrations/pinia', component: }, - { title: 'GraphQL', slug: '', icon: 'integrations/graphql', component: }, - { title: 'NgRx', slug: '', icon: 'integrations/ngrx', component: }, - { title: 'MobX', slug: '', icon: 'integrations/mobx', component: }, - { title: 'Profiler', slug: '', icon: 'integrations/openreplay', component: }, - { title: 'Assist', slug: '', icon: 'integrations/openreplay', component: }, - { title: 'Zustand', slug: '', icon: '', header: '🐻', component: } + { title: 'Redux', slug: 'redux', icon: 'integrations/redux', component: }, + { title: 'VueX', slug: 'vuex', icon: 'integrations/vuejs', component: }, + { title: 'Pinia', slug: 'pinia', icon: 'integrations/pinia', component: }, + { title: 'GraphQL', slug: 'graphql', icon: 'integrations/graphql', component: }, + { title: 'NgRx', slug: 'ngrx', icon: 'integrations/ngrx', component: }, + { title: 'MobX', slug: 'mobx', icon: 'integrations/mobx', component: }, + { title: 'Profiler', slug: 'profiler', icon: 'integrations/openreplay', component: }, + { title: 'Assist', slug: 'assist', icon: 'integrations/openreplay', component: }, + { title: 'Zustand', slug: 'zustand', icon: '', header: '🐻', component: } ], }, ];