gatsby-theme-advanced
Version:
GatsbyJS theme equipped with advanced features.
22 lines (21 loc) • 1 kB
JSX
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const gatsby_1 = require("gatsby");
const config_1 = require("../../config");
const Link = ({ to, href, className, children, activeClassName, noBasePath, ariaLabel, }) => {
const config = (0, config_1.useConfig)();
const url = href || to;
const isInternalUrl = /^\/(?!\/)/.test(url);
// Append basePath when dealing with internal URLs
const internalUrl = !noBasePath ? (0, config_1.withBasePath)(config, url) : url;
return isInternalUrl ? (<gatsby_1.Link activeClassName={activeClassName} className={className} to={internalUrl} aria-label={ariaLabel}>
{children}
</gatsby_1.Link>) : (<a className={className} href={url} aria-label={ariaLabel}>
{children}
</a>);
};
exports.default = Link;