diff --git a/package.json b/package.json index 7476f0025..fe2600931 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,8 @@ "@emotion/styled": "^11", "@ethersproject/web": "^5.4.0", "@synthetixio/synpress": "^1.2.0", + "@types/react-copy-to-clipboard": "^5.0.2", + "@types/react-slick": "^0.23.9", "@walletconnect/web3-provider": "^1.6.5", "awesome-debounce-promise": "^2.1.0", "axios": "^0.21.1", diff --git a/src/app/components/copy-string/CopyString.style.tsx b/src/app/components/copy-string/CopyString.style.tsx new file mode 100644 index 000000000..0dd856209 --- /dev/null +++ b/src/app/components/copy-string/CopyString.style.tsx @@ -0,0 +1,10 @@ +import { BoxProps } from '@chakra-ui/react'; + +export const CopyWrapperStyle: BoxProps = { + borderRadius: '10px', + padding: '6px 8px', + _hover: { + bg: 'rgba(0, 0, 0, 0.05)', + } +} + diff --git a/src/app/components/copy-string/CopyString.tsx b/src/app/components/copy-string/CopyString.tsx new file mode 100644 index 000000000..6e6516db4 --- /dev/null +++ b/src/app/components/copy-string/CopyString.tsx @@ -0,0 +1,35 @@ +import { Box, Image, Text } from "@chakra-ui/react"; +import React, { useState } from "react"; +import { CopyToClipboard } from "react-copy-to-clipboard"; +import copyIcon from "@assets/images/copy1.svg"; +import * as styles from './CopyString.style'; + +interface ICopyStringProps { + str: string; +} + +export const CopyString = ({ str }: ICopyStringProps) => { + const [copied, setCopied] = useState(false); + + const handleOnCopy = () => { + setCopied(true); + setTimeout(() => { + setCopied(false); + }, 1000); + } + + return ( + + + + + {copied ? 'Copied!' : 'Copy URL'} + + + + ); +}; diff --git a/src/app/components/copy-string/index.ts b/src/app/components/copy-string/index.ts new file mode 100644 index 000000000..b98e4e5a9 --- /dev/null +++ b/src/app/components/copy-string/index.ts @@ -0,0 +1 @@ +export * from './CopyString'; diff --git a/src/app/components/index.ts b/src/app/components/index.ts index c8d84e572..d4a2ad94b 100644 --- a/src/app/components/index.ts +++ b/src/app/components/index.ts @@ -6,6 +6,7 @@ export * from './checkbox'; export * from './circular-progress'; export * from './collection-approve'; export * from './collection-preview'; +export * from './copy-string'; export * from './currency-input'; export * from './currency-select'; export * from './date-time-picker'; diff --git a/src/app/modules/auctions/index.ts b/src/app/modules/auctions/index.ts new file mode 100644 index 000000000..23c7929ac --- /dev/null +++ b/src/app/modules/auctions/index.ts @@ -0,0 +1 @@ +export * from './pages'; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/ActiveAuctionLandingPage.tsx b/src/app/modules/auctions/pages/active-auction-landing-page/ActiveAuctionLandingPage.tsx new file mode 100644 index 000000000..47049043c --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/ActiveAuctionLandingPage.tsx @@ -0,0 +1,17 @@ +import { Box } from '@chakra-ui/react'; +import { OpenGraph } from '@app/components'; +import { ActionSection, CreatorSection, HeroSection, TiersSection } from './components'; + +export const ActiveAuctionLandingPage = () => { + + return ( + + {/* TODO - set open graph correctly */} + {/* */} + + + + + + ); +}; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/action-section/ActionSection.styles.tsx b/src/app/modules/auctions/pages/active-auction-landing-page/components/action-section/ActionSection.styles.tsx new file mode 100644 index 000000000..9a95012a0 --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/action-section/ActionSection.styles.tsx @@ -0,0 +1,28 @@ +import { BoxProps, ButtonProps, ContainerProps, HeadingProps, TextProps } from '@chakra-ui/react'; + +export const WrapperStyle: BoxProps = { + bg: 'linear-gradient(103.48deg, rgba(240, 233, 57, 0.16) 0%, rgba(254, 176, 254, 0.16) 49.86%, rgba(66, 164, 255, 0.16) 100%)', + padding: '44px 0', +}; + +export const ContainerStyle: ContainerProps = { + alignItems: 'center', + display: 'flex', + flexWrap: 'wrap', + justifyContent: 'space-between', + margin: '0 auto', + maxW: '1110px', + padding: { base: '0 20px', xl: '0' }, +}; + +export const HeadingStyle: HeadingProps = { + fontSize: '20px', + lineHeight: '24px', + fontWeight: 600, + marginBottom: { base: '20px', md: '0' }, +}; + +export const ButtonStyle: ButtonProps = { + boxShadow: 'lg', + w: { base: '100%', md: 'fit-content' }, +}; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/action-section/ActionSection.tsx b/src/app/modules/auctions/pages/active-auction-landing-page/components/action-section/ActionSection.tsx new file mode 100644 index 000000000..b20246d41 --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/action-section/ActionSection.tsx @@ -0,0 +1,22 @@ +import { Box, Button, Container, Heading } from '@chakra-ui/react'; +import { useCallback } from 'react'; + +import * as styles from './ActionSection.styles'; + +export const ActionSection = () => { + + const handlePlaceBid = useCallback(() => { + // TODO - BE implementation + }, []); + + return ( + + + Bid to win 1 of 3 NFT bundles + + Place a bid + + + + ); +}; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/action-section/index.ts b/src/app/modules/auctions/pages/active-auction-landing-page/components/action-section/index.ts new file mode 100644 index 000000000..3073f471d --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/action-section/index.ts @@ -0,0 +1 @@ +export * from './ActionSection'; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/creator-section/CreatorSection.styles.tsx b/src/app/modules/auctions/pages/active-auction-landing-page/components/creator-section/CreatorSection.styles.tsx new file mode 100644 index 000000000..c5aacb1c4 --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/creator-section/CreatorSection.styles.tsx @@ -0,0 +1,39 @@ +import { BoxProps, ButtonProps, ContainerProps, HeadingProps } from "@chakra-ui/react"; + +export const WrapperStyle: BoxProps = { + bg: '#fff', + padding: { base: '10px 0 60px 0', lg: '20px 0 120px 0' }, +}; + +export const ContainerStyle: ContainerProps = { + margin: '0 auto', + maxW: '1110px', + padding: { base: '0 20px', xl: '0' }, +}; + +export const HeadingStyle: HeadingProps = { + fontSize: { + lg: '32px', + md: '26px', + base: '20px', + }, + lineHeight: { + lg: '40px', + md: '32px', + base: '24px', + }, + fontWeight: 600, + marginBottom: '8px', +}; + +export const SocialButtonStyle: ButtonProps = { + padding: '8px', + _hover: { + bg: 'rgba(0, 0, 0, .04)' + }, + sx: { + '.chakra-button__icon': { + margin: '0' + } + } +}; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/creator-section/CreatorSection.tsx b/src/app/modules/auctions/pages/active-auction-landing-page/components/creator-section/CreatorSection.tsx new file mode 100644 index 000000000..53ce34a8c --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/creator-section/CreatorSection.tsx @@ -0,0 +1,43 @@ +import { Box, Button, Container, Heading, Image, Text } from "@chakra-ui/react"; + +import * as styles from './CreatorSection.styles'; +import React from "react"; +import CreatorAvatarImage from '@assets/images/_MOCK_AUCTION_CREATOR2.png'; +import twitterIcon from "@assets/images/icons_twitter.svg"; +import instagramIcon from '@assets/images/instagram-outlined.svg'; + +export const CreatorSection = () => { + + return ( + + + + + + About Justin 3LAU + Cras vel eget vitae quis scelerisque arcu ut. Tristique velit nec sed sit massa. Odio molestie velit purus at blandit. Lacus, fusce imperdiet velit augue neque tincidunt diam fringilla in. Natoque ipsum ipsum eget pellentesque. Magna felis, praesent ornare tincidunt nunc. + + } + mr={1} + {...styles.SocialButtonStyle} + /> + } + mr={1} + {...styles.SocialButtonStyle} + /> + + + + + + ); +}; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/creator-section/index.ts b/src/app/modules/auctions/pages/active-auction-landing-page/components/creator-section/index.ts new file mode 100644 index 000000000..e570ec37a --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/creator-section/index.ts @@ -0,0 +1 @@ +export * from './CreatorSection'; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/hero-section/HeroSection.styles.tsx b/src/app/modules/auctions/pages/active-auction-landing-page/components/hero-section/HeroSection.styles.tsx new file mode 100644 index 000000000..f93dadba6 --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/hero-section/HeroSection.styles.tsx @@ -0,0 +1,235 @@ +import { BoxProps, ButtonProps, ContainerProps, HeadingProps, TextProps } from "@chakra-ui/react"; + +export const WrapperStyle: BoxProps = { + bg: 'linear-gradient(103.48deg, rgba(240, 233, 57, 0.16) 0%, rgba(254, 176, 254, 0.16) 49.86%, rgba(66, 164, 255, 0.16) 100%)', + padding: '80px 0', +}; + +export const SliderArrowsStyle: ButtonProps = { + padding: '8px', + position: 'absolute', + top: '35%', + _hover: { + bg: '#fff', + }, + sx: { + '&.u-left': { + left: '-25px', + }, + '&.u-right': { + right: '-25px', + }, + '.chakra-button__icon': { + margin: '0' + } + } +} + +export const AuctionItemStyle: BoxProps = { + bg: 'transparent', + border: '1px solid rgba(0, 0, 0, 0.1)', + borderRadius: '12px', + cursor: 'pointer', + display: 'flex', + alignItems: 'center', + margin: '10px', + padding: '10px', + position: 'relative', + _hover: { + bg: '#fff', + }, + sx: { + '&.u-active': { + bg: '#fff', + _before: { + backgroundImage: 'none', + boxShadow: 'none', + content: '""', + position: 'absolute', + top: 0, + left: 0, + right: 0, + bottom: 0, + borderRadius: 'inherit', + padding: '3px', + background: 'linear-gradient(101deg,#bceb00,#00eaea)', + WebkitMask: 'linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0)', + WebkitMaskComposite: 'xor', + maskComposite: 'exclude', + }, + } + } +}; + +export const ActiveAuctionIconStyle: BoxProps = { + borderRadius: '50%', + bg: 'linear-gradient(135deg, #BCEB00 15.57%, #00EAEA 84.88%)', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + width: '20px', + height: '20px', + position: 'absolute', + top: '-8px', + right: '-8px', +} + +export const ContainerStyle: ContainerProps = { + margin: '0 auto', + maxW: '1110px', + padding: { base: '0 20px', md: '0 30px', lg: '0' }, +}; + +export const TierWrapperStyle: BoxProps = { + display: 'flex', + flexDirection: { + base: 'column', + md: 'row', + }, + alignItems: { + base: 'flex-start', + md: 'center', + }, + sx: { + '> *': { + flex: '1', + } + } +}; + +export const AuctionHeadingStyle: HeadingProps = { + fontSize: { + base: '20px', + md: '26px', + }, + lineHeight: { + base: '24px', + md: '32px', + }, + fontWeight: 600, +}; + +export const TopBiddersStyle: BoxProps = { + bg: '#fff', + borderRadius: '12px', + boxShadow: '0px 10px 36px rgba(136, 120, 172, 0.14)', + marginTop: '20px', + paddingTop: '32px', + position: 'relative', + _before: { + backgroundImage: 'none', + boxShadow: 'none', + content: '""', + position: 'absolute', + top: 0, + left: 0, + right: 0, + bottom: 0, + borderRadius: 'inherit', + padding: '3px', + background: 'linear-gradient(90deg, #2AD0CA 0%, #E1F664 22.92%, #FEB0FE 46.88%, #ABB3FC 68.23%, #5DF7A4 87.5%, #58C4F6 100%)', + WebkitMask: 'linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0)', + WebkitMaskComposite: 'xor', + maskComposite: 'exclude', + }, +}; + +export const BiddersListStyle: BoxProps = { + height: '200px', + margin: '0 32px', + overflow: 'auto' +}; + +export const SingleBidderStyle: BoxProps = { + borderTop: '1px solid rgba(0, 0, 0, 0.1)', + padding: '10px 0', + _first: { + border: 'none', + } +}; + +export const SingleBidderVisibleInfoStyle: BoxProps = { + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', +}; + +export const BidderBadgeStyle: TextProps = { + borderRadius: '20px', + fontSize: '10px', + lineHeight: '12px', + fontWeight: '600', + padding: '2px 6px', + sx: { + '&.u-platinum': { + border: '1px solid #80CCDF', + color: '#80CCDF', + }, + + '&.u-gold': { + border: '1px solid #DDBC45', + color:'#DDBC45', + }, + + '&.u-silver': { + border: '1px solid #BCBCBC', + color:'#BCBCBC', + } + } +}; + +export const ToggleBidButtonStyle: ButtonProps = { + padding: '8px', + sx: { + '&.u-flipped': { + transform: 'rotate(180deg)', + }, + '.chakra-button__icon': { + margin: '0' + } + } +}; + +export const UserBidStyle: BoxProps = { + border: '1px solid #E5E5E5', + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + flexDirection: { + base: 'column', + md: 'row', + }, + padding: '32px', + sx: { + '> *': { + width: { + base: '100%', + md: 'auto', + } + } + } +}; + +export const BidButtonStyle: ButtonProps = { + boxShadow: 'lg', + padding: '11px 16px', + w: { base: '100%', md: 'fit-content' }, +}; + +export const CancelButtonStyle: ButtonProps = { + border: '1px solid red', + boxShadow: 'none', + padding: '11px 12px', + '_before': { + background: 'transparent' + }, + '_hover': { + background: 'rgba(255, 73, 73, 0.1)' + }, + '_focus': { + background: 'rgba(255, 73, 73, 0.1)' + }, + '_active': { + background: 'rgba(255, 73, 73, 0.1)' + } +}; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/hero-section/HeroSection.tsx b/src/app/modules/auctions/pages/active-auction-landing-page/components/hero-section/HeroSection.tsx new file mode 100644 index 000000000..7527a6004 --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/hero-section/HeroSection.tsx @@ -0,0 +1,252 @@ +import { Box, Button, Container, Heading, Image, Text, Tooltip } from "@chakra-ui/react"; +import React, { useCallback, useState } from "react"; +import Slider, { CustomArrowProps } from 'react-slick'; + +import * as styles from './HeroSection.styles'; +import { CopyString, TokenIcon } from "@app/components"; + +import auctionLPlaceholder from '@assets/images/auction-lp-placeholder.png'; +import auctionTierPlaceholder from '@assets/images/auction-tier-placeholder.png'; +import checkIcon from '@assets/images/check-black.svg'; +import CreatorAvatarImage from '@assets/images/_MOCK_AUCTION_CREATOR2.png'; +import arrowDown from '@assets/images/arrow-down.svg'; +import cancelIcon from '@assets/images/cancel-icon.svg'; +import { TOKENS_MAP } from "@app/constants"; +import { useMedia } from "react-use"; +import { breakpoints } from "@app/theme/constants"; +import leftArrow from "@assets/images/marketplace/bundles-left-arrow.svg"; +import rightArrow from "@assets/images/marketplace/bundles-right-arrow.svg"; + +const BiddersList = () => { + return ( + + { [...Array(8)].map((a, i) =>{ + return + })} + + ) +} + +const SingleBidder = () => { + const [isVisible, setIsVisible] = useState(false); + + const toggleDetails = (() => { + setIsVisible(!isVisible) + }); + + return ( + + + + 1. 0x...5492 + {/* TODO - Change className accordingly: u-platinum | u-gold | u-silver */} + Platinum + + + + + {/* TODO - display colored token icon if possible */} + + 42 + + ~$48,580 + + } + mr={1} + onClick={toggleDetails} + {...styles.ToggleBidButtonStyle} + /> + + + { + isVisible && ( + + { [...Array(8)].map((a, i) =>{ + return + })} + + ) + } + + ) +} + +const BiddersBlock = () => { + + const handlePlaceBid = useCallback(() => { + // TODO - BE implementation + }, []); + + return ( + + + Top 5 bidders + View all bids + + + + + Your bid: + {/* TODO - display colored token icon if possible */} + + 2.3 + (#25 in the list) + + + + Place a bid + + + } + ml={3} + onClick={() => {}} + {...styles.CancelButtonStyle} + /> + + + + + ) +} + +const PrevArrow = (props: CustomArrowProps) => { + const { onClick } = props; + + return ( + } + onClick={onClick} + {...styles.SliderArrowsStyle} + /> + ); +} + +const NextArrow = (props: CustomArrowProps) => { + const { onClick } = props; + + return ( + } + onClick={onClick} + {...styles.SliderArrowsStyle} + /> + ); +} + +export const HeroSection = () => { + + const isTablet = useMedia(`(max-width: ${breakpoints.lg})`); + const isMobile = useMedia(`(max-width: ${breakpoints.md})`); + + const settings = { + dots: false, + infinite: false, + speed: 500, + slidesToShow: 4, + slidesToScroll: 1, + initialSlide: 0, + nextArrow: , + prevArrow: , + responsive: [ + { + breakpoint: 960, + settings: { + slidesToShow: 2, + } + } + ] + }; + + return ( + + + { !isMobile && ( + + + { [...Array(10)].map((a, i) =>{ + return + { + i === 2 && ( + + + + ) + } + + + Auction Title Two + Ends in 2d : 8h : 10m : 15s + + + })} + + + )} + + + + + + Auction Title Two + + + + by + Justin 3LAU + + + + Auction ends in: + + 2d + : + 8h + : + 10m + : + 15s + + + + {!isTablet && } + + + {isTablet && } + + + ); +}; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/hero-section/index.ts b/src/app/modules/auctions/pages/active-auction-landing-page/components/hero-section/index.ts new file mode 100644 index 000000000..0fba2be0b --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/hero-section/index.ts @@ -0,0 +1 @@ +export * from './HeroSection'; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/index.ts b/src/app/modules/auctions/pages/active-auction-landing-page/components/index.ts new file mode 100644 index 000000000..6d5ec3356 --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/index.ts @@ -0,0 +1,4 @@ +export * from './action-section'; +export * from './creator-section'; +export * from './hero-section'; +export * from './tiers-section'; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/tiers-section/TiersSection.styles.tsx b/src/app/modules/auctions/pages/active-auction-landing-page/components/tiers-section/TiersSection.styles.tsx new file mode 100644 index 000000000..5078af7ec --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/tiers-section/TiersSection.styles.tsx @@ -0,0 +1,155 @@ +import { BoxProps, ButtonProps, ContainerProps, HeadingProps, TextProps } from "@chakra-ui/react"; + +export const WrapperStyle: BoxProps = { + bg: '#fff', + padding: { base: '60px 0', lg: '120px 0' }, +}; + +export const ContainerStyle: ContainerProps = { + margin: '0 auto', + maxW: '1110px', + padding: { base: '0 20px', xl: '0' }, +}; + +export const HeadingWrapperStyle: BoxProps = { + textAlign: 'center', + marginBottom: '40px', + padding: { base: '0 20px', md: '0 80px', xl: '0' }, +}; + +export const HeadingStyle: HeadingProps = { + fontSize: { base: '20px', md: '26px' }, + lineHeight: '32px', + fontWeight: 600, + marginBottom: '8px', +}; + +export const TextStyle: TextProps = { + color: 'rgba(0, 0, 0, 0.6)', + fontSize: '16px', + lineHeight: '24px', + marginBottom: '20px', +}; + +export const TierWrapperStyle: BoxProps = { + border: '1px solid rgba(0, 0, 0, 0.05)', + boxShadow:'0px 10px 36px rgba(136, 120, 172, 0.14)', + borderRadius: '12px', + display: 'flex', + flexDirection: { + base: 'column', + md: 'row', + }, + margin: '16px 0', + padding: { + base: '20px', + md: '40px 20px', + }, + sx: { + '> *': { + flex: '1', + } + } +}; + +export const TierImagesWrapperStyle: BoxProps = { + display: 'flex', + justifyContent:'space-evenly', + maxWidth: { + base: '150px', + lg: '330px', + }, + marginBottom: { + base: '20px', + lg: '0', + }, + position: 'relative', + sx: { + 'img': { + marginLeft: { + base: '-60px', + lg: '-80px', + }, + '_first': { + marginLeft: '0', + } + } + } +}; + +export const MoreImagesBubbleStyle: BoxProps = { + background: '#FFFFFF', + borderRadius: '50%', + boxShadow:'0px 10px 36px rgba(0, 0, 0, 0.1)', + fontWeight: '700', + display: 'flex', + alignItems: 'center', + flexDirection: 'column', + justifyContent: 'center', + position: 'absolute', + top: '50%', + marginTop: '-22px', + right: { + base: '-115px', + lg: '-80px', + }, + width: '45px', + height: '45px', + cursor: 'pointer', + '_hover': { + boxShadow:'0px 10px 36px rgba(0, 0, 0, 0.3)', + } +}; + +export const TierSymbolStyle: BoxProps = { + borderRadius: '50%', + display: 'block', + height: '24px', + width: '24px', + marginRight: '8px', + sx: { + '&.u-platinium': { + bg: '#80CCDF', + }, + + '&.u-gold': { + bg:'#DDBC45', + }, + + '&.u-silver': { + bg:'#BCBCBC', + } + } +}; + +export const TierHeadingStyle: HeadingProps = { + fontSize: '20px', + lineHeight: '24px', + fontWeight: 600, +}; + +export const TierDetailsWrapperStyle: BoxProps = { + display: 'flex', + flexWrap: 'wrap', +}; + +export const TierDetailStyle: BoxProps = { + background: 'rgba(0, 0, 0, 0.05)', + borderRadius: '100px', + fontSize: '14px', + lineHeight: '20px', + fontWeight: '700', + margin: '4px 8px 4px 0', + padding: '6px 16px', +}; + +export const TierTextStyle: TextProps = { + color: 'rgba(0, 0, 0, 0.6)', + fontSize: '14px', + lineHeight: '20px', +}; + +export const TierButtonStyle: ButtonProps = { + boxShadow: 'lg', + w: { base: '100%', md: 'fit-content' }, +}; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/tiers-section/TiersSection.tsx b/src/app/modules/auctions/pages/active-auction-landing-page/components/tiers-section/TiersSection.tsx new file mode 100644 index 000000000..ea5de8783 --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/tiers-section/TiersSection.tsx @@ -0,0 +1,124 @@ +import { Box, Button, Container, Heading, Image, Text } from "@chakra-ui/react"; + +import * as styles from './TiersSection.styles'; +import React, { useCallback } from "react"; +import auctionTierPlaceholder from '@assets/images/auction-tier-placeholder.png'; + +export const TiersSection = () => { + + const handlePreviewNFTs = useCallback(() => { + // TODO + }, []); + + return ( + + + + Reward tiers + Each Tier has different rewards and different winners! Look through the Tiers and the NFTs for each. + + + + + + + + + +12 + more + + + + + + + Platinum tier + + + Bidders #1-5 + NFTs: 24 + Reserve price: 0-2.3 ETH + + Amet nibh risus turpis mattis adipiscing. Vitae sit consectetur odio massa fusce scelerisque. Cras ante quisque urna sagittis eu nunc posuere posuere. Proin integer in purus pellentesque. + + Preview NFTs + + + + + + + + + + + + + + Gold tier + + + Bidders #6-15 + NFTs: 16 + + Amet nibh risus turpis mattis adipiscing. Vitae sit consectetur odio massa fusce scelerisque. + + Preview NFTs + + + + + + + + + + + + + Silver tier + + + Bidders #16-35 + NFTs: 19 + + Faucibus et. Sagittis condimentum etiam quisque viverra consequat nec pharetra aenean egestas. + + Preview NFTs + + + + + + ); +}; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/components/tiers-section/index.ts b/src/app/modules/auctions/pages/active-auction-landing-page/components/tiers-section/index.ts new file mode 100644 index 000000000..65363ccd5 --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/components/tiers-section/index.ts @@ -0,0 +1 @@ +export * from './TiersSection'; diff --git a/src/app/modules/auctions/pages/active-auction-landing-page/index.ts b/src/app/modules/auctions/pages/active-auction-landing-page/index.ts new file mode 100644 index 000000000..3ada8241c --- /dev/null +++ b/src/app/modules/auctions/pages/active-auction-landing-page/index.ts @@ -0,0 +1 @@ +export * from './ActiveAuctionLandingPage'; diff --git a/src/app/modules/auctions/pages/index.ts b/src/app/modules/auctions/pages/index.ts new file mode 100644 index 000000000..736be67de --- /dev/null +++ b/src/app/modules/auctions/pages/index.ts @@ -0,0 +1 @@ +export * from './active-auction-landing-page' diff --git a/src/assets/images/auction-lp-placeholder.png b/src/assets/images/auction-lp-placeholder.png new file mode 100644 index 000000000..1cdf8e87d Binary files /dev/null and b/src/assets/images/auction-lp-placeholder.png differ diff --git a/src/assets/images/auction-tier-placeholder.png b/src/assets/images/auction-tier-placeholder.png new file mode 100644 index 000000000..fdc75aa3e Binary files /dev/null and b/src/assets/images/auction-tier-placeholder.png differ diff --git a/src/assets/images/cancel-icon.svg b/src/assets/images/cancel-icon.svg new file mode 100644 index 000000000..84c62e983 --- /dev/null +++ b/src/assets/images/cancel-icon.svg @@ -0,0 +1,3 @@ + + +