UNPKG

@dreamkit/solid

Version:

DreamKit tools for Solid.

22 lines (21 loc) 753 B
import { createRouteHref } from "@dreamkit/app/utils/routing.js"; import { createComponent, mergeProps, splitProps } from "solid-js"; /*#__NO_SIDE_EFFECTS__*/ export function defineLink() { return function Link(inProps) { const [routeProps, props] = splitProps(inProps, [ "component", "href", "params", ]); if (!routeProps.component) throw new Error("Link component must have a component prop"); return createComponent(routeProps.component, mergeProps(props, { get href() { return routeProps.href ? createRouteHref(routeProps.href, routeProps.params) : undefined; }, })); }; }