/* eslint no-param-reassign:0 */ import React, { useState, useEffect } from 'react'; import { Select, FormControl, MenuItem } from '@mui/material'; let variableList = null; async function getVariables(app) { if (!variableList) { variableList = await app.createSessionObject({ qInfo: { qType: 'VariableList', }, qVariableListDef: { qType: 'variable', qShowReserved: false, qShowConfig: false, }, }); } const reply = await variableList.getLayout(); const list = reply.qVariableList.qItems.map((item) => ({ value: item.qName, label: item.qName.length > 50 ? `${item.qName.slice(0, 50)}...` : item.qName, })); return list; } // variable, {name, value}, properties export default function Variable({ property, value, target, changed, app }) { const [s, setS] = useState(value.name); const [l, setL] = useState([]); useEffect(() => { async function fetchData() { const list = await getVariables(app); setL(list); } fetchData(); }, []); const handleChange = (e) => { setS(e.target.value); target[property].name = e.target.value; target[property].value = { qStringExpression: { qExpr: `[${e.target.value}]` } }; changed(); }; return l.length === 0 ? ( No variables in app ) : ( ); }