|
|
|
@ -1,15 +1,13 @@ |
|
|
|
import type { Dispatch, SetStateAction } from 'react' |
|
|
|
import { useState, useEffect } from 'react' |
|
|
|
import { useState } from 'react' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import map from 'lodash/map' |
|
|
|
import map from 'lodash/map' |
|
|
|
import isEqual from 'lodash/isEqual' |
|
|
|
import isEqual from 'lodash/isEqual' |
|
|
|
|
|
|
|
|
|
|
|
import { isIOS } from 'config' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import type { |
|
|
|
import type { |
|
|
|
Episode, |
|
|
|
Episode, |
|
|
|
Episodes, |
|
|
|
Episodes, |
|
|
|
Events, |
|
|
|
Events, |
|
|
|
|
|
|
|
MatchInfo, |
|
|
|
} from 'requests' |
|
|
|
} from 'requests' |
|
|
|
|
|
|
|
|
|
|
|
import type { EventPlaylistOption, PlaylistOption } from 'features/MatchPage/types' |
|
|
|
import type { EventPlaylistOption, PlaylistOption } from 'features/MatchPage/types' |
|
|
|
@ -21,8 +19,8 @@ import { StatsType } from 'features/MatchSidePlaylists/components/TabStats/confi |
|
|
|
type UseStatsTabArgs = { |
|
|
|
type UseStatsTabArgs = { |
|
|
|
disablePlayingEpisodes: () => void, |
|
|
|
disablePlayingEpisodes: () => void, |
|
|
|
handlePlaylistClick: (playlist: PlaylistOption) => void, |
|
|
|
handlePlaylistClick: (playlist: PlaylistOption) => void, |
|
|
|
|
|
|
|
matchProfile: MatchInfo, |
|
|
|
selectedPlaylist?: PlaylistOption, |
|
|
|
selectedPlaylist?: PlaylistOption, |
|
|
|
setSelectedPlaylist: Dispatch<SetStateAction<PlaylistOption | undefined>>, |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
type PlayNextEpisodeArgs = { |
|
|
|
type PlayNextEpisodeArgs = { |
|
|
|
@ -45,8 +43,8 @@ const addOffset = ({ |
|
|
|
export const useStatsTab = ({ |
|
|
|
export const useStatsTab = ({ |
|
|
|
disablePlayingEpisodes, |
|
|
|
disablePlayingEpisodes, |
|
|
|
handlePlaylistClick, |
|
|
|
handlePlaylistClick, |
|
|
|
|
|
|
|
matchProfile, |
|
|
|
selectedPlaylist, |
|
|
|
selectedPlaylist, |
|
|
|
setSelectedPlaylist, |
|
|
|
|
|
|
|
}: UseStatsTabArgs) => { |
|
|
|
}: UseStatsTabArgs) => { |
|
|
|
const [statsType, setStatsType] = useState<StatsType>(StatsType.FINAL_STATS) |
|
|
|
const [statsType, setStatsType] = useState<StatsType>(StatsType.FINAL_STATS) |
|
|
|
const [isPlayersStatsFetching, setIsPlayersStatsFetching] = useState(false) |
|
|
|
const [isPlayersStatsFetching, setIsPlayersStatsFetching] = useState(false) |
|
|
|
@ -108,17 +106,6 @@ export const useStatsTab = ({ |
|
|
|
|
|
|
|
|
|
|
|
const episodesToPlay = getEpisodesToPlay(episodes) |
|
|
|
const episodesToPlay = getEpisodesToPlay(episodes) |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* на ios видео иногда не останавлвается после завершения эпизода, |
|
|
|
|
|
|
|
* данный хак исправляет проблему |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
if (isIOS) { |
|
|
|
|
|
|
|
setSelectedPlaylist({ |
|
|
|
|
|
|
|
...episodesToPlay[0], |
|
|
|
|
|
|
|
episodes: [addOffset(episodesToPlay[0].episodes[0])], |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setEpisodesToPlay(episodesToPlay) |
|
|
|
setEpisodesToPlay(episodesToPlay) |
|
|
|
setFilteredEvents(episodes as Events) |
|
|
|
setFilteredEvents(episodes as Events) |
|
|
|
|
|
|
|
|
|
|
|
@ -129,6 +116,12 @@ export const useStatsTab = ({ |
|
|
|
playNextEpisode({ episodesToPlay, order: 0 }) |
|
|
|
playNextEpisode({ episodesToPlay, order: 0 }) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
|
|
|
if (matchProfile?.live) { |
|
|
|
|
|
|
|
setStatsType(StatsType.CURRENT_STATS) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, [matchProfile?.live]) |
|
|
|
|
|
|
|
|
|
|
|
return { |
|
|
|
return { |
|
|
|
circleAnimation, |
|
|
|
circleAnimation, |
|
|
|
filteredEvents, |
|
|
|
filteredEvents, |
|
|
|
|