import React, { useEffect, useRef } from 'react'; import { useDispatch, useSelector } from 'react-redux' import { MdDone, MdClose } from 'react-icons/md' import * as Icon from "./icons"; export const Dialog = () => { const dialog = useSelector(state => state.ui.dialog) const dispatch = useDispatch() const ref = useRef() useEffect(() => { console.log(dialog) if (!ref.current) return ref.current.focus() }, [dialog]) const extrude = () => { sc.extrude(dialog.target, ref.current.value) sc.render() dispatch({ type: "clear-dialog" }) } const extrudeEdit = () => { dialog.target.userData.featureInfo[1] = ref.current.value sc.refreshNode(dialog.target.name) sc.render() dispatch({ type: "clear-dialog" }) } switch (dialog.action) { case 'extrude': return <> ref.current.value *= -1} /> dispatch({ type: "clear-dialog" })} /> case 'extrude-edit': return <> ref.current.value *= -1} /> dispatch({ type: "clear-dialog" })} /> case 'sketch': return <> { if (sc.activeSketch.hasChanged || sc.activeSketch.idOnActivate != id || sc.activeSketch.c_idOnActivate != sc.activeSketch.c_id ) { sc.refreshNode(sc.activeSketch.obj3d.name) } dispatch({ type: 'finish-sketch' }) sc.activeSketch.deactivate() sc.render() dispatch({ type: "clear-dialog" }) }} /> { if (sc.activeSketch.hasChanged || sc.activeSketch.idOnActivate != id || sc.activeSketch.c_idOnActivate != sc.activeSketch.c_id ) { dispatch({ type: "restore-sketch" }) } else { dispatch({ type: 'finish-sketch' }) } sc.activeSketch.deactivate() sc.render() dispatch({ type: "clear-dialog" }) }} /> default: return null } }