import React, { useState, useEffect } from 'react'; // Define the available model options const modelOptions = [ 'Offline Fast', 'Offline Fast (FOSS)', 'Offline Slow', 'Offline Slow (FOSS)', 'Online (La Plateforme)', 'Online (FOSS) (La Plateforme)', 'Online Cheap (OpenAI)', 'Online Expensive (OpenAI)', 'Online Cheap (Anthropic)', 'Online Expensive (Anthropic)', 'Online Cheap (Google)', 'Online Expensive (Google)', ]; // Define the properties passed to the Models component interface ModelsProps { selectedOption: string; // Privacy setting: "Offline", "AI Online", "None" } const Models: React.FC = ({ selectedOption }) => { // State for the selected model, default is loaded from localStorage or defaults to 'Offline Fast' const [selectedModel, setSelectedModel] = useState(() => { return localStorage.getItem('selectedModel') || 'Offline Fast'; }); // Handle changes in the selected model from the dropdown const handleModelChange = (event: React.ChangeEvent) => { const newModel = event.target.value; setSelectedModel(newModel); }; // Utility function to check if a model is an offline model const isOfflineModel = (model: string) => { return model.includes('Offline'); }; // Utility function to check if a model is an online model const isOnlineModel = (model: string) => { return model.includes('Online'); }; // Save selected model to localStorage whenever it changes useEffect(() => { localStorage.setItem('selectedModel', selectedModel); }, [selectedModel]); // Filter models based on the selected privacy option (Offline, AI Online, None) const filteredModels = modelOptions.filter((model) => { if (selectedOption === 'Offline') { return !isOnlineModel(model); // Hide online models } else if (selectedOption === 'AI Online') { return !isOfflineModel(model); // Hide offline models } else { return true; // Show all models for "None" } }); return (

Different AI models

{/* Model Selection Dropdown */}
{/* Model Grid with Cards */}
); }; export default Models;