36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import styles from './styles.module.css'
|
|
import {useContext, useEffect, useState} from "react";
|
|
import Context, {ContextInterface} from "../command/context";
|
|
import {TextField} from "@mui/material";
|
|
|
|
export interface ArgumentInterface {
|
|
name: string,
|
|
description: string|null,
|
|
default: any,
|
|
isArray: boolean,
|
|
isRequired: boolean,
|
|
}
|
|
|
|
export default function Argument(argument: ArgumentInterface) {
|
|
let {argumentList, setArgumentList} = useContext<ContextInterface>(Context)
|
|
let [value, setValue] = useState('')
|
|
|
|
useEffect(() => {
|
|
let temp = {
|
|
...argumentList,
|
|
}
|
|
temp[argument.name] = value
|
|
setArgumentList(temp)
|
|
}, [value])
|
|
|
|
let onInput = (event: any) => {
|
|
setValue(event.target.value)
|
|
}
|
|
return (
|
|
<span>
|
|
<TextField onInput={onInput} placeholder={argument.name} value={value} size="small" variant="outlined" />
|
|
{/*<input onInput={onInput} placeholder={argument.name} value={value} type="text"/> */}
|
|
</span>
|
|
)
|
|
}
|