123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import type {ButtonProps} from 'sentry/components/button';
- import {LinkButton} from 'sentry/components/button';
- import {IconGithub} from 'sentry/icons';
- import {t} from 'sentry/locale';
- import type {Organization} from 'sentry/types/organization';
- import type {IntegrationView} from 'sentry/utils/analytics/integrations';
- import {
- platformEventLinkMap,
- PlatformEvents,
- } from 'sentry/utils/analytics/integrations/platformAnalyticsEvents';
- import {trackIntegrationAnalytics} from 'sentry/utils/integrationUtil';
- import withOrganization from 'sentry/utils/withOrganization';
- type ExampleIntegrationButtonProps = {
- analyticsView: IntegrationView['view'];
- organization: Organization;
- } & ButtonProps;
- /**
- * Button to direct users to the Example App repository
- */
- function ExampleIntegrationButton({
- organization,
- analyticsView,
- ...buttonProps
- }: ExampleIntegrationButtonProps) {
- return (
- <LinkButton
- size="sm"
- external
- href={platformEventLinkMap[PlatformEvents.EXAMPLE_SOURCE] ?? ''}
- onClick={() => {
- trackIntegrationAnalytics(PlatformEvents.EXAMPLE_SOURCE, {
- organization,
- view: analyticsView,
- });
- }}
- icon={<IconGithub />}
- {...buttonProps}
- >
- {t('View Example App')}
- </LinkButton>
- );
- }
- export default withOrganization(ExampleIntegrationButton);
|