import React, {useState} from 'react'; import Widget from "ui/components/Widget"; import NumberControl from "ui/components/controls/NumberControl"; import {DEG_RAD} from "../../math/math"; import Stack from "ui/components/Stack"; import ButtonGroup from "ui/components/controls/ButtonGroup"; import Button from "ui/components/controls/Button"; import connect from "../../../../modules/ui/connect"; export const ConstraintEditor = connect(streams => streams.sketcherApp.constraintEditRequest)( function ConstraintEditor({constraint, onCancel, onApply}) { return } ); export function ConstraintEditorImpl({constraint, onCancel, onApply}) { if (!constraint) { return null; } const [values, setValues] = useState({...constraint.constants}); const setValue = (name, value) => { setValues({...value, [name]: value}); }; const apply = () => { Object.keys(constraint.schema.constants).map(name => { const val = values[name]; if (val !== undefined) { constraint.constants[name] = val; } }); onApply(); }; return {Object.keys(constraint.schema.constants).sort().map(name => { (() => { const def = constraint.schema.constants[name]; const val = values[name]; if (def.type === 'number') { return setValue(name, value)} /> } else { return {val}; } })() } )} CANCEL APPLY ; }