import React, { useState } from 'react' import { connect } from 'react-redux'; import { editGDPR, saveGDPR } from 'Duck/site'; import { Controlled as CodeMirror } from 'react-codemirror2'; import copy from 'copy-to-clipboard'; import { Select, Checkbox } from 'UI'; import GDPR from 'Types/site/gdpr'; import cn from 'classnames' import styles from './projectCodeSnippet.css' const inputModeOptions = [ { text: 'Record all inputs', value: 'plain' }, { text: 'Ignore all inputs', value: 'obscured' }, { text: 'Obscure all inputs', value: 'hidden' }, ]; const codeSnippet = ` `; const ProjectCodeSnippet = props => { const { site, gdpr, saving } = props; const [changed, setChanged] = useState(false) const [copied, setCopied] = useState(false) const saveGDPR = (value) => { setChanged(true) props.saveGDPR(site.id, GDPR({...value})); } const onChangeSelect = (event, { name, value }) => { const { gdpr } = site; const _gdpr = { ...gdpr.toData() }; props.editGDPR({ [ name ]: value }); _gdpr[name] = value; props.editGDPR({ [ name ]: value }); saveGDPR(_gdpr) }; const onChangeOption = (event, { name, checked }) => { const { gdpr } = props.site; const _gdpr = { ...gdpr.toData() }; _gdpr[name] = checked; props.editGDPR({ [ name ]: checked }); saveGDPR(_gdpr) } const getOptionValues = () => { const { gdpr } = props.site; return (!!gdpr.maskEmails)|(!!gdpr.maskNumbers << 1)|(['plain' , 'obscured', 'hidden'].indexOf(gdpr.defaultInputMode) << 5)|28 } const getCodeSnippet = site => { let snippet = codeSnippet; if (site && site.id) { snippet = snippet.replace('PROJECT_KEY', site.projectKey); } return snippet .replace('XXX', getOptionValues()) .replace('HOST', site && site.host); } const copyHandler = (code) => { setCopied(true); copy(code); setTimeout(() => { setCopied(false); }, 1000); }; const _snippet = getCodeSnippet(site); return (