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 { getCallbacksCall, setCallbacksCall, getGeneralSettingsCall, deletePassThroughEndpointsCall, getPassThroughEndpointsCall, serviceHealthCheck, updateConfigFieldSetting, deleteConfigFieldSetting, } 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 AddPassThroughEndpoint from "./add_pass_through"; import openai from "openai"; import Paragraph from "antd/es/skeleton/Paragraph"; interface GeneralSettingsPageProps { accessToken: string | null; userRole: string | null; userID: string | null; modelData: any; } interface routingStrategyArgs { ttl?: number; lowest_latency_buffer?: number; } interface nestedFieldItem { field_name: string; field_type: string; field_value: any; field_description: string; stored_in_db: boolean | null; } export interface passThroughItem { path: string target: string headers: object } const PassThroughSettings: React.FC = ({ accessToken, userRole, userID, modelData, }) => { const [generalSettings, setGeneralSettings] = useState( [] ); useEffect(() => { if (!accessToken || !userRole || !userID) { return; } getPassThroughEndpointsCall(accessToken).then((data) => { let general_settings = data["endpoints"]; setGeneralSettings(general_settings); }); }, [accessToken, userRole, userID]); const handleResetField = (fieldName: string, idx: number) => { if (!accessToken) { return; } try { deletePassThroughEndpointsCall(accessToken, fieldName); // update value in state const updatedSettings = generalSettings.filter((setting) => setting.path !== fieldName); setGeneralSettings(updatedSettings); message.success("Endpoint deleted successfully."); } catch (error) { // do something } }; if (!accessToken) { return null; } return (
Path Target Headers Action {generalSettings.map((value, index) => ( {value.path} { value.target } { JSON.stringify(value.headers) } handleResetField(value.path, index) } > Reset ))}
); }; export default PassThroughSettings;