import React from 'react'; import PropTypes from 'prop-types'; import Window from 'ui/components/Window'; import Stack from 'ui/components/Stack'; import Field from 'ui/components/controls/Field'; import Label from 'ui/components/controls/Label'; import camelCaseSplit from 'gems/camelCaseSplit'; import NumberControl from 'ui/components/controls/NumberControl'; import TextControl from 'ui/components/controls/TextControl'; import Button from 'ui/components/controls/Button'; import ButtonGroup from 'ui/components/controls/ButtonGroup'; import FaceSelectionControl from './FaceSelectionControl'; import {CURRENT_SELECTION} from "../../../craft/wizard/wizardPlugin"; import {isTCADError} from "../../../../utils/errors"; import ls from './Wizard.less'; export default class Wizard extends React.Component { constructor({initialState, metadata, previewer}, {services: {selection}}) { super(); this.state = {hasError: false}; this.params = {}; metadata.forEach(([name, type, v]) => { if (type === 'face' && v === CURRENT_SELECTION) { let selectedFace = selection.face()[0]; v = selectedFace ? selectedFace.id : ''; } this.params[name] = v }); Object.assign(this.params, initialState); this.preview = previewer(this.params); } render() { let {left, title, metadata} = this.props; return {metadata.map(([name, type, , params], index) => { return {this.controlForType(name, type, params)} } )}