UNPKG

@backstage/plugin-techdocs

Version:

The Backstage plugin that renders technical documentation for your components

27 lines (24 loc) 1.25 kB
import { useMemo } from 'react'; import { useRouteRef } from '@backstage/core-plugin-api'; import { rootDocsRouteRef, rootCatalogDocsRouteRef } from '../../routes.esm.js'; const trimStartSlash = (path) => path.replace(/^\/+/, ""); const trimEndSlash = (path) => path.replace(/\/+$/, ""); function useEntityPageTechDocsRedirect(entityRef) { const { kind, name, namespace } = entityRef; const routeDocsRoot = useRouteRef(rootDocsRouteRef); const routeDocsCatalog = useRouteRef(rootCatalogDocsRouteRef); const reRouteLocationToCatalog = useMemo(() => { const rootDocsPath = trimEndSlash(routeDocsRoot({ kind, namespace, name })); const catalogDocsPath = trimEndSlash(routeDocsCatalog()); return (url) => { if (url.toLocaleLowerCase("en-US").startsWith(rootDocsPath.toLocaleLowerCase("en-US"))) { const suffix = trimStartSlash(url.slice(rootDocsPath.length)); return suffix.length === 0 || suffix.startsWith("#") ? `${catalogDocsPath}${suffix}` : `${catalogDocsPath}/${suffix}`; } return url; }; }, [routeDocsRoot, routeDocsCatalog, kind, name, namespace]); return reRouteLocationToCatalog; } export { useEntityPageTechDocsRedirect }; //# sourceMappingURL=useTechDocsLocation.esm.js.map