From 4d2ebfbdbb646c2b4c4a94ddcd9d5eb07c2630ea Mon Sep 17 00:00:00 2001 From: Val Erastov Date: Sun, 27 Mar 2022 00:45:21 -0700 Subject: [PATCH] fix wizard selection --- web/app/cad/craft/wizard/components/form/EntityList.jsx | 3 ++- web/app/cad/craft/wizard/components/form/Form.tsx | 4 ++-- web/app/cad/craft/wizard/wizardSelectionPlugin.ts | 3 +-- web/app/cad/mdf/ui/BooleanWidget.tsx | 6 +----- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/web/app/cad/craft/wizard/components/form/EntityList.jsx b/web/app/cad/craft/wizard/components/form/EntityList.jsx index 84026c0b..2987a39c 100644 --- a/web/app/cad/craft/wizard/components/form/EntityList.jsx +++ b/web/app/cad/craft/wizard/components/form/EntityList.jsx @@ -7,6 +7,7 @@ import {attachToForm} from './Form'; import {camelCaseSplitToStr} from 'gems/camelCaseSplit'; import {EMPTY_ARRAY, removeInPlace} from 'gems/iterables'; import {AppContext} from "cad/dom/components/AppContext"; +import produce from "immer"; function EntityList(props) { @@ -18,7 +19,7 @@ function EntityList(props) { const deselect = (entityId) => { let {value, onChange} = props; if (Array.isArray(value)) { - onChange(removeInPlace(value, entityId)); + onChange(produce(value, value => removeInPlace(value, entityId))); } else { onChange(undefined); } diff --git a/web/app/cad/craft/wizard/components/form/Form.tsx b/web/app/cad/craft/wizard/components/form/Form.tsx index 884307d0..dc00bcb4 100644 --- a/web/app/cad/craft/wizard/components/form/Form.tsx +++ b/web/app/cad/craft/wizard/components/form/Form.tsx @@ -4,7 +4,7 @@ import Field from 'ui/components/controls/Field'; import Stack from 'ui/components/Stack'; import {camelCaseSplitToStr} from 'gems/camelCaseSplit'; import {ParamsPath, ParamsPathSegment, WizardState} from "cad/craft/wizard/wizardTypes"; -import {OperationParams, OperationParamValue} from "cad/craft/schema/schema"; +import {flattenPath, OperationParams, OperationParamValue} from "cad/craft/schema/schema"; import {AppContext} from "cad/dom/components/AppContext"; import _ from "lodash"; @@ -45,7 +45,7 @@ export function attachToForm(Control): any { const params = useContext(FormParamsContext); const fullPath = [...formPath, name]; - const fullPathFlatten = fullPath.join('.'); + const fullPathFlatten = flattenPath(fullPath); const onChange = value => ctx.wizardService.updateParam(fullPath, value); const setActive = (isActive) => ctx.wizardService.updateState(state => { state.activeParam = isActive ? fullPathFlatten : null; diff --git a/web/app/cad/craft/wizard/wizardSelectionPlugin.ts b/web/app/cad/craft/wizard/wizardSelectionPlugin.ts index 90e20131..1cc836ff 100644 --- a/web/app/cad/craft/wizard/wizardSelectionPlugin.ts +++ b/web/app/cad/craft/wizard/wizardSelectionPlugin.ts @@ -1,14 +1,13 @@ import {FACE, SHELL} from 'cad/model/entities'; import {OperationRequest} from "cad/craft/craftPlugin"; import {ParamsPath, WizardService} from "cad/craft/wizard/wizardTypes"; -import {OperationParamPrimitive, OperationParamValue} from "cad/craft/schema/schema"; +import {OperationParamPrimitive} from "cad/craft/schema/schema"; import {EntityReference} from "cad/craft/operationPlugin"; import {Plugin} from "plugable/pluginSystem"; import {MarkerPluginContext} from "cad/scene/selectionMarker/markerPlugin"; import {WizardPluginContext} from "cad/craft/wizard/wizardPlugin"; import {PickControlPluginContext} from "cad/scene/controls/pickControlPlugin"; import _ from "lodash"; -import {param} from "cypress/types/jquery"; export type WizardSelectionPluginInputContext = MarkerPluginContext & WizardPluginContext & PickControlPluginContext; diff --git a/web/app/cad/mdf/ui/BooleanWidget.tsx b/web/app/cad/mdf/ui/BooleanWidget.tsx index ee6de6f2..e0ae4a7a 100644 --- a/web/app/cad/mdf/ui/BooleanWidget.tsx +++ b/web/app/cad/mdf/ui/BooleanWidget.tsx @@ -1,11 +1,7 @@ import React from "react"; -import {OperationSchema} from "cad/craft/schema/schema"; -import {FieldBasicProps, fieldToSchemaGeneric} from "cad/mdf/ui/field"; -import {Types} from "cad/craft/schema/types"; +import {FieldBasicProps} from "cad/mdf/ui/field"; import {EntityKind} from "cad/model/entities"; import {SectionWidgetProps} from "cad/mdf/ui/SectionWidget"; -import {DynamicComponentWidget} from "cad/mdf/ui/DynamicComponentWidget"; -import {AxisResolver} from "cad/craft/schema/resolvers/axisResolver"; export interface BooleanWidgetProps extends FieldBasicProps {