diff --git a/modules/dashboard/ui/DashboardGrid/DashboardGrid.tsx b/modules/dashboard/ui/DashboardGrid/DashboardGrid.tsx
index 55889c43..265abe6f 100644
--- a/modules/dashboard/ui/DashboardGrid/DashboardGrid.tsx
+++ b/modules/dashboard/ui/DashboardGrid/DashboardGrid.tsx
@@ -12,6 +12,8 @@ import { ContractVoting } from 'modules/blockChain/contracts'
import { getVoteStatus } from 'modules/votes/utils/getVoteStatus'
import { getEventStartVote } from 'modules/votes/utils/getEventVoteStart'
import * as urls from 'modules/network/utils/urls'
+import { fetcherIPFS } from 'modules/network/utils/fetcherIPFS'
+import { REGEX_LIDO_VOTE_CID } from 'modules/shared/utils/regexCID'
const PAGE_SIZE = 20
@@ -87,7 +89,26 @@ export function DashboardGrid({ currentPage }: Props) {
const votesWithEvents = await Promise.all(eventsPromises)
- return votesWithEvents
+ const ipfsPromises = votesWithEvents.map(dataItem => {
+ const fetch = async () => {
+ const { metadata } = dataItem.eventStart
+ const cid = metadata.match(REGEX_LIDO_VOTE_CID)?.[1]
+
+ // error with description should not block UI
+ const description = await (cid
+ ? fetcherIPFS(cid).catch(() => '')
+ : Promise.resolve(''))
+ return {
+ ...dataItem,
+ description,
+ }
+ }
+ return fetch()
+ })
+
+ const votesWithEventsAndDescription = await Promise.all(ipfsPromises)
+
+ return votesWithEventsAndDescription
},
)
diff --git a/modules/dashboard/ui/DashboardVote/DashboardVote.tsx b/modules/dashboard/ui/DashboardVote/DashboardVote.tsx
index 58450a2e..502d55bd 100644
--- a/modules/dashboard/ui/DashboardVote/DashboardVote.tsx
+++ b/modules/dashboard/ui/DashboardVote/DashboardVote.tsx
@@ -5,16 +5,16 @@ import Link from 'next/link'
import { VoteStatusBanner } from 'modules/votes/ui/VoteStatusBanner'
import { VoteYesNoBar } from 'modules/votes/ui/VoteYesNoBar'
import { InfoRowFull } from 'modules/shared/ui/Common/InfoRow'
-import { VoteMetadataDescription } from 'modules/votes/ui/VoteMetadataDescription'
+import { VoteDescription } from 'modules/votes/ui/VoteDescription'
+
import {
Wrap,
VoteBody,
VoteTitle,
- VoteDescription,
+ VoteDescriptionWrap,
VotesBarWrap,
Footer,
} from './DashboardVoteStyle'
-
import type { StartVoteEventObject } from 'generated/AragonVotingAbi'
import { Vote, VoteStatus } from 'modules/votes/types'
import { weiToNum } from 'modules/blockChain/utils/parseWei'
@@ -30,6 +30,7 @@ type Props = {
voteTime: number
objectionPhaseTime: number
onPass: () => void
+ description: string
}
export function DashboardVote({
@@ -40,6 +41,7 @@ export function DashboardVote({
voteTime,
objectionPhaseTime,
onPass,
+ description,
}: Props) {
const {
nayPct,
@@ -97,11 +99,9 @@ export function DashboardVote({
Vote #{voteId}
- {metadata && (
-
-
-
- )}
+
+
+