diff --git a/public/images/dollar-sign.svg b/public/images/dollar-sign.svg new file mode 100644 index 00000000..ae6c8b37 --- /dev/null +++ b/public/images/dollar-sign.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/features/MatchCard/CardSoon/index.tsx b/src/features/MatchCard/CardSoon/index.tsx index d13bba7d..b330b403 100644 --- a/src/features/MatchCard/CardSoon/index.tsx +++ b/src/features/MatchCard/CardSoon/index.tsx @@ -20,6 +20,7 @@ import { TournamentName, TeamLogos, TeamLogo, + BuyMatchButton, } from '../styled' const CardWrapper = styled(CommonCardWrapper)` @@ -37,6 +38,7 @@ type CardSoonProps = { export const CardSoon = ({ match: { + availableBySubscription, date, sportType, team1, @@ -72,6 +74,7 @@ export const CardSoon = ({ profileType={ProfileTypes.TEAMS} /> + {!availableBySubscription && } {showSportName && } diff --git a/src/features/MatchCard/MatchInfoCard/index.tsx b/src/features/MatchCard/MatchInfoCard/index.tsx index 51d10bfa..e3cc2b0e 100644 --- a/src/features/MatchCard/MatchInfoCard/index.tsx +++ b/src/features/MatchCard/MatchInfoCard/index.tsx @@ -22,6 +22,7 @@ import { TournamentName, TeamLogos, TeamLogo, + BuyMatchButton, } from '../styled' type Props = { @@ -33,6 +34,7 @@ type Props = { export const MatchInfoCard = ({ match: { + availableBySubscription, date, hasVideo, preview, @@ -89,6 +91,7 @@ export const MatchInfoCard = ({ ) } + {!availableBySubscription && } {showSportName && } diff --git a/src/features/MatchCard/styled.tsx b/src/features/MatchCard/styled.tsx index 509295f9..13381153 100644 --- a/src/features/MatchCard/styled.tsx +++ b/src/features/MatchCard/styled.tsx @@ -43,6 +43,7 @@ export const CardWrapper = styled.li.attrs({ ` export const PreviewWrapper = styled.div` + position: relative; display: flex; flex-direction: column-reverse; height: 147px; @@ -70,10 +71,13 @@ export const MatchDate = styled.div` font-weight: bold; text-transform: uppercase; letter-spacing: 0.1em; - text-align: center; + display: flex; + align-items: center; + justify-content: center; white-space: nowrap; color: white; - background: #6D6D6D; + background-color: #6D6D6D; + z-index: 1; @media ${devices.tablet} { top: 10px; @@ -82,6 +86,7 @@ export const MatchDate = styled.div` padding: 6px 8px; } ` + export const Time = styled.span` margin-left: 10px; ` @@ -205,6 +210,7 @@ export const TeamLogos = styled.div` padding-right: 20px; } ` + export const TeamLogo = styled(ProfileLogo)` width: 60px; @@ -216,3 +222,25 @@ export const TeamLogo = styled(ProfileLogo)` width: 134px; } ` + +export const BuyMatchButton = styled.button` + border: none; + background: none; + padding: 0; + + position: absolute; + right: 12px; + bottom: 12px; + width: 40px; + height: 40px; + cursor: pointer; + z-index: 1; + + background-image: url(/images/dollar-sign.svg); + background-position: center; + background-repeat: no-repeat; + background-color: #fff; + border-radius: 50%; + border: 0.5px solid rgba(0, 0, 0, 0.2); + box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.5); +` diff --git a/src/features/Matches/helpers/prepareMatches.tsx b/src/features/Matches/helpers/prepareMatches.tsx index f4c3fcd2..c802c15c 100644 --- a/src/features/Matches/helpers/prepareMatches.tsx +++ b/src/features/Matches/helpers/prepareMatches.tsx @@ -11,10 +11,12 @@ const prepareMatch = ({ id, sport, stream_status, + sub, team1, team2, tournament, }: Match) => ({ + availableBySubscription: sub, date: format(new Date(date), 'dd.MM.yy'), hasVideo: has_video, id, diff --git a/src/requests/getMatches/types.tsx b/src/requests/getMatches/types.tsx index 4db90d8f..40469b89 100644 --- a/src/requests/getMatches/types.tsx +++ b/src/requests/getMatches/types.tsx @@ -22,6 +22,7 @@ export type Match = { round_id: number | null, sport: SportTypes, stream_status: MatchStatuses, + sub: boolean, team1: Team, team2: Team, tournament: Tournament,