import React, { useState, useEffect } from "react"; import { Card, Title, Subtitle, Table, TableHead, TableRow, Badge, TableHeaderCell, TableCell, TableBody, Metric, Text, Grid, Button, TextInput, Select as Select2, SelectItem, Col, Accordion, AccordionBody, AccordionHeader, AccordionList, } from "@tremor/react"; import { TabPanel, TabPanels, TabGroup, TabList, Tab, Icon, } from "@tremor/react"; import { getBudgetSettings } from "../networking"; import { Modal, Form, Input, Select, Button as Button2, message, InputNumber, } from "antd"; import { InformationCircleIcon, PencilAltIcon, PencilIcon, StatusOnlineIcon, TrashIcon, RefreshIcon, CheckCircleIcon, XCircleIcon, QuestionMarkCircleIcon, } from "@heroicons/react/outline"; import AddFallbacks from "../add_fallbacks"; import openai from "openai"; import Paragraph from "antd/es/skeleton/Paragraph"; interface BudgetSettingsPageProps { accessToken: string | null; } interface budgetSettingsItem { field_name: string; field_type: string; field_value: any; field_description: string; } const BudgetSettings: React.FC = ({ accessToken }) => { const [budgetSettings, setBudgetSettings] = useState( [] ); useEffect(() => { if (!accessToken) { return; } getBudgetSettings(accessToken).then((data) => { console.log("budget settings", data); let budget_settings = data.budget_settings; setBudgetSettings(budget_settings); }); }, [accessToken]); const handleInputChange = (fieldName: string, newValue: any) => { // Update the value in the state const updatedSettings = budgetSettings.map((setting) => setting.field_name === fieldName ? { ...setting, field_value: newValue } : setting ); setBudgetSettings(updatedSettings); }; const handleUpdateField = (fieldName: string, idx: number) => { if (!accessToken) { return; } let fieldValue = budgetSettings[idx].field_value; if (fieldValue == null || fieldValue == undefined) { return; } try { const updatedSettings = budgetSettings.map((setting) => setting.field_name === fieldName ? { ...setting, stored_in_db: true } : setting ); setBudgetSettings(updatedSettings); } catch (error) { // do something } }; const handleResetField = (fieldName: string, idx: number) => { if (!accessToken) { return; } try { const updatedSettings = budgetSettings.map((setting) => setting.field_name === fieldName ? { ...setting, stored_in_db: null, field_value: null } : setting ); setBudgetSettings(updatedSettings); } catch (error) { // do something } }; return (
Setting Value {budgetSettings.map((value, index) => ( {value.field_name}

{value.field_description}

{value.field_type == "Integer" ? ( handleInputChange(value.field_name, newValue) } // Handle value change /> ) : null} handleResetField(value.field_name, index)} > Reset
))}
); }; export default BudgetSettings;