import styled from '@emotion/styled'; import {IconDownload} from 'sentry/icons'; import {t} from 'sentry/locale'; import space from 'sentry/styles/space'; import useApi from 'sentry/utils/useApi'; import useOrganization from 'sentry/utils/useOrganization'; import useProjects from 'sentry/utils/useProjects'; import Button, {ButtonPropsWithoutAriaLabel} from '../button'; interface ExportProfileButtonProps extends Omit { eventId: string | undefined; orgId: string | undefined; projectId: string | undefined; children?: React.ReactNode; variant?: 'xs' | 'default'; } export function ExportProfileButton(props: ExportProfileButtonProps) { const api = useApi(); const organization = useOrganization(); const project = useProjects().projects.find(p => { return p.slug === props.projectId; }); const href = `${api.baseUrl}/projects/${props.orgId}/${props.projectId}/profiling/raw_profiles/${props.eventId}/`; const download = `${organization.slug}_${ project?.slug ?? props.projectId ?? 'unknown_project' }_${props.eventId}.profile.json`; const title = t('Export Profile'); return props.variant === 'xs' ? ( {props.children} ) : ( ); } const StyledButtonSmall = styled(Button)` border: none; background-color: transparent; box-shadow: none; transition: none !important; opacity: 0.5; padding: ${space(0.5)} ${space(0.5)}; &:hover { border: none; background-color: transparent; box-shadow: none; } `;