all files / src/modal/utils/ getParagraphs.js

91.67% Statements 11/12
77.78% Branches 7/9
100% Functions 4/4
90% Lines 9/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24        16× 20×   12×             16×        
import { h } from 'preact';
import globalStyles from '../styles.scss';
 
function getParagraphs(blockOfText, content, isCurse = false) {
    const replaceKeysInText = text => text.replace(/%([a-zA-Z]+)%/g, (match, key) => {
        if (content[key]) {
            return content[key];
        }
        if (key === 'privacyPolicy') {
            const privacyPolicyUrl = isCurse ? 'https://www.fandom.com/curse-privacy-policy' : content.privacyPolicyUrl;
            return `<a href="${privacyPolicyUrl}" class="${globalStyles.link}" target="_blank" data-privacy-policy="true">${content.privacyPolicyButton}</a>`;
        }
        Eif (key === 'partnerList') {
            return `<a href="${content.partnerListUrl}" class="${globalStyles.link}" target="_blank" data-partner-list="true">${content.partnerListButton}</a>`;
        }
        return match;
    });
 
    // Used to prevent cross-site scripting (XSS) attacks
    return blockOfText.map(line => <p dangerouslySetInnerHTML={{ __html: replaceKeysInText(line) }} />);
}
 
export default getParagraphs;