import React, { useState } from "react"; import { Button, Space } from "antd"; import { MinusCircleOutlined, PlusOutlined } from "@ant-design/icons"; import { TextInput } from "@tremor/react"; interface QueryParamInputProps { value?: Record; onChange?: (value: Record) => void; } const QueryParamInput: React.FC = ({ value = {}, onChange }) => { const [pairs, setPairs] = useState<[string, string][]>(Object.entries(value)); const handleAdd = () => { setPairs([...pairs, ["", ""]]); }; const handleRemove = (index: number) => { const newPairs = pairs.filter((_, i) => i !== index); setPairs(newPairs); onChange?.(Object.fromEntries(newPairs)); }; const handleChange = (index: number, key: string, val: string) => { const newPairs = [...pairs]; newPairs[index] = [key, val]; setPairs(newPairs); onChange?.(Object.fromEntries(newPairs)); }; return (
{pairs.map(([key, val], index) => ( handleChange(index, e.target.value, val)} /> handleChange(index, key, e.target.value)} />
handleRemove(index)} style={{ cursor: "pointer" }} />
))}
); }; export default QueryParamInput;