import { useEffect, useContext, useState, Fragment } from 'react'; import { SnippetsContext } from '../store'; import { SnippetGrid } from '../components/Snippets/SnippetGrid'; import { Badge, Button, Card, Layout, List, Spinner } from '../components/UI'; import { Snippet } from '../typescript/interfaces'; export const Snippets = (): JSX.Element => { const { snippets, languageCount, getSnippets, countSnippets } = useContext(SnippetsContext); const [filter, setFilter] = useState(null); const [localSnippets, setLocalSnippets] = useState([...snippets]); useEffect(() => { getSnippets(); countSnippets(); }, []); const filterHandler = (language: string) => { setFilter(language); const filteredSnippets = snippets.filter(s => s.language === language); setLocalSnippets(filteredSnippets); }; const clearFilterHandler = () => { setFilter(null); setLocalSnippets([...snippets]); }; return (
{languageCount.map((el, idx) => { const isActiveFilter = filter === el.language; return (
filterHandler(el.language)} > {el.language} {el.count}
); })}
{snippets.length > 0 ? ( ) : (
)}
); };