import {Link} from 'react-router'; import styled from '@emotion/styled'; import * as qs from 'query-string'; import ProjectAvatar from 'sentry/components/avatar/projectAvatar'; import {space} from 'sentry/styles/space'; import {useLocation} from 'sentry/utils/useLocation'; import useOrganization from 'sentry/utils/useOrganization'; import useProjects from 'sentry/utils/useProjects'; import {normalizeUrl} from 'sentry/utils/withDomainRequired'; import {OverflowEllipsisTextContainer} from 'sentry/views/starfish/components/textAlign'; interface Props { domain?: string; projectId?: string; } export function DomainCell({projectId, domain}: Props) { const location = useLocation(); const organization = useOrganization(); const {projects} = useProjects(); // NOTE: This is for safety only, the product should not fetch or render rows with missing domains or project IDs if (!domain) { return NULL_DESCRIPTION; } const project = projects.find(p => projectId === p.id); const queryString = { ...location.query, domain, }; return ( {project && } {domain} ); } const DomainDescription = styled('div')` display: flex; flex-wrap: nowrap; gap: ${space(1)}; align-items: center; `; const NULL_DESCRIPTION = <null>;