Enforce trailing slash

This commit is contained in:
Sebastian Qvarfordt
2020-06-26 14:59:50 +02:00
parent 674d142418
commit d917f72280
@@ -21,6 +21,7 @@ import transformer, { addBaseUrl, rewriteDocLinks } from '../transformers';
import { docStorageURL } from '../../config';
import { Link } from '@backstage/core';
import { useLocation, useParams } from 'react-router-dom';
import URLParser from '../urlParser';
const useFetch = (url: string) => {
const state = useAsync(async () => {
@@ -36,6 +37,17 @@ const normalizeUrl = (path: string) => {
return path.replace(/\/\/index.html$/, '/index.html');
};
const useEnforcedTrailingSlash = (): void => {
React.useEffect(() => {
const actualUrl = window.location.href;
const expectedUrl = new URLParser(window.location.href, '.').parse();
if (actualUrl !== expectedUrl) {
window.history.replaceState({}, document.title, expectedUrl);
}
}, []);
};
export const Reader = () => {
const location = useLocation();
const { componentId, '*': path } = useParams();
@@ -46,6 +58,8 @@ export const Reader = () => {
),
);
useEnforcedTrailingSlash();
React.useEffect(() => {
const divElement = shadowDomRef.current;
if (divElement?.shadowRoot && state.value) {