diff --git a/src/app/(pages)/whitepapers/page.jsx b/src/app/(pages)/whitepapers/page.jsx index 87cffd8..e3576be 100644 --- a/src/app/(pages)/whitepapers/page.jsx +++ b/src/app/(pages)/whitepapers/page.jsx @@ -3,7 +3,14 @@ import React, { useState, useEffect } from 'react'; const WhitepapersPage = () => { const [whitepapers, setWhitepapers] = useState([]); + const [searchQuery, setSearchQuery] = useState(''); + const [filters, setFilters] = useState({ + featured: false, + ai: false, + cloudBasics: false, + }); + // Fetch whitepapers data useEffect(() => { const fetchWhitepapers = async () => { try { @@ -17,6 +24,33 @@ const WhitepapersPage = () => { fetchWhitepapers(); }, []); + + // Filter whitepapers based on search query and selected filters + const filteredWhitepapers = whitepapers + .map(section => ({ + ...section, + items: section.items.filter(item => { + const matchesSearch = item.title.toLowerCase().includes(searchQuery.toLowerCase()) || + item.description.toLowerCase().includes(searchQuery.toLowerCase()); + + const matchesFilters = ( + (filters.featured && section.category === 'Featured Whitepapers') || + (filters.ai && section.category === 'AI and ML') || + (filters.cloudBasics && section.category === 'Cloud Basics') || + !Object.values(filters).includes(true) + ); + + return matchesSearch && matchesFilters; + }) + })) + .filter(section => section.items.length > 0); // Remove sections with no matching items + + // Handle filter change + const handleFilterChange = (e) => { + const { id, checked } = e.target; + setFilters(prev => ({ ...prev, [id]: checked })); + }; + return (
{/* Header Section */} @@ -41,29 +75,34 @@ const WhitepapersPage = () => {

Filter by

- +
- +
- - + +
- {/* Add more filters as needed */}
{/* Main Content */}
- + setSearchQuery(e.target.value)} + className="w-full px-4 py-2 border rounded-lg shadow-sm focus:outline-none" + />
- {whitepapers.map((section, index) => ( + {filteredWhitepapers.map((section, index) => (

{section.category}