diff --git a/vue-app/src/api/projects.ts b/vue-app/src/api/projects.ts index c9cc36b71..c6a85de33 100644 --- a/vue-app/src/api/projects.ts +++ b/vue-app/src/api/projects.ts @@ -214,9 +214,9 @@ export async function getLeaderboardProject( const project = data.projects.find(project => project.id === projectId) const metadata = project.metadata - const thumbnailHash = metadata.imageHash + const thumbnailHash = metadata.thumbnailImageHash || metadata.imageHash const thumbnailImageUrl = thumbnailHash ? `${ipfsGatewayUrl}/ipfs/${thumbnailHash}` : undefined - const bannerHash = metadata.imageHash + const bannerHash = metadata.bannerImageHash || metadata.imageHash const bannerImageUrl = bannerHash ? `${ipfsGatewayUrl}/ipfs/${bannerHash}` : undefined return { @@ -225,6 +225,16 @@ export async function getLeaderboardProject( name: project.name, description: metadata.description, tagline: metadata.tagline, + category: metadata.category, + problemSpace: metadata.problemSpace, + plans: metadata.plans, + teamName: metadata.teamName, + teamDescription: metadata.teamDescription, + githubUrl: metadata.githubUrl, + radicleUrl: metadata.radicleUrl, + websiteUrl: metadata.websiteUrl, + twitterUrl: metadata.twitterUrl, + discordUrl: metadata.discordUrl, thumbnailImageUrl, bannerImageUrl, index: project.recipientIndex, diff --git a/vue-app/src/api/round.ts b/vue-app/src/api/round.ts index ba6fc3e5c..48c7eb6b8 100644 --- a/vue-app/src/api/round.ts +++ b/vue-app/src/api/round.ts @@ -62,7 +62,7 @@ export async function getCurrentRound(): Promise { const rounds = await getRounds() const roundIndex = rounds.findIndex(round => isSameAddress(round.address, fundingRoundAddress)) - if (roundIndex >= Number(import.meta.env.VITE_FIRST_ROUND || 0)) { + if (roundIndex >= 0) { return fundingRoundAddress } return null diff --git a/vue-app/src/api/rounds.ts b/vue-app/src/api/rounds.ts index e68ebd2de..45e48998e 100644 --- a/vue-app/src/api/rounds.ts +++ b/vue-app/src/api/rounds.ts @@ -1,11 +1,17 @@ import sdk from '@/graphql/sdk' import extraRounds from '@/rounds/rounds.json' +import { chain } from './core' export interface Round { index: number address: string network?: string hasLeaderboard: boolean + startTime: number +} + +function toRoundId({ network, address }: { network: string; address: string }): string { + return `${network}-${address}`.toLowerCase() } //TODO: update to take factory address as a parameter @@ -14,16 +20,42 @@ export async function getRounds(): Promise { //NOTE: why not instantiate the sdk here? const data = await sdk.GetRounds() - const rounds: Round[] = extraRounds.map(({ address, network }, index): Round => { - return { index, address, network, hasLeaderboard: true } + const rounds: Round[] = extraRounds.map(({ address, network, startTime }, index): Round => { + return { index, address, network, hasLeaderboard: true, startTime } }) - for (const fundingRound of data.fundingRounds) { - rounds.push({ - index: rounds.length, - address: fundingRound.id, - hasLeaderboard: false, - }) + const leaderboardRounds = new Set(rounds.map(r => toRoundId({ network: r.network || '', address: r.address }))) + + const firstRound = Number(import.meta.env.VITE_FIRST_ROUND || 0) + + for (let roundIndex = 0; roundIndex < data.fundingRounds.length; roundIndex++) { + if (roundIndex < firstRound) { + // filter out cancelled or test rounds + continue + } + + const fundingRound = data.fundingRounds[roundIndex] + const address = fundingRound.id + const isLeaderboardRound = leaderboardRounds.has(toRoundId({ network: chain.label, address })) + if (!isLeaderboardRound) { + rounds.push({ + index: rounds.length, + address, + hasLeaderboard: false, + startTime: Number(fundingRound.startTime), + }) + } } + return rounds + .sort((a, b) => a.startTime - b.startTime) + .map((r, index) => { + return { + index, + address: r.address, + hasLeaderboard: r.hasLeaderboard, + startTime: r.startTime, + network: r.network, + } + }) } diff --git a/vue-app/src/components/ProjectProfile.vue b/vue-app/src/components/ProjectProfile.vue index 745db52f5..1bdc167ed 100644 --- a/vue-app/src/components/ProjectProfile.vue +++ b/vue-app/src/components/ProjectProfile.vue @@ -20,7 +20,7 @@
- +

{{ $t('projectProfile.p1') }}

diff --git a/vue-app/src/views/LeaderboardProject.vue b/vue-app/src/views/LeaderboardProject.vue index e09423647..3c4c52ad5 100644 --- a/vue-app/src/views/LeaderboardProject.vue +++ b/vue-app/src/views/LeaderboardProject.vue @@ -1,10 +1,13 @@