Skip to content

Commit bdc113c

Browse files
1 parent e4edc99 commit bdc113c

File tree

1 file changed

+20
-25
lines changed

1 file changed

+20
-25
lines changed

static/app/components/feedback/feedbackItem/feedbackItem.tsx

+20-25
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {Fragment, useEffect, useRef} from 'react';
2+
import {useTheme} from '@emotion/react';
23
import styled from '@emotion/styled';
34

45
import {openNavigateToExternalLinkModal} from 'sentry/actionCreators/modal';
@@ -10,9 +11,9 @@ import Section from 'sentry/components/feedback/feedbackItem/feedbackItemSection
1011
import FeedbackReplay from 'sentry/components/feedback/feedbackItem/feedbackReplay';
1112
import MessageSection from 'sentry/components/feedback/feedbackItem/messageSection';
1213
import TagsSection from 'sentry/components/feedback/feedbackItem/tagsSection';
13-
import ExternalLink from 'sentry/components/links/externalLink';
1414
import PanelItem from 'sentry/components/panels/panelItem';
1515
import QuestionTooltip from 'sentry/components/questionTooltip';
16+
import TextCopyInput from 'sentry/components/textCopyInput';
1617
import {IconChat, IconFire, IconLink, IconTag} from 'sentry/icons';
1718
import {t} from 'sentry/locale';
1819
import {space} from 'sentry/styles/space';
@@ -32,6 +33,7 @@ export default function FeedbackItem({feedbackItem, eventData, tags}: Props) {
3233
eventData?.contexts.feedback?.url ??
3334
eventData?.tags.find(tag => tag.key === 'url')?.value;
3435
const crashReportId = eventData?.contexts?.feedback?.associated_event_id;
36+
const theme = useTheme();
3537

3638
const overflowRef = useRef<HTMLDivElement>(null);
3739
useEffect(() => {
@@ -43,6 +45,11 @@ export default function FeedbackItem({feedbackItem, eventData, tags}: Props) {
4345
}, 100);
4446
}, [feedbackItem.id, overflowRef]);
4547

48+
const URL_NOT_FOUND = t('URL not found');
49+
const displayUrl =
50+
eventData?.contexts.feedback || eventData?.tags ? url ?? URL_NOT_FOUND : '';
51+
const urlIsLink = displayUrl.length && displayUrl !== URL_NOT_FOUND;
52+
4653
return (
4754
<Fragment>
4855
<FeedbackItemHeader eventData={eventData} feedbackItem={feedbackItem} />
@@ -53,24 +60,19 @@ export default function FeedbackItem({feedbackItem, eventData, tags}: Props) {
5360

5461
{!crashReportId || (crashReportId && url) ? (
5562
<Section icon={<IconLink size="xs" />} title={t('URL')}>
56-
<UrlWrapper>
57-
{eventData?.contexts.feedback || eventData?.tags ? (
58-
url ? (
59-
<ExternalLink
60-
onClick={e => {
63+
<TextCopyInput
64+
style={urlIsLink ? {color: theme.blue400} : undefined}
65+
onClick={
66+
urlIsLink
67+
? e => {
6168
e.preventDefault();
62-
openNavigateToExternalLinkModal({linkText: url});
63-
}}
64-
>
65-
{url}
66-
</ExternalLink>
67-
) : (
68-
t('URL not found')
69-
)
70-
) : (
71-
''
72-
)}
73-
</UrlWrapper>
69+
openNavigateToExternalLinkModal({linkText: displayUrl});
70+
}
71+
: () => {}
72+
}
73+
>
74+
{displayUrl}
75+
</TextCopyInput>
7476
</Section>
7577
) : null}
7678

@@ -126,10 +128,3 @@ const OverflowPanelItem = styled(PanelItem)`
126128
gap: ${space(2)};
127129
padding: ${space(2)} ${space(2)} 0 ${space(2)};
128130
`;
129-
130-
const UrlWrapper = styled('div')`
131-
border-radius: ${p => p.theme.borderRadius};
132-
border: 1px solid ${p => p.theme.border};
133-
padding: ${space(0.75)} ${space(1.5)};
134-
line-height: 1.3em;
135-
`;

0 commit comments

Comments
 (0)