|
|
|
|
@ -16,6 +16,7 @@ import { Tabs } from 'features/MatchSidePlaylists/config' |
|
|
|
|
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 type { MatchInfo } from 'requests/getMatchInfo' |
|
|
|
|
import { getMatchInfo } from 'requests/getMatchInfo' |
|
|
|
|
@ -46,6 +47,12 @@ type PlayingData = { |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type EpisodeInfo = { |
|
|
|
|
paramName: string, |
|
|
|
|
paramValue?: number, |
|
|
|
|
playerOrTeamName: string, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const initPlayingData: PlayingData = { |
|
|
|
|
player: { |
|
|
|
|
id: null, |
|
|
|
|
@ -69,6 +76,11 @@ export const useMatchPage = () => { |
|
|
|
|
const [isPlayFilterEpisodes, setIsPlayingFiltersEpisodes] = useState(false) |
|
|
|
|
const [selectedTab, setSelectedTab] = useState<Tabs>(Tabs.WATCH) |
|
|
|
|
const [circleAnimation, setCircleAnimation] = useState<TCircleAnimation>(initialCircleAnimation) |
|
|
|
|
const [episodeInfo, setEpisodeInfo] = useState<EpisodeInfo>({ |
|
|
|
|
paramName: '', |
|
|
|
|
paramValue: 0, |
|
|
|
|
playerOrTeamName: '', |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
const isStatsTab = selectedTab === Tabs.STATS |
|
|
|
|
|
|
|
|
|
@ -100,10 +112,14 @@ export const useMatchPage = () => { |
|
|
|
|
matchPlaylists, |
|
|
|
|
selectedPlaylist, |
|
|
|
|
setFullMatchPlaylistDuration, |
|
|
|
|
} = useMatchData(matchProfile) |
|
|
|
|
} = useMatchData({ matchProfile, selectedTab }) |
|
|
|
|
|
|
|
|
|
const profile = matchProfile |
|
|
|
|
|
|
|
|
|
const isPlayingEpisode = selectedPlaylist.type === PlaylistTypes.EVENT |
|
|
|
|
&& selectedPlaylist.tab === Tabs.STATS |
|
|
|
|
&& selectedTab === Tabs.STATS |
|
|
|
|
|
|
|
|
|
const { |
|
|
|
|
activeEvents, |
|
|
|
|
activeFirstTeamPlayers, |
|
|
|
|
@ -214,12 +230,34 @@ export const useMatchPage = () => { |
|
|
|
|
userInfo, |
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
const disablePlayingEpisodes = () => { |
|
|
|
|
const disablePlayingStatsEpisodes = () => { |
|
|
|
|
setStatsIsPlayinFiltersEpisodes(false) |
|
|
|
|
setStatsWatchAllEpisodesTimer(false) |
|
|
|
|
setStatsCircleAnimation(initialCircleAnimation) |
|
|
|
|
setStatsPlaingOrder(0) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const disablePlayingPlaysEpisodes = () => { |
|
|
|
|
setIsPlayingFiltersEpisodes(false) |
|
|
|
|
setWatchAllEpisodesTimer(false) |
|
|
|
|
setCircleAnimation(initialCircleAnimation) |
|
|
|
|
setPlaingOrder(0) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const disablePlayingEpisodes = () => { |
|
|
|
|
isStatsTab ? disablePlayingStatsEpisodes() : disablePlayingPlaysEpisodes() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (selectedPlaylist.type !== PlaylistTypes.EVENT) { |
|
|
|
|
disablePlayingStatsEpisodes() |
|
|
|
|
disablePlayingPlaysEpisodes() |
|
|
|
|
} else { |
|
|
|
|
selectedTab === Tabs.EVENTS ? disablePlayingStatsEpisodes() : disablePlayingPlaysEpisodes() |
|
|
|
|
} |
|
|
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
|
|
|
}, [selectedPlaylist]) |
|
|
|
|
|
|
|
|
|
const { |
|
|
|
|
circleAnimation: statsCircleAnimation, |
|
|
|
|
filteredEvents: statsFilteredEvents, |
|
|
|
|
@ -324,6 +362,7 @@ export const useMatchPage = () => { |
|
|
|
|
const currentOrder = order === 0 ? order : plaingOrder |
|
|
|
|
if (isLastEpisode) { |
|
|
|
|
setIsPlayingFiltersEpisodes(false) |
|
|
|
|
setPlaingOrder(0) |
|
|
|
|
|
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
@ -367,6 +406,7 @@ export const useMatchPage = () => { |
|
|
|
|
closePopup, |
|
|
|
|
countOfFilters, |
|
|
|
|
disablePlayingEpisodes, |
|
|
|
|
episodeInfo, |
|
|
|
|
events, |
|
|
|
|
filteredEvents: isStatsTab ? statsFilteredEvents : filteredEvents, |
|
|
|
|
getFirstClickableParam, |
|
|
|
|
@ -383,6 +423,7 @@ export const useMatchPage = () => { |
|
|
|
|
isOpenFiltersPopup, |
|
|
|
|
isPlayFilterEpisodes: isStatsTab ? isStatsPlayFilterEpisodes : isPlayFilterEpisodes, |
|
|
|
|
isPlayersStatsFetching, |
|
|
|
|
isPlayingEpisode, |
|
|
|
|
isSecondTeamPlayersChecked, |
|
|
|
|
isStarted, |
|
|
|
|
isTeamsStatsFetching, |
|
|
|
|
@ -405,6 +446,7 @@ export const useMatchPage = () => { |
|
|
|
|
selectedStatsTable, |
|
|
|
|
selectedTab, |
|
|
|
|
setCircleAnimation: isStatsTab ? setStatsCircleAnimation : setCircleAnimation, |
|
|
|
|
setEpisodeInfo, |
|
|
|
|
setFullMatchPlaylistDuration, |
|
|
|
|
setIsPlayingFiltersEpisodes: isStatsTab |
|
|
|
|
? setStatsIsPlayinFiltersEpisodes |
|
|
|
|
@ -419,6 +461,7 @@ export const useMatchPage = () => { |
|
|
|
|
setUnreversed, |
|
|
|
|
setWatchAllEpisodesTimer: isStatsTab ? setStatsWatchAllEpisodesTimer : setWatchAllEpisodesTimer, |
|
|
|
|
showProfileCard, |
|
|
|
|
statsPlaingOrder, |
|
|
|
|
statsType, |
|
|
|
|
teamsStats, |
|
|
|
|
toggleActiveEvents, |
|
|
|
|
|