@@ -5,33 +5,37 @@ import { ProjectsContext } from '../../context/ProjectsContext';
55import ProjectsFilter from './ProjectsFilter' ;
66
77const ProjectsGrid = ( ) => {
8- const { setSearchProject, searchProjectsByTitle } =
9- useContext ( ProjectsContext ) ;
8+ const {
9+ projects,
10+ searchProject,
11+ setSearchProject,
12+ searchProjectsByTitle,
13+ selectProject,
14+ setSelectProject,
15+ selectProjectsByCategory,
16+ } = useContext ( ProjectsContext ) ;
1017
11- // const selectedProject = '';
12- // const searchProject = '';
13-
14- // const filteredProjects = () => {
15- // if (selectedProject) {
16- // return filterProjectsByCategory();
17- // } else if (searchProject) {
18- // return filterProjectsBySearch();
19- // }
20- // return ProjectsData;
21- // };
22-
23- // const filterProjectsByCategory = () => {
24- // return ProjectsData.filter((item) => {
25- // let category =
26- // item.category.charAt(0).toUpperCase() + item.category.slice(1);
27- // return category.includes(selectedProject);
28- // });
29- // };
30-
31- // const filterProjectsBySearch = () => {
32- // let project = new RegExp(searchProject, 'i');
33- // return ProjectsData.filter((el) => el.title.match(project));
34- // };
18+ const projectsResult = ( ) => {
19+ if ( setSearchProject ) {
20+ return searchProjectsByTitle . map ( ( project ) => (
21+ < ProjectSingle
22+ title = { project . title }
23+ category = { project . category }
24+ image = { project . img }
25+ key = { project . id }
26+ />
27+ ) ) ;
28+ } else if ( setSelectProject ) {
29+ return selectProjectsByCategory . map ( ( project ) => (
30+ < ProjectSingle
31+ title = { project . title }
32+ category = { project . category }
33+ image = { project . img }
34+ key = { project . id }
35+ />
36+ ) ) ;
37+ }
38+ } ;
3539
3640 return (
3741 < section className = "py-5 sm:py-10 mt-5 sm:mt-10" >
@@ -116,22 +120,40 @@ const ProjectsGrid = () => {
116120 </ div >
117121 { /* <ProjectsFilter @change="selectedProject = $event" /> */ }
118122
119- < ProjectsFilter />
123+ < ProjectsFilter setSelectProject = { setSelectProject } />
120124 { /* <p>Filter projects</p> */ }
121125 </ div >
122126 </ div >
123127 { /* Filter and search projects end */ }
124128
125129 { /* Projects grid start */ }
126130 < div className = "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 mt-6 sm:gap-10" >
127- { searchProjectsByTitle . map ( ( project ) => (
128- < ProjectSingle
129- title = { project . title }
130- category = { project . category }
131- image = { project . img }
132- key = { project . id }
133- />
134- ) ) }
131+ { selectProject
132+ ? selectProjectsByCategory . map ( ( project ) => (
133+ < ProjectSingle
134+ title = { project . title }
135+ category = { project . category }
136+ image = { project . img }
137+ key = { project . id }
138+ />
139+ ) )
140+ : searchProject
141+ ? searchProjectsByTitle . map ( ( project ) => (
142+ < ProjectSingle
143+ title = { project . title }
144+ category = { project . category }
145+ image = { project . img }
146+ key = { project . id }
147+ />
148+ ) )
149+ : projects . map ( ( project ) => (
150+ < ProjectSingle
151+ title = { project . title }
152+ category = { project . category }
153+ image = { project . img }
154+ key = { project . id }
155+ />
156+ ) ) }
135157 </ div >
136158 { /* Projects grid end */ }
137159 </ section >
0 commit comments