import { useMemo } from 'react';
import { useEmberService } from '../hooks/use-ember-service.js';
import { parseUrl } from '../utils/url.js';
import { setUrlFromRelativePath, urlFromRouteInfo } from '../utils/router.js';
import { jsx } from 'react/jsx-runtime';

function Link({
  children,
  onClick,
  replace,
  to,
  ...props
}) {
  const router = useEmberService('router');
  const url = useMemo(() => {
    const parsedUrl = parseUrl(to);
    let routeInfo;
    if (parsedUrl.startsWith('/')) {
      routeInfo = router.recognize(parsedUrl);
    } else {
      routeInfo = setUrlFromRelativePath(parsedUrl, router);
    }
    if (routeInfo) {
      return urlFromRouteInfo(router, routeInfo);
    }
    return '';
  }, [to, router]);
  const onClickHandler = event => {
    if (onClick) onClick(event);
    event.preventDefault();
    if (replace) {
      router.replaceWith(url);
    } else {
      router.transitionTo(url);
    }
  };
  return /*#__PURE__*/jsx("a", {
    href: url,
    onClick: onClickHandler,
    ...props,
    children: children
  });
}

export { Link };
//# sourceMappingURL=link.jsx.map
