Searching - For- Porn Collection In-all Categorie...
module.exports = router; // SearchInterface.jsx import React, useState, useEffect from 'react'; import './SearchInterface.css'; const SearchInterface = () => const [searchQuery, setSearchQuery] = useState(''); const [selectedCategory, setSelectedCategory] = useState(''); const [selectedMediaType, setSelectedMediaType] = useState(''); const [filters, setFilters] = useState( minRating: 0, maxRating: 10, dateRange: start: '', end: '' , sortBy: 'relevance' ); const [results, setResults] = useState([]); const [categories, setCategories] = useState([]); const [mediaTypes, setMediaTypes] = useState([]); const [loading, setLoading] = useState(false); const [pagination, setPagination] = useState( page: 1, totalPages: 1 );
@media (max-width: 768px) .search-layout flex-direction: column;
.filter-select, .filter-input width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; margin-bottom: 10px;
// Content Card Component const ContentCard = ( item ) => const getMediaIcon = (type) => ; Searching for- porn collection in-All Categorie...
.card-header display: flex; gap: 8px; margin-bottom: 10px;
const performSearch = async () => setLoading(true); try const params = new URLSearchParams( query: searchQuery, categoryId: selectedCategory, mediaType: selectedMediaType, minRating: filters.minRating, maxRating: filters.maxRating, startDate: filters.dateRange.start, endDate: filters.dateRange.end, sortBy: filters.sortBy, page: pagination.page, limit: 20 );
.results-grid display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; module
router.get('/api/media-types', async (req, res) => try const mediaTypes = await searchService.getMediaTypes(); res.json(mediaTypes); catch (error) res.status(500).json( error: error.message );
.media-icon font-size: 20px;
.card-thumbnail width: 100%; height: 180px; object-fit: cover; module.exports = router
);
.content-card:hover transform: translateY(-4px); box-shadow: 0 4px 16px rgba(0,0,0,0.15);
/* Results Area */ <main className="results-area"> loading ? ( <div className="loading-spinner">Loading...</div> ) : ( <> <div className="results-header"> <span>results.length results found</span> </div>
.filters-sidebar width: 100%;
.pagination display: flex; justify-content: center; align-items: center; gap: 20px; margin-top: 30px; padding-top: 20px; border-top: 1px solid #eee;