import type { KeyboardEvent } from 'react' import { useLocation, useRouteMatch } from 'react-router' import getUnixTime from 'date-fns/getUnixTime' import { ProfileTypes, PAGES, client, } from 'config' import type { Match } from 'helpers' import { useMatchSwitchesStore } from 'features/MatchSwitches' import { useName } from 'features/Name' import { T9n } from 'features/T9n' import { MatchAccess } from 'features/Matches/helpers/getMatchClickAction' import { useUserFavoritesStore } from 'features/UserFavorites/store' import { useHeaderFiltersStore } from 'features/HeaderFilters' import { Icon } from 'features/Icon' import type { LiveScore } from 'requests' import { NoAccessMessage } from '../../NoAccessMessage' import { getPrepareTimeFormat } from '../../helpers' import { getPrepareDateFormat } from '../../helpers/getPrepareDateFormat' import { CardWrapperOuter, CardWrapper, Info, LiveSign, MatchDate, MatchTimeInfo, Preview, PreviewWrapper, Team, TeamName, Teams, Time, TeamLogos, TeamLogo, BuyMatchBadge, SecondaryInfo, FavoriteSign, NameSignWrapper, HoverFrame, MobTime, } from './styled' import { useCardPreview } from '../hooks' import { Score } from '../../Score' type Props = { isNeedFormatTimeChanged: boolean, isOwnedMatches: boolean, match: Match, onClick: () => void, onKeyPress: (e: KeyboardEvent) => void, score?: LiveScore, } export const CardFrontsideMobile = ({ isNeedFormatTimeChanged, isOwnedMatches, match, onClick, onKeyPress, score, }: Props) => { const location = useLocation() const { access, date, group, live, preview, previewURL, sportType, team1, team2, time, tournament, } = match const isHomePage = useRouteMatch(PAGES.home)?.isExact const isMatchPage = location.pathname.includes(PAGES.match) const tournamentName = useName(tournament) const { isInFavorites } = useUserFavoritesStore() const { isScoreHidden } = useMatchSwitchesStore() const { isMonthMode } = useHeaderFiltersStore() const { color } = tournament const isInFuture = getUnixTime(date) > getUnixTime(new Date()) const showScore = !(isInFuture || isScoreHidden) || (live && !isScoreHidden) const team1InFavorites = isInFavorites(ProfileTypes.TEAMS, team1.id) const team2InFavorites = isInFavorites(ProfileTypes.TEAMS, team2.id) const { previewImage } = useCardPreview({ preview, previewURL, }) const prepareTime = getPrepareTimeFormat({ date, isNeedFormatTimeChanged, time, }) const prepareDate = getPrepareDateFormat({ date, isNeedFormatTimeChanged, }) return ( {previewImage && ( )} {access === MatchAccess.NoCountryAccess ? ( ) : ( )} {(isHomePage && !isMonthMode) || isMatchPage ? null : prepareDate} {isOwnedMatches && {prepareTime} } {live && ( )} {team1InFavorites && } {team2InFavorites && } {isHomePage || isMatchPage ? : null} {access === MatchAccess.CanBuyMatch && ( )} ) }