import React, { useState } from 'react'; /** * Model Selector * * Grid/list of available models with filtering. * Shows NSFW badges and download status. */ export const ModelSelector = ({ models, selectedModelId, onSelect, contentRating, showDownloadStatus = true, }) => { const [filter, setFilter] = useState('all'); const [searchQuery, setSearchQuery] = useState(''); // Filter models based on content rating and user filters const filteredModels = models.filter((model) => { // Hide NSFW models in SFW mode if (contentRating === 'sfw' && model.nsfw) { return false; } // Apply user filter if (filter === 'anime' && !model.anime) return false; if (filter === 'nsfw' && !model.nsfw) return false; if (filter === 'sfw' && model.nsfw) return false; // Apply search if (searchQuery) { const q = searchQuery.toLowerCase(); return (model.label.toLowerCase().includes(q) || model.description.toLowerCase().includes(q)); } return true; }); return (
{model.description}
No models match your filters
{contentRating === 'sfw' && filter === 'nsfw' && (Enable Mature mode to see NSFW models
)}