Skip to content

Commit 680d804

Browse files
committed
fix(markdown) allow opening parsed url in same tab
1 parent 9a56d87 commit 680d804

File tree

2 files changed

+12
-21
lines changed

2 files changed

+12
-21
lines changed

apps/storybook/stories/Markdown.stories.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ export const MarkdownOpenLinks = bind(
129129
</HorizontalStack>
130130
<HorizontalStack justifyContent='space-evenly'>
131131
<Markdown size='sm' opensInSameTabRegexes={[PLAYER_REGEX, COURSE_REGEX]} parseUrlsMethod={parseUrl} >[Modify link and open in same tab](learnn://player/7164/?t=14) </Markdown>
132+
<Markdown size='sm' opensInSameTabRegexes={[COURSE_REGEX]} parseUrlsMethod={parseUrl} >[Modify link and open in a new tab](learnn://player/7164/?t=14) </Markdown>
133+
<Markdown size='sm' opensInSameTabRegexes={[COURSE_REGEX]} parseUrlsMethod={parseUrl} >[Modify link and open in a new tab](learnn://corso/1) </Markdown>
132134
</HorizontalStack>
133135
</AppShell>,
134136
)

packages/designn/src/components/Markdown.tsx

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -51,27 +51,16 @@ export const Markdown = ({ children, overrides, opensInSameTabRegexes, parseUrls
5151
const url = props.node.url
5252
const openInSameTab = opensInSameTabRegexes?.some(regex => new RegExp(regex).test(url))
5353
const parsedUrl = parseUrlsMethod?.(url)
54-
if (openInSameTab) {
55-
return (
56-
<a href={url}>
57-
{props.children}
58-
</a>
59-
)
60-
}
61-
else if (parsedUrl) {
62-
return (
63-
<a href={parsedUrl}>
64-
{props.children}
65-
</a>
66-
)
67-
}
68-
else {
69-
return (
70-
<a href={url} target='_blank'>
71-
{props.children}
72-
</a>
73-
)
74-
}
54+
const openInSameTabParsed = parsedUrl ? opensInSameTabRegexes?.some(regex => new RegExp(regex).test(parsedUrl)) : undefined
55+
56+
const href = parsedUrl || url;
57+
const target = openInSameTab || openInSameTabParsed ? '' : '_blank';
58+
59+
return (
60+
<a href={href} target={target}>
61+
{props.children}
62+
</a>
63+
);
7564
},
7665
}}
7766
{...overrides?.reactMarkdownProps}

0 commit comments

Comments
 (0)