import { Dialog, Transition } from '@headlessui/react' import { Fragment, useState } from 'react' import { type InstanceProps, create } from 'react-modal-promise' import { Value } from '../lang/wasm' import { AvailableVars, addToInputHelper, useCalc, CalcResult, CreateNewVariable, } from './AvailableVarsHelpers' type ModalResolve = { value: string sign: number valueNode: Value variableName?: string newVariableInsertIndex: number } type ModalReject = boolean type SetAngleLengthModalProps = InstanceProps & { value: number valueName: string shouldCreateVariable?: boolean } export const createSetAngleLengthModal = create< SetAngleLengthModalProps, ModalResolve, ModalReject > export const SetAngleLengthModal = ({ isOpen, onResolve, onReject, value: initialValue, valueName, shouldCreateVariable: initialShouldCreateVariable = false, }: SetAngleLengthModalProps) => { const [sign, setSign] = useState(Math.sign(Number(initialValue))) const [value, setValue] = useState(String(initialValue * sign)) const [shouldCreateVariable, setShouldCreateVariable] = useState( initialShouldCreateVariable ) const { prevVariables, calcResult, valueNode, isNewVariableNameUnique, newVariableName, setNewVariableName, inputRef, newVariableInsertIndex, } = useCalc({ value, initialVariableName: valueName, }) return (
Set {valueName}
Available Variables
{ setValue(e.target.value) }} />
) }