12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import {Link} from 'react-router';
- import * as qs from 'query-string';
- import {useLocation} from 'sentry/utils/useLocation';
- import {OverflowEllipsisTextContainer} from 'sentry/views/starfish/components/textAlign';
- import {extractRoute} from 'sentry/views/starfish/utils/extractRoute';
- import {useRoutingContext} from 'sentry/views/starfish/utils/routingContext';
- interface Props {
- description: React.ReactNode;
- projectId: number;
- endpoint?: string;
- endpointMethod?: string;
- group?: string;
- }
- export function SpanDescriptionLink({
- group,
- projectId,
- endpoint,
- endpointMethod,
- description,
- }: Props) {
- const location = useLocation();
- const routingContext = useRoutingContext();
- const queryString = {
- ...location.query,
- project: projectId,
- endpoint,
- endpointMethod,
- };
- return (
- <OverflowEllipsisTextContainer>
- {group ? (
- <Link
- to={`${routingContext.baseURL}/${
- extractRoute(location) ?? 'spans'
- }/span/${group}?${qs.stringify(queryString)}`}
- >
- {description}
- </Link>
- ) : (
- description
- )}
- </OverflowEllipsisTextContainer>
- );
- }
|