import React, { useState } from "react"; import PropTypes from "prop-types"; import FormFieldList from "../FormFieldList"; import FormFieldSlider from "../FormFieldSlider"; import { formatMm, roundMm, defaultSa, sliderStep } from "../utils"; import OptionPreamble from "../OptionPreamble"; const DraftSettingMargin = props => { const [value, setValue] = useState(props.dflt); const update = (name, newValue, evt) => { newValue = roundMm(newValue); // Sometimes, when sliding, the rapid succession of updates // causes a weird timing issue to result in a value that is NaN. // If that's the case, just ignore this update and keep the // previous one instead if (!isNaN(newValue)) { setValue(newValue); if (evt.type !== "mousemove") props.updateValue("margin", newValue); } else { if (evt.type !== "mousemove") props.updateValue("margin", newValue); } }; const reset = () => { setValue(props.dflt); props.updateValue("margin", props.dflt); }; return (
props.triggerAction("showHelp", { type: "draftSetting", value: "margin" }) } />
); }; DraftSettingMargin.propTypes = { triggerAction: PropTypes.func.isRequired, updateValue: PropTypes.func.isRequired, title: PropTypes.string.isRequired, desc: PropTypes.string.isRequired, units: PropTypes.oneOf(["metric", "imperial"]).isRequired, labels: PropTypes.array }; DraftSettingMargin.defaultProps = { // FIXME }; export default DraftSettingMargin;