|
|
|
|
@ -17,6 +17,7 @@ import { initialCircleAnimation } from 'features/CircleAnimationBar' |
|
|
|
|
import type { TCircleAnimation } from 'features/CircleAnimationBar' |
|
|
|
|
import { StatsType } from 'features/MatchSidePlaylists/components/TabStats/config' |
|
|
|
|
import { PlaylistTypes } from 'features/MatchPage/types' |
|
|
|
|
import { FULL_GAME_KEY } from 'features/MatchPage/helpers/buildPlaylists' |
|
|
|
|
|
|
|
|
|
import type { MatchInfo } from 'requests/getMatchInfo' |
|
|
|
|
import { getMatchInfo } from 'requests/getMatchInfo' |
|
|
|
|
@ -48,9 +49,9 @@ type PlayingData = { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type EpisodeInfo = { |
|
|
|
|
paramName: string, |
|
|
|
|
paramValue?: number, |
|
|
|
|
playerOrTeamName: string, |
|
|
|
|
episodesCount?: number, |
|
|
|
|
paramName?: string, |
|
|
|
|
playerOrTeamName?: string, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const initPlayingData: PlayingData = { |
|
|
|
|
@ -72,18 +73,16 @@ export const useMatchPage = () => { |
|
|
|
|
const [access, setAccess] = useState(true) |
|
|
|
|
const [playingProgress, setPlayingProgress] = useState(0) |
|
|
|
|
const [playingData, setPlayingData] = useState<PlayingData>(initPlayingData) |
|
|
|
|
const [plaingOrder, setPlaingOrder] = useState(0) |
|
|
|
|
const [playingOrder, setPlaingOrder] = useState(0) |
|
|
|
|
const [isPlayFilterEpisodes, setIsPlayingFiltersEpisodes] = useState(false) |
|
|
|
|
const [selectedTab, setSelectedTab] = useState<Tabs>(Tabs.WATCH) |
|
|
|
|
const [circleAnimation, setCircleAnimation] = useState<TCircleAnimation>(initialCircleAnimation) |
|
|
|
|
const [episodeInfo, setEpisodeInfo] = useState<EpisodeInfo>({ |
|
|
|
|
episodesCount: 0, |
|
|
|
|
paramName: '', |
|
|
|
|
paramValue: 0, |
|
|
|
|
playerOrTeamName: '', |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
const isStatsTab = selectedTab === Tabs.STATS |
|
|
|
|
|
|
|
|
|
const { profileId: matchId, sportType } = usePageParams() |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
@ -112,13 +111,13 @@ export const useMatchPage = () => { |
|
|
|
|
matchPlaylists, |
|
|
|
|
selectedPlaylist, |
|
|
|
|
setFullMatchPlaylistDuration, |
|
|
|
|
} = useMatchData({ matchProfile, selectedTab }) |
|
|
|
|
} = useMatchData({ matchProfile }) |
|
|
|
|
|
|
|
|
|
const profile = matchProfile |
|
|
|
|
|
|
|
|
|
const isPlayingEpisode = selectedPlaylist.type === PlaylistTypes.EVENT |
|
|
|
|
&& selectedPlaylist.tab === Tabs.STATS |
|
|
|
|
&& selectedTab === Tabs.STATS |
|
|
|
|
const isPlayingEpisode = selectedPlaylist.id !== FULL_GAME_KEY |
|
|
|
|
|
|
|
|
|
const isStatsPlaylist = selectedPlaylist.tab === Tabs.STATS |
|
|
|
|
|
|
|
|
|
const { |
|
|
|
|
activeEvents, |
|
|
|
|
@ -245,7 +244,7 @@ export const useMatchPage = () => { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const disablePlayingEpisodes = () => { |
|
|
|
|
isStatsTab ? disablePlayingStatsEpisodes() : disablePlayingPlaysEpisodes() |
|
|
|
|
isStatsPlaylist ? disablePlayingStatsEpisodes() : disablePlayingPlaysEpisodes() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
@ -253,7 +252,7 @@ export const useMatchPage = () => { |
|
|
|
|
disablePlayingStatsEpisodes() |
|
|
|
|
disablePlayingPlaysEpisodes() |
|
|
|
|
} else { |
|
|
|
|
selectedTab === Tabs.EVENTS ? disablePlayingStatsEpisodes() : disablePlayingPlaysEpisodes() |
|
|
|
|
!isStatsPlaylist ? disablePlayingStatsEpisodes() : disablePlayingPlaysEpisodes() |
|
|
|
|
} |
|
|
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
|
|
|
}, [selectedPlaylist]) |
|
|
|
|
@ -265,8 +264,8 @@ export const useMatchPage = () => { |
|
|
|
|
isPlayersStatsFetching, |
|
|
|
|
isPlayFilterEpisodes: isStatsPlayFilterEpisodes, |
|
|
|
|
isTeamsStatsFetching, |
|
|
|
|
plaingOrder: statsPlaingOrder, |
|
|
|
|
playEpisodes: playStatsEpisodes, |
|
|
|
|
playingOrder: statsPlaingOrder, |
|
|
|
|
playNextEpisode: playStatsNextEpisode, |
|
|
|
|
reduceTable, |
|
|
|
|
selectedStatsTable, |
|
|
|
|
@ -357,16 +356,19 @@ export const useMatchPage = () => { |
|
|
|
|
} = useTabEvents({ events: filteredEvents, profile }) |
|
|
|
|
|
|
|
|
|
const playNextEpisode = (order?: number) => { |
|
|
|
|
const isLastEpisode = plaingOrder === episodesToPlay.length |
|
|
|
|
const isLastEpisode = playingOrder === episodesToPlay.length |
|
|
|
|
|
|
|
|
|
const currentOrder = order === 0 ? order : plaingOrder |
|
|
|
|
const currentOrder = order === 0 ? order : playingOrder |
|
|
|
|
if (isLastEpisode) { |
|
|
|
|
setIsPlayingFiltersEpisodes(false) |
|
|
|
|
setPlaingOrder(0) |
|
|
|
|
|
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
handlePlaylistClick(episodesToPlay[currentOrder]) |
|
|
|
|
handlePlaylistClick({ |
|
|
|
|
playlist: episodesToPlay[currentOrder], |
|
|
|
|
tab: Tabs.EVENTS, |
|
|
|
|
}) |
|
|
|
|
setPlaingOrder(currentOrder + 1) |
|
|
|
|
} |
|
|
|
|
const playEpisodes = () => { |
|
|
|
|
@ -383,9 +385,12 @@ export const useMatchPage = () => { |
|
|
|
|
|
|
|
|
|
if (matchProfile?.live) { |
|
|
|
|
handlePlaylistClick({ |
|
|
|
|
episodes: episodesToPlay.map((el) => el.episodes[0]), |
|
|
|
|
id: 1, |
|
|
|
|
type: episodesToPlay[0].type, |
|
|
|
|
playlist: { |
|
|
|
|
episodes: episodesToPlay.map((el) => el.episodes[0]), |
|
|
|
|
id: 1, |
|
|
|
|
type: episodesToPlay[0].type, |
|
|
|
|
}, |
|
|
|
|
tab: Tabs.EVENTS, |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
playNextEpisode(0) |
|
|
|
|
@ -402,13 +407,13 @@ export const useMatchPage = () => { |
|
|
|
|
allPlayersToggle, |
|
|
|
|
applyFilters, |
|
|
|
|
beforeCloseTourCallback, |
|
|
|
|
circleAnimation: isStatsTab ? statsCircleAnimation : circleAnimation, |
|
|
|
|
circleAnimation: isStatsPlaylist ? statsCircleAnimation : circleAnimation, |
|
|
|
|
closePopup, |
|
|
|
|
countOfFilters, |
|
|
|
|
disablePlayingEpisodes, |
|
|
|
|
episodeInfo, |
|
|
|
|
events, |
|
|
|
|
filteredEvents: isStatsTab ? statsFilteredEvents : filteredEvents, |
|
|
|
|
filteredEvents: isStatsPlaylist ? statsFilteredEvents : filteredEvents, |
|
|
|
|
getFirstClickableParam, |
|
|
|
|
getParams, |
|
|
|
|
handlePlaylistClick, |
|
|
|
|
@ -421,7 +426,7 @@ export const useMatchPage = () => { |
|
|
|
|
isFirstTeamPlayersChecked, |
|
|
|
|
isLiveMatch, |
|
|
|
|
isOpenFiltersPopup, |
|
|
|
|
isPlayFilterEpisodes: isStatsTab ? isStatsPlayFilterEpisodes : isPlayFilterEpisodes, |
|
|
|
|
isPlayFilterEpisodes: isStatsPlaylist ? isStatsPlayFilterEpisodes : isPlayFilterEpisodes, |
|
|
|
|
isPlayersStatsFetching, |
|
|
|
|
isPlayingEpisode, |
|
|
|
|
isSecondTeamPlayersChecked, |
|
|
|
|
@ -430,13 +435,13 @@ export const useMatchPage = () => { |
|
|
|
|
likeImage, |
|
|
|
|
likeToggle, |
|
|
|
|
matchPlaylists, |
|
|
|
|
plaingOrder: isStatsTab ? statsPlaingOrder : plaingOrder, |
|
|
|
|
playEpisodes, |
|
|
|
|
playNextEpisode: isStatsTab ? playStatsNextEpisode : playNextEpisode, |
|
|
|
|
playNextEpisode: isStatsPlaylist ? playStatsNextEpisode : playNextEpisode, |
|
|
|
|
playStatsEpisodes, |
|
|
|
|
playersData, |
|
|
|
|
playersStats, |
|
|
|
|
playingData, |
|
|
|
|
playingOrder: isStatsPlaylist ? statsPlaingOrder : playingOrder, |
|
|
|
|
playingProgress, |
|
|
|
|
profile, |
|
|
|
|
profileCardShown, |
|
|
|
|
@ -445,13 +450,13 @@ export const useMatchPage = () => { |
|
|
|
|
selectedPlaylist, |
|
|
|
|
selectedStatsTable, |
|
|
|
|
selectedTab, |
|
|
|
|
setCircleAnimation: isStatsTab ? setStatsCircleAnimation : setCircleAnimation, |
|
|
|
|
setCircleAnimation: isStatsPlaylist ? setStatsCircleAnimation : setCircleAnimation, |
|
|
|
|
setEpisodeInfo, |
|
|
|
|
setFullMatchPlaylistDuration, |
|
|
|
|
setIsPlayingFiltersEpisodes: isStatsTab |
|
|
|
|
setIsPlayingFiltersEpisodes: isStatsPlaylist |
|
|
|
|
? setStatsIsPlayinFiltersEpisodes |
|
|
|
|
: setIsPlayersStatsFetching, |
|
|
|
|
setPlaingOrder: isStatsTab ? setStatsPlaingOrder : setPlaingOrder, |
|
|
|
|
setPlaingOrder: isStatsPlaylist ? setStatsPlaingOrder : setPlaingOrder, |
|
|
|
|
setPlayingData, |
|
|
|
|
setPlayingProgress, |
|
|
|
|
setReversed, |
|
|
|
|
@ -459,9 +464,10 @@ export const useMatchPage = () => { |
|
|
|
|
setSelectedTab, |
|
|
|
|
setStatsType, |
|
|
|
|
setUnreversed, |
|
|
|
|
setWatchAllEpisodesTimer: isStatsTab ? setStatsWatchAllEpisodesTimer : setWatchAllEpisodesTimer, |
|
|
|
|
setWatchAllEpisodesTimer: isStatsPlaylist |
|
|
|
|
? setStatsWatchAllEpisodesTimer |
|
|
|
|
: setWatchAllEpisodesTimer, |
|
|
|
|
showProfileCard, |
|
|
|
|
statsPlaingOrder, |
|
|
|
|
statsType, |
|
|
|
|
teamsStats, |
|
|
|
|
toggleActiveEvents, |
|
|
|
|
@ -472,6 +478,6 @@ export const useMatchPage = () => { |
|
|
|
|
tournamentData, |
|
|
|
|
uniqEvents, |
|
|
|
|
user, |
|
|
|
|
watchAllEpisodesTimer: isStatsTab ? statsWatchAllEpisodesTimer : watchAllEpisodesTimer, |
|
|
|
|
watchAllEpisodesTimer: isStatsPlaylist ? statsWatchAllEpisodesTimer : watchAllEpisodesTimer, |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|