Skip to content

Commit 2e7f339

Browse files
committed
filtered functionality added
1 parent ee3981e commit 2e7f339

File tree

1 file changed

+40
-2
lines changed

1 file changed

+40
-2
lines changed

client/src/components/Home.jsx

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export default function Home() {
2525
setData(dataList);
2626
setFilteredData(dataList);
2727
setLoading(false); // Set loading to false once data is fetched
28-
2928
});
3029
// Return a cleanup function to unsubscribe from the snapshot listener when the component unmounts
3130
return () => unsubscribe();
@@ -37,6 +36,7 @@ export default function Home() {
3736
};
3837

3938
getContacts();
39+
console.log(data)
4040
}, []);
4141

4242
const handleSearch = (query) => {
@@ -58,6 +58,34 @@ export default function Home() {
5858
return () => clearInterval(interval);
5959
}, []);
6060

61+
function sortBasedOnQuestions() {
62+
const sortedData = [...data]
63+
sortedData.sort((a, b) => {
64+
return b.totalSolved - a.totalSolved
65+
})
66+
setFilteredData(sortedData)
67+
}
68+
69+
function sortBasedOnDefault() {
70+
setFilteredData(data)
71+
}
72+
73+
const handleSortChange = (e) => {
74+
const selectedOption = e.target.value;
75+
setSelectedValue(selectedOption);
76+
77+
if (selectedOption === 'Sort by Default') {
78+
sortBasedOnDefault();
79+
} else if (selectedOption === 'Sort by Questions Solved') {
80+
sortBasedOnQuestions();
81+
}
82+
};
83+
84+
85+
86+
const [selectedValue, setSelectedValue] = useState('Only Value');
87+
88+
6189
return (
6290
<>
6391
<div className="overflow-x-hidden nunito">
@@ -71,6 +99,17 @@ export default function Home() {
7199
</button>
72100
{/* <WorthAlert /> */}
73101
<Navbar onSearch={handleSearch} />
102+
<div className="mt-4 grid place-content-center">
103+
<select
104+
id="sortDropdown"
105+
value={selectedValue}
106+
onChange={handleSortChange}
107+
className="mt-1 p-2 border border-gray-300 rounded-md focus:outline-none text-[#FFFEFE] focus:ring focus:border-blue-300"
108+
>
109+
<option value="Sort by Default">Sort by Default</option>
110+
<option value="Sort by Questions Solved">Sort by Questions Solved</option>
111+
</select>
112+
</div>
74113
{
75114
loading ? (
76115
<div className="flex flex-col mx-auto max-w-screen-xl px-2 sm:px-6 lg:px-8">
@@ -110,7 +149,6 @@ export default function Home() {
110149
</div>
111150
</div>)
112151
}
113-
114152
</div>
115153
{showStats && (
116154
<div className="modal-overlay" onClick={() => setShowStats(false)}>

0 commit comments

Comments
 (0)