import React, {useContext} from 'react'; import ls from './ConstraintExplorer.less'; import Fa from 'ui/components/Fa'; import {useStream} from "../../../../modules/ui/effects"; import {SketcherAppContext} from "./SketcherApp"; import cx from 'classnames'; import {editConstraint} from "./ConstraintEditor"; import {NOOP} from "../../../../modules/gems/func"; export function ConstraintExplorer(props) { return
Constraints
; } export function ConstraintList() { const constraints = useStream(ctx => ctx.viewer.parametricManager.$constraints); const {viewer, ui} = useContext(SketcherAppContext); const edit = (constraint) => { editConstraint(ui.$constraintEditRequest, constraint, NOOP); }; const remove = constr => { viewer.parametricManager.remove(constr); viewer.refresh(); }; const highlight = constr => { viewer.select(constr.objects, true); viewer.refresh(); }; const withdraw = constr => { viewer.deselectAll(); viewer.refresh(); }; return constraints.map((c, i) => { const conflicting = viewer.parametricManager.algNumSystem.conflicting.has(c); const redundant = viewer.parametricManager.algNumSystem.redundant.has(c); return
c.schema.constants && edit(c)} onMouseEnter={() => highlight(c)} onMouseLeave={() => withdraw(c)}> {i}. {c.schema.name} remove(c)}>
}) }