Define when Button url is external
This commit is contained in:
@@ -16,6 +16,12 @@
|
||||
...[color, size].map(variant => variant && `${className}--${variant}`),
|
||||
$$props.class
|
||||
].join(' ').trim()
|
||||
|
||||
// Define external links
|
||||
let rel: string, target: string
|
||||
$: isExternal = /(http(s?)):\/\//i.test(url)
|
||||
$: rel = isExternal ? 'external noopener noreferrer' : null
|
||||
$: target = isExternal ? '_blank' : null
|
||||
</script>
|
||||
|
||||
{#if tag === 'button'}
|
||||
@@ -24,7 +30,13 @@
|
||||
<SplitText {text} clone={true} />
|
||||
</button>
|
||||
{:else if tag === 'a'}
|
||||
<a href={url} class={classes} on:click sveltekit:prefetch>
|
||||
<a
|
||||
href={url} class={classes}
|
||||
{rel} {target}
|
||||
sveltekit:prefetch={url && isExternal ? null : true}
|
||||
disabled={disabled}
|
||||
on:click
|
||||
>
|
||||
<slot />
|
||||
<SplitText {text} clone={true} />
|
||||
</a>
|
||||
|
||||
Reference in New Issue
Block a user