From 64c283b48b307f76b0781bfa92f35b40dbdf4bdf Mon Sep 17 00:00:00 2001 From: Teodor Date: Mon, 25 Mar 2024 12:29:32 +0200 Subject: [PATCH] update function to validate selector --- src/helpers.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/helpers.js b/src/helpers.js index 753e271..f483414 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -15,10 +15,6 @@ export const serializeText = (text) => { return isArray(text) ? serializeNodes(text) : text; }; -function removeSpecialCharacters(str) { - return str.replace(/[^a-zA-Z0-9]/g, ''); -} - export const toSlug = (url) => Slugger.slug(url); export const waitForElm = (selector) => { @@ -54,8 +50,21 @@ export const scrollToTarget = (target, offsetHeight = 0) => { return; }; +const isValidSelector = (selector) => { + try { + document.createElement('div').querySelector(selector); + return true; + } catch (e) { + return false; + } +}; + export const openAccordionIfContainsAnchors = (anchor) => { - waitForElm(removeSpecialCharacters(anchor)).then((elm) => { + if (!isValidSelector(anchor)) { + console.error('Invalid selector:', anchor); + return; + } + waitForElm(anchor).then((elm) => { if (elm.closest('.accordion')) { const comp = elm.closest('.accordion')?.querySelector('.title'); if (!comp?.className?.includes('active')) {