import { connect } from 'react-redux'; import { Button, Select, Input, Icon } from 'UI'; import { editGDPR, saveGDPR } from 'Duck/site'; import { validateNumber } from 'App/validate'; import styles from './siteForm.css'; const inputModeOptions = [ { text: 'Record all inputs', value: 'plain' }, { text: 'Ignore all inputs', value: 'obscured' }, { text: 'Obscure all inputs', value: 'hidden' }, ]; @connect(state => ({ site: state.getIn([ 'site', 'instance' ]), gdpr: state.getIn([ 'site', 'instance', 'gdpr' ]), saving: state.getIn([ 'site', 'saveGDPR', 'loading' ]), }), { editGDPR, saveGDPR, }) export default class GDPRForm extends React.PureComponent { onChange = ({ target: { name, value } }) => { if (name === "sampleRate") { if (!validateNumber(value, { min: 0, max: 100 })) return; if (value.length > 1 && value[0] === "0") { value = value.slice(1); } } this.props.editGDPR({ [ name ]: value }); } onSampleRateBlur = ({ target: { name, value } }) => { //TODO: editState hoc if (value === ''){ this.props.editGDPR({ sampleRate: 100 }); } } onChangeSelect = (event, { name, value }) => { this.props.editGDPR({ [ name ]: value }); }; onChangeOption = ({ target: { checked, name } }) => { this.props.editGDPR({ [ name ]: checked }); } onSubmit = (e) => { e.preventDefault(); const { site, gdpr } = this.props; this.props.saveGDPR(site.id, gdpr); } render() { const { site, onClose, saving, gdpr, } = this.props; return (
{ site.host }
{ 'Do not record any numeric text' }
{ 'If enabled, OpenReplay will not record or store any numeric text for all sessions.' }
{ 'Block IP' }
); } }