diff --git a/src/constants/dynamic-strings.js b/src/constants/dynamic-strings.js index fdadc6f1..167d72a4 100644 --- a/src/constants/dynamic-strings.js +++ b/src/constants/dynamic-strings.js @@ -2,7 +2,8 @@ const dynamicStrings = { GLOBAL_STATE: "globalState", CUSTOM: "custom", ROUTER_LINK: "routerLink:", - TEXT_LINK: "textLink:" + TEXT_LINK: "textLink:", + MODAL_LINK: "modalLink:" }; export { dynamicStrings }; \ No newline at end of file diff --git a/src/helpers/cms-content-helper.js b/src/helpers/cms-content-helper.js index 95fb1850..e1f90305 100644 --- a/src/helpers/cms-content-helper.js +++ b/src/helpers/cms-content-helper.js @@ -124,6 +124,9 @@ function processWidgetItemForReplacement(widgetModel, key) { if (widgetModel[key].includes(dynamicStrings.GLOBAL_STATE)) { widgetModel[key] = mapStringToState(widgetModel[key]); } + if (widgetModel[key].includes(dynamicStrings.MODAL_LINK)) { + widgetModel[key] = mapStringToModal(widgetModel[key]); + } return widgetModel[key]; } @@ -143,6 +146,18 @@ function processWidgetItemForReplacement(widgetModel, key) { return widgetModel[key]; } +function mapStringToModal(str) { + let startIndex = str.indexOf("{" + dynamicStrings.MODAL_LINK); + let linkToReplace = str.substring(startIndex, str.length); + linkToReplace = linkToReplace.substring(0, linkToReplace.indexOf("}") + 1); + + let params = linkToReplace.substring((dynamicStrings.MODAL_LINK).length + 1, linkToReplace.length -1) + let splitParams = params.split(","); + let BodyText = '' + splitParams[1] +'' + + return str.replace(linkToReplace, BodyText); +} + // Function to convert a string, into a matching global state item. function mapStringToState(str) { // Pull all matches out of the string.