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)}>
})
}