Fix elementSelector escaping

This commit is contained in:
Thomas Zerr
2024-09-16 20:29:46 +02:00
parent c267ed594b
commit 2fe8d93df1

View File

@@ -39,7 +39,7 @@ const useScrollToElement = (
clearInterval(intervalId);
} else {
tries++;
const element = contentRef.querySelector(CSS.escape(elementSelector));
const element = contentRef.querySelector(escapeIdStartingWithNumber(elementSelector));
if (element) {
const headerElement = document.querySelector(".navbar-brand");
const margin = headerElement ? headerElement.getBoundingClientRect().height : 45;
@@ -57,4 +57,12 @@ const useScrollToElement = (
}, [contentRef, ...dependencies]);
};
function escapeIdStartingWithNumber(selector: string) {
if (selector.startsWith("#")) {
return `#${CSS.escape(selector.substring(1))}`;
}
return selector;
}
export default useScrollToElement;