import React, { useEffect, useState } from 'react'; import { modelHubCall } from "./networking"; import { Card, Text, Title, Grid, Button } from "@tremor/react"; import { RightOutlined } from '@ant-design/icons'; import { Modal } from 'antd'; interface ModelHubProps { userID: string; userRole: string; token: string; accessToken: string; keys: any; // Replace with the appropriate type for 'keys' prop premiumUser: boolean; } const ModelHub: React.FC = ({ userID, userRole, token, accessToken, keys, premiumUser, }) => { const [modelHubData, setModelHubData] = useState(null); const [isModalVisible, setIsModalVisible] = useState(false); const [selectedModel, setSelectedModel] = useState(null); useEffect(() => { if (!accessToken || !token || !userRole || !userID) { return; } const fetchData = async () => { try { const _modelHubData = await modelHubCall(accessToken, userID, userRole); console.log("ModelHubData:", _modelHubData); setModelHubData(_modelHubData.data); } catch (error) { console.error("There was an error fetching the model data", error); } }; fetchData(); }, [accessToken, token, userRole, userID]); const showModal = (model) => { setSelectedModel(model); setIsModalVisible(true); }; const handleOk = () => { setIsModalVisible(false); setSelectedModel(null); }; const handleCancel = () => { setIsModalVisible(false); setSelectedModel(null); }; return (
Model Hub
{modelHubData && modelHubData.map((model: any) => (

    {model.model_name}

    
))}
{selectedModel && (

Model Name: {selectedModel.model_name}

Additional Params: {JSON.stringify(selectedModel.litellm_params)}

{/* Add other model details here */}
)}
); }; export default ModelHub;