Skip to content

Commit

Permalink
Merge pull request #1087 from mamicho16/fix-1014
Browse files Browse the repository at this point in the history
Fix: Sort quests by ID in descending order
  • Loading branch information
Marchand-Nicolas authored Jan 29, 2025
2 parents e00d8e9 + d2fb4fe commit d9dfac8
Showing 1 changed file with 29 additions and 28 deletions.
57 changes: 29 additions & 28 deletions app/analytics/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,26 @@ export default function Page() {
const { address } = useAccount();
const [loading, setLoading] = useState<boolean>(true);

const [quests, setQuests] = useState<QuestList>({} as QuestList);
const [quests, setQuests] = useState<QuestDocument[]>([]);

const fetchQuests = useCallback(async () => {
try {
setLoading(true);
const res = (await getQuests()) || {};
setQuests(res);

let allQuests: QuestDocument[] = [];
Object.keys(res).forEach((category) => {
const categoryQuests = res[category];
if (Array.isArray(categoryQuests)) {
allQuests = allQuests.concat(categoryQuests);
}
});

const sortedAllQuests = allQuests.sort((a, b) => b.id - a.id);

setQuests(sortedAllQuests);
setLoading(false);

} catch (error) {
console.log("Error while fetching quests", error);
}
Expand All @@ -33,7 +45,6 @@ export default function Page() {
useEffect(() => {
fetchQuests();
}, [address]);

return (
<div className={styles.container}>
<div className={styles.backButton}>
Expand All @@ -50,31 +61,21 @@ export default function Page() {
{loading ? (
<FeaturedQuestSkeleton />
) : (
(Object.keys(quests) as (keyof typeof quests)[]).map(
(categoryName: keyof typeof quests) => {
const categoryValue = quests[categoryName];
if (Array.isArray(categoryValue)) {
return categoryValue.map((quest: QuestDocument) => {
return (
<Quest
key={quest.id}
title={quest.title_card}
onClick={() => router.push(`/analytics/${quest.id}`)}
imgSrc={quest.img_card}
issuer={{
name: quest.issuer,
logoFavicon: quest.logo,
}}
reward={quest.rewards_title}
id={quest.id}
expired={false}
/>
);
});
}
return null;
}
)
quests.map((quest) => (
<Quest
key={quest.id}
title={quest.title_card}
onClick={() => router.push(`/analytics/${quest.id}`)}
imgSrc={quest.img_card}
issuer={{
name: quest.issuer,
logoFavicon: quest.logo,
}}
reward={quest.rewards_title}
id={quest.id}
expired={false}
/>
))
)}
</div>
</div>
Expand Down

0 comments on commit d9dfac8

Please sign in to comment.