Adjusted URL construction to properly handle trailing slashes in base paths, ensuring consistent matching logic. Added logic for setting the hotkey scope when navigating to the domain settings path.
33 lines
842 B
TypeScript
33 lines
842 B
TypeScript
import { matchPath, useLocation } from 'react-router-dom';
|
|
|
|
import { AppBasePath } from '@/types/AppBasePath';
|
|
import { isNonEmptyString } from '@sniptt/guards';
|
|
import { isDefined } from 'twenty-shared';
|
|
|
|
export const useIsMatchingLocation = () => {
|
|
const location = useLocation();
|
|
|
|
const addTrailingSlash = (path: string) =>
|
|
path.endsWith('/') ? path : path + '/';
|
|
|
|
const getConstructedPath = (path: string, basePath?: AppBasePath) => {
|
|
if (!isNonEmptyString(basePath)) return path;
|
|
|
|
return addTrailingSlash(basePath) + path;
|
|
};
|
|
|
|
const isMatchingLocation = (path: string, basePath?: AppBasePath) => {
|
|
const match = matchPath(
|
|
getConstructedPath(path, basePath),
|
|
location.pathname,
|
|
);
|
|
const isMatching = isDefined(match);
|
|
|
|
return isMatching;
|
|
};
|
|
|
|
return {
|
|
isMatchingLocation,
|
|
};
|
|
};
|