feat(in-652): penalty score

pull/225/head
Margarita 3 years ago
parent fcaa0015e5
commit 66a53765dc
  1. 24
      src/features/MatchCard/CardFrontside/MatchCardMobile/index.tsx
  2. 14
      src/features/MatchCard/CardFrontside/MatchCardMobile/styled.tsx
  3. 24
      src/features/MatchCard/CardFrontside/index.tsx
  4. 11
      src/features/MatchCard/styled.tsx
  5. 26
      src/features/MatchPage/components/MatchDescription/index.tsx
  6. 5
      src/features/MatchPage/components/MatchDescription/styled.tsx
  7. 1
      src/requests/getLiveScores.tsx
  8. 1
      src/requests/getMatchInfo.tsx
  9. 1
      src/requests/getMatches/types.tsx

@ -48,6 +48,8 @@ import {
NameSignWrapper, NameSignWrapper,
HoverFrame, HoverFrame,
MobTime, MobTime,
ScoreWrapper,
PenaltyScore,
} from './styled' } from './styled'
import { useCardPreview } from '../hooks' import { useCardPreview } from '../hooks'
@ -159,14 +161,32 @@ export const CardFrontsideMobile = ({
<TeamName nameObj={team1} /> <TeamName nameObj={team1} />
{team1InFavorites && <FavoriteSign />} {team1InFavorites && <FavoriteSign />}
</NameSignWrapper> </NameSignWrapper>
{showScore && <Score>{score?.team1.score ?? team1.score}</Score>} {showScore && (
<ScoreWrapper>
<Score>
{score?.team1.score ?? team1.score}
</Score>
<PenaltyScore>
{score?.team1.penalty_score ?? team1.penalty_score}
</PenaltyScore>
</ScoreWrapper>
)}
</Team> </Team>
<Team> <Team>
<NameSignWrapper> <NameSignWrapper>
<TeamName nameObj={team2} /> <TeamName nameObj={team2} />
{team2InFavorites && <FavoriteSign />} {team2InFavorites && <FavoriteSign />}
</NameSignWrapper> </NameSignWrapper>
{showScore && <Score>{score?.team2.score ?? team2.score}</Score>} {showScore && (
<ScoreWrapper>
<Score>
{score?.team2.score ?? team2.score}
</Score>
<PenaltyScore>
{score?.team2.penalty_score ?? team2.penalty_score}
</PenaltyScore>
</ScoreWrapper>
)}
</Team> </Team>
</Teams> </Teams>
<SecondaryInfo> <SecondaryInfo>

@ -199,7 +199,7 @@ export const Info = styled.div`
left: 45%; */ left: 45%; */
width: 60%; width: 60%;
height: 100%; height: 100%;
padding: 9px 9px 9px 19px; padding: 9px 11px 9px 19px;
` `
: ''}; : ''};
` `
@ -310,10 +310,18 @@ ${isMobileDevice
? css` ? css`
display: flex; display: flex;
justify-content: center; justify-content: center;
width: 15px;
` `
: ''}; : ''};
`
export const ScoreWrapper = styled.div`
display: flex;
line-height: 1;
`
export const PenaltyScore = styled.div`
font-weight: 400;
font-size: 10px;
` `
export const TeamLogos = styled.div` export const TeamLogos = styled.div`

@ -40,6 +40,8 @@ import {
FavoriteSign, FavoriteSign,
NameSignWrapper, NameSignWrapper,
HoverFrame, HoverFrame,
PenaltyScore,
ScoreWrapper,
} from '../styled' } from '../styled'
import { useCardPreview } from './hooks' import { useCardPreview } from './hooks'
import { getPrepareTimeFormat } from '../helpers' import { getPrepareTimeFormat } from '../helpers'
@ -206,7 +208,16 @@ export const CardFrontside = ({
<TeamName nameObj={team1} /> <TeamName nameObj={team1} />
{team1InFavorites && <FavoriteSign />} {team1InFavorites && <FavoriteSign />}
</NameSignWrapper> </NameSignWrapper>
{showScore && <Score>{score?.team1.score ?? team1.score}</Score>} {showScore && (
<ScoreWrapper>
<Score>
{score?.team1.score ?? team1.score}
</Score>
<PenaltyScore>
{score?.team1.penalty_score ?? team1.penalty_score}
</PenaltyScore>
</ScoreWrapper>
)}
</Team> </Team>
<Team isMatchPage={isMatchPage}> <Team isMatchPage={isMatchPage}>
<NameSignWrapper> <NameSignWrapper>
@ -224,7 +235,16 @@ export const CardFrontside = ({
<TeamName nameObj={team2} /> <TeamName nameObj={team2} />
{team2InFavorites && <FavoriteSign />} {team2InFavorites && <FavoriteSign />}
</NameSignWrapper> </NameSignWrapper>
{showScore && <Score>{score?.team2.score ?? team2.score}</Score>} {showScore && (
<ScoreWrapper>
<Score>
{score?.team2.score ?? team2.score}
</Score>
<PenaltyScore>
{score?.team2.penalty_score ?? team2.penalty_score}
</PenaltyScore>
</ScoreWrapper>
)}
</Team> </Team>
</Teams> </Teams>
{!isMatchPage && ( {!isMatchPage && (

@ -274,8 +274,19 @@ export const TeamName = styled(Name)`
${nameStyles} ${nameStyles}
` `
export const ScoreWrapper = styled.div`
display: flex;
line-height: 1;
`
export const Score = styled.div`` export const Score = styled.div``
export const PenaltyScore = styled.div`
font-weight: 400;
font-size: .55rem;
margin-left: 1px;
`
export const TeamLogos = styled.div<CardProps>` export const TeamLogos = styled.div<CardProps>`
display: ${({ isMatchPage }) => (isMatchPage ? 'none' : 'flex')}; display: ${({ isMatchPage }) => (isMatchPage ? 'none' : 'flex')};
align-items: center; align-items: center;

@ -1,4 +1,4 @@
import { useCallback } from 'react' import { Fragment, useCallback } from 'react'
import { useQuery } from 'react-query' import { useQuery } from 'react-query'
@ -41,6 +41,7 @@ import {
Time, Time,
Title, Title,
Views, Views,
PenaltyScore,
} from './styled' } from './styled'
export const MatchDescription = () => { export const MatchDescription = () => {
@ -93,6 +94,7 @@ export const MatchDescription = () => {
parseDate(date), parseDate(date),
isChangedTimeFormat ? 'h:mm a' : 'HH:mm', isChangedTimeFormat ? 'h:mm a' : 'HH:mm',
) )
const isPenaltyScoreShow = queryScore?.team1.penalty_score || team1.penalty_score
return ( return (
<Description isHidden={!profileCardShown}> <Description isHidden={!profileCardShown}>
@ -111,8 +113,26 @@ export const MatchDescription = () => {
{ {
isScoreHidden || isNil(team1.score) || isNil(team2.score) isScoreHidden || isNil(team1.score) || isNil(team2.score)
? '-' ? '-'
: `${queryScore?.team1.score ?? team1.score} - ${queryScore?.team2.score ?? team2.score}` : (
<Fragment>
{queryScore?.team1.score ?? team1.score}
{isPenaltyScoreShow && (
<PenaltyScore>
({queryScore?.team1.penalty_score ?? team1.penalty_score})
</PenaltyScore>
)}
{` - ${queryScore?.team2.score ?? team2.score}`}
{isPenaltyScoreShow && (
<PenaltyScore>
({queryScore?.team2.penalty_score ?? team2.penalty_score})
</PenaltyScore>
)}
</Fragment>
)
} }
</Score> </Score>
<StyledLink <StyledLink

@ -40,6 +40,11 @@ export const Score = styled.span`
: ''}; : ''};
` `
export const PenaltyScore = styled.span`
font-weight: 400;
opacity: .8;
`
export const StyledLink = styled(ProfileLink)` export const StyledLink = styled(ProfileLink)`
display: flex; display: flex;
align-items: center; align-items: center;

@ -4,6 +4,7 @@ import { API_ROOT } from 'config'
type ScoreTeam = { type ScoreTeam = {
id: number, id: number,
penalty_score: number | null,
score: number | null, score: number | null,
} }

@ -16,6 +16,7 @@ export type Team = {
id: number, id: number,
name_eng: string, name_eng: string,
name_rus: string, name_rus: string,
penalty_score: number | null,
score: number, score: number,
shirt_color: string | null, shirt_color: string | null,
} }

@ -22,6 +22,7 @@ type Team = {
media?: AwsTeamMedia, media?: AwsTeamMedia,
name_eng: string, name_eng: string,
name_rus: string, name_rus: string,
penalty_score?: number | null,
score?: number | null, score?: number | null,
} }

Loading…
Cancel
Save