|
|
@ -1,4 +1,4 @@ |
|
|
|
import React, { useEffect, useRef, useState } from "react"; |
|
|
|
import React, { useEffect, useMemo, useRef, useState } from "react"; |
|
|
|
import { useNavigate } from "react-router-dom"; |
|
|
|
import { useNavigate } from "react-router-dom"; |
|
|
|
import { useSelector } from "react-redux"; |
|
|
|
import { useSelector } from "react-redux"; |
|
|
|
import { RootState } from "../../state/store"; |
|
|
|
import { RootState } from "../../state/store"; |
|
|
@ -84,13 +84,17 @@ export const CrowdfundList = () => { |
|
|
|
} |
|
|
|
} |
|
|
|
}, [getCrowdfundHandlerMount, globalCrowdfunds]); |
|
|
|
}, [getCrowdfundHandlerMount, globalCrowdfunds]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const filteredCrowdfunds = useMemo(() => { |
|
|
|
|
|
|
|
return crowdfunds.filter((crowdfund: Crowdfund) => hashMapCrowdfunds[crowdfund.id]?.isValid); |
|
|
|
|
|
|
|
}, [crowdfunds, hashMapCrowdfunds]); |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<CrowdfundListWrapper> |
|
|
|
<CrowdfundListWrapper> |
|
|
|
<CrowdfundListHeader> |
|
|
|
<CrowdfundListHeader> |
|
|
|
<CrowdfundListTitle>Most Recent Q-Funds</CrowdfundListTitle> |
|
|
|
<CrowdfundListTitle>Most Recent Q-Funds</CrowdfundListTitle> |
|
|
|
</CrowdfundListHeader> |
|
|
|
</CrowdfundListHeader> |
|
|
|
<CrowdfundContainer container spacing={3} direction={"row"}> |
|
|
|
<CrowdfundContainer container spacing={3} direction={"row"}> |
|
|
|
{crowdfunds.map((crowdfund: Crowdfund) => { |
|
|
|
{filteredCrowdfunds.map((crowdfund: Crowdfund) => { |
|
|
|
const existingCrowdfund = hashMapCrowdfunds[crowdfund.id]; |
|
|
|
const existingCrowdfund = hashMapCrowdfunds[crowdfund.id]; |
|
|
|
let hasHash = false; |
|
|
|
let hasHash = false; |
|
|
|
let crowdfundObj = crowdfund; |
|
|
|
let crowdfundObj = crowdfund; |
|
|
|