@@ -3,40 +3,25 @@ import { useGetNetworkConfig } from "@multiversx/sdk-dapp/hooks";
33import { ExternalLinkIcon } from "lucide-react" ;
44import moment from "moment-timezone" ;
55import { Link } from "react-router-dom" ;
6+ import stampFinalized from "assets/img/getbitz/givebitz/stampFinalized.png" ;
67import { MXAddressLink } from "components" ;
8+ import { MARKETPLACE_DETAILS_PAGE } from "config" ;
79import { useGetAccount } from "hooks" ;
810import GiveBitzLowerCard from "./GiveBitzLowerCard" ;
11+ import { GiveBitzDataBounty } from "../config" ;
12+ import { cn } from "libs/utils" ;
913
1014type PowerUpBountyProps = {
11- bountySubmitter : string ;
12- bountyId : string ;
13- title : string ;
14- summary : string ;
15- readMoreLink : string ;
16- submittedOnTs : number ;
17- fillPerks : string ;
18- receivedBitzSum ?: number ;
19- giverCounts ?: number ;
15+ bounty : GiveBitzDataBounty ;
2016 sendPowerUp : any ;
2117 fetchGivenBitsForGetter : any ;
2218 fetchGetterLeaderBoard : any ;
2319} ;
2420
2521const PowerUpBounty = ( props : PowerUpBountyProps ) => {
26- const {
27- bountySubmitter,
28- bountyId,
29- title,
30- summary,
31- readMoreLink,
32- submittedOnTs,
33- fillPerks,
34- giverCounts,
35- receivedBitzSum,
36- sendPowerUp,
37- fetchGivenBitsForGetter,
38- fetchGetterLeaderBoard,
39- } = props ;
22+ const { bounty, sendPowerUp, fetchGivenBitsForGetter, fetchGetterLeaderBoard } = props ;
23+ const { bountySubmitter, bountyId, title, summary, readMoreLink, submittedOnTs, fillPerks, giverCounts, receivedBitzSum, finalizedDataNftIdentifier } =
24+ bounty ;
4025 const {
4126 network : { explorerAddress } ,
4227 } = useGetNetworkConfig ( ) ;
@@ -45,7 +30,18 @@ const PowerUpBounty = (props: PowerUpBountyProps) => {
4530 return (
4631 < div className = "power-up-tile border min-w-[260px] max-w-[360px] relative rounded-3xl" >
4732 < div className = "group" data-highlighter >
48- < div className = "relative bg-[#35d9fa]/80 dark:bg-[#35d9fa]/30 rounded-3xl p-[2px] before:absolute before:w-96 before:h-96 before:-left-48 before:-top-48 before:bg-[#35d9fa] before:rounded-full before:opacity-0 before:pointer-events-none before:transition-opacity before:duration-500 before:translate-x-[var(--mouse-x)] before:translate-y-[var(--mouse-y)] before:hover:opacity-20 before:z-30 before:blur-[100px] after:absolute after:inset-0 after:rounded-[inherit] after:opacity-0 after:transition-opacity after:duration-500 after:[background:_radial-gradient(250px_circle_at_var(--mouse-x)_var(--mouse-y),theme(colors.sky.400),transparent)] after:group-hover:opacity-100 after:z-10 overflow-hidden" >
33+ < div
34+ className = { cn (
35+ "relative bg-[#35d9fa]/80 dark:bg-[#35d9fa]/60 rounded-3xl p-[2px] before:absolute before:w-96 before:h-96 before:-left-48 before:-top-48 before:bg-[#35d9fa] before:rounded-full before:opacity-0 before:pointer-events-none before:transition-opacity before:duration-500 before:translate-x-[var(--mouse-x)] before:translate-y-[var(--mouse-y)] before:hover:opacity-20 before:z-30 before:blur-[100px] after:absolute after:inset-0 after:rounded-[inherit] after:opacity-0 after:transition-opacity after:duration-500 after:[background:_radial-gradient(250px_circle_at_var(--mouse-x)_var(--mouse-y),theme(colors.sky.400),transparent)] after:group-hover:opacity-100 after:z-10 overflow-hidden" ,
36+ finalizedDataNftIdentifier ? " bg-[#35d9fa]/40 dark:bg-[#35d9fa]/20" : ""
37+ ) } >
38+ { finalizedDataNftIdentifier && (
39+ < div className = "ribbon absolute -top-2 -right-2 h-40 w-40 overflow-hidden before:absolute before:top-0 before:right-0 before:-z-[1] before:border-4 before:border-blue-500 after:absolute after:left-0 after:bottom-0 after:-z-[1] after:border-4 after:border-blue-500" >
40+ < div className = "absolute z-[100] -right-14 top-[43px] w-60 rotate-45 bg-gradient-to-br from-[#022629]/80 via-[#2495AC] to-[#35d9fa] py-2.5 text-center text-white shadow-md" >
41+ Finalized
42+ </ div >
43+ </ div >
44+ ) }
4945 < div className = "relative h-full bg-neutral-950/40 dark:bg-neutral-950/60 rounded-[inherit] z-20 overflow-hidden p-4 md:p-8" >
5046 < div className = "flex justify-between items-center text-sm md:text-base" >
5147 < div className = " bg-[#2495AC] dark:bg-[#022629] p-1 px-3 rounded-2xl shadow-inner shadow-[#35d9fa]/30 " >
@@ -89,23 +85,55 @@ const PowerUpBounty = (props: PowerUpBountyProps) => {
8985 } ) }
9086 </ ul >
9187 </ div >
92- { address && (
93- < GiveBitzLowerCard
94- bountySubmitter = { bountySubmitter }
95- bountyId = { bountyId }
96- sendPowerUp = { sendPowerUp }
97- fetchGivenBitsForGetter = { fetchGivenBitsForGetter }
98- fetchGetterLeaderBoard = { fetchGetterLeaderBoard }
99- />
88+ { address && finalizedDataNftIdentifier ? (
89+ < div className = "h-[21rem]" >
90+ < img src = { stampFinalized } alt = "Finalized" className = "w-40 mx-auto" />
91+ < div className = "text-center text-2xl bg-[#2495AC] dark:bg-[#022629] p-1 px-3 rounded-2xl shadow-inner shadow-[#35d9fa]/30" > Finalized</ div >
92+ < Link
93+ to = { MARKETPLACE_DETAILS_PAGE + finalizedDataNftIdentifier }
94+ target = "_blank"
95+ className = "relative z-[100] mt-16 text-[#35d9fa] hover:underline md:text-xl flex flex-row gap-1 justify-center items-center" >
96+ View Collection
97+ < ExternalLinkIcon width = { 20 } />
98+ </ Link >
99+ </ div >
100+ ) : (
101+ < >
102+ { address && (
103+ < GiveBitzLowerCard
104+ bountySubmitter = { bountySubmitter }
105+ bountyId = { bountyId }
106+ sendPowerUp = { sendPowerUp }
107+ fetchGivenBitsForGetter = { fetchGivenBitsForGetter }
108+ fetchGetterLeaderBoard = { fetchGetterLeaderBoard }
109+ />
110+ ) }
111+ </ >
100112 ) }
101113
102- < Link
103- to = "https://docs.google.com/forms/d/e/1FAIpQLSctQIpxSw-TnJzP52nUddJEun28DUcObqbUGH8ulHEd0MNmaQ/viewform?usp=sf_link"
104- target = "_blank"
105- className = "relative z-[100] mt-2 text-[#35d9fa] hover:underline text-xs md:text-sm flex flex-row gap-1 justify-center items-center" >
106- Fill this bounty as a Data NFT!
107- < ExternalLinkIcon width = { 12 } />
108- </ Link >
114+ { ! finalizedDataNftIdentifier ? (
115+ < Link
116+ to = "https://docs.google.com/forms/d/e/1FAIpQLSctQIpxSw-TnJzP52nUddJEun28DUcObqbUGH8ulHEd0MNmaQ/viewform?usp=sf_link"
117+ target = "_blank"
118+ className = "relative z-[100] mt-2 text-[#35d9fa] hover:underline text-xs md:text-sm flex flex-row gap-1 justify-center items-center" >
119+ Fill this bounty as a Data NFT!
120+ < ExternalLinkIcon width = { 15 } />
121+ </ Link >
122+ ) : ! address ? (
123+ < div className = "flex flex-row gap-2 justify-between items-center" >
124+ < div className = "text-center items-center bg-[#2495AC] dark:bg-[#022629] p-1 px-3 rounded-2xl shadow-inner shadow-[#35d9fa]/30" > Finalized</ div >
125+
126+ < Link
127+ to = { MARKETPLACE_DETAILS_PAGE + finalizedDataNftIdentifier }
128+ target = "_blank"
129+ className = "relative z-[100] text-[#35d9fa] hover:underline text-xs md:text-sm flex flex-row gap-1 justify-center items-center" >
130+ View Collection
131+ < ExternalLinkIcon width = { 15 } />
132+ </ Link >
133+ </ div >
134+ ) : (
135+ < div className = "h-6" > </ div >
136+ ) }
109137 </ >
110138 </ div >
111139 </ div >
0 commit comments