import React, { useState } from 'react' import { Input, Slider, Button, Popup, CircularLoader } from 'UI'; import { saveCaptureRate, editCaptureRate } from 'Duck/watchdogs'; import { connect } from 'react-redux'; import stl from './sessionCaptureRate.css'; function isPercent(val) { if (isNaN(+val)) return false; if (+val > 100 || +val < 0) return false; return true; } const SessionCaptureRate = props => { const { captureRate, saveCaptureRate, editCaptureRate, loading, onClose } = props; const _sampleRate = captureRate.get('rate'); if (_sampleRate == null) return null; const [sampleRate, setSampleRate] = useState(_sampleRate) const captureAll = captureRate.get('captureAll'); const onSampleRateChange = (e) => { saveCaptureRate({ rate: sampleRate, captureAll: captureAll }).then(onClose); } const onCaptureAllChange = () => saveCaptureRate({ rate: sampleRate, captureAll: !captureAll }); return (
} content={ `Capture All` } size="tiny" inverted position="top center" /> { !captureAll && (
isPercent(value) && setSampleRate(+value) } size="small" className={stl.inputField} />
)}
) } export default connect(state => ({ currentProjectId: state.getIn([ 'user', 'siteId' ]), captureRate: state.getIn(['watchdogs', 'captureRate']), loading: state.getIn(['watchdogs', 'savingCaptureRate', 'loading']), }), { saveCaptureRate, editCaptureRate })(SessionCaptureRate);