summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/components/link.tsx
blob: 85f7efc539eb0d885a6c87a2e428545c00e3bedb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { ComponentProps, splitProps } from "solid-js"
import { usePlatform } from "@/context/platform"

export interface LinkProps extends Omit<ComponentProps<"a">, "href"> {
  href: string
}

export function Link(props: LinkProps) {
  const platform = usePlatform()
  const [local, rest] = splitProps(props, ["href", "children", "class"])

  return (
    <a
      href={local.href}
      class={`text-text-strong underline ${local.class ?? ""}`}
      onClick={(event) => {
        if (!local.href) return
        event.preventDefault()
        platform.openLink(local.href)
      }}
      {...rest}
    >
      {local.children}
    </a>
  )
}