diff --git a/src/features/MatchPage/store/hooks/index.tsx b/src/features/MatchPage/store/hooks/index.tsx index 1d7ee57a..30bf93db 100644 --- a/src/features/MatchPage/store/hooks/index.tsx +++ b/src/features/MatchPage/store/hooks/index.tsx @@ -296,7 +296,6 @@ export const useMatchPage = () => { } = useTeamsStats({ matchProfile, playingProgress, - selectedPlaylist, selectedStatsTable, selectedTab, setIsTeamsStatsFetching, @@ -311,7 +310,6 @@ export const useMatchPage = () => { } = usePlayersStats({ matchProfile, playingProgress, - selectedPlaylist, selectedStatsTable, selectedTab, setIsPlayersStatsFetching, diff --git a/src/features/MatchPage/store/hooks/usePlayersStats.tsx b/src/features/MatchPage/store/hooks/usePlayersStats.tsx index f46f1c69..d608a597 100644 --- a/src/features/MatchPage/store/hooks/usePlayersStats.tsx +++ b/src/features/MatchPage/store/hooks/usePlayersStats.tsx @@ -36,9 +36,7 @@ import { getLocalStorageItem } from 'helpers/getLocalStorage' import { useObjectState, usePageParams } from 'hooks' -import type{ PlaylistOption } from 'features/MatchPage/types' import { StatsType, Tabs as StatsTabs } from 'features/MatchSidePlaylists/components/TabStats/config' -import { FULL_GAME_KEY } from 'features/MatchPage/helpers/buildPlaylists' import { getHalfTime } from 'features/MatchPage/helpers/getHalfTime' import { TOUR_COMPLETED_STORAGE_KEY } from 'features/MatchTour' import { Tabs } from 'features/MatchSidePlaylists/config' @@ -52,7 +50,6 @@ const STATS_POLL_INTERVAL = 30000 type UsePlayersStatsArgs = { matchProfile: MatchInfo, playingProgress: number, - selectedPlaylist?: PlaylistOption, selectedStatsTable: StatsTabs, selectedTab: Tabs, setIsPlayersStatsFetching: Dispatch>, @@ -67,7 +64,6 @@ type PlayersData = { export const usePlayersStats = ({ matchProfile, playingProgress, - selectedPlaylist, selectedStatsTable, selectedTab, setIsPlayersStatsFetching, @@ -147,8 +143,7 @@ export const usePlayersStats = ({ const isTeam1Selected = selectedStatsTable === StatsTabs.TEAM1 if ( - selectedPlaylist?.id !== FULL_GAME_KEY - || selectedTab !== Tabs.STATS + selectedTab !== Tabs.STATS || !includes([StatsTabs.TEAM1, StatsTabs.TEAM2], selectedStatsTable) || !matchProfile?.team1.id || !matchProfile?.team2.id @@ -195,7 +190,6 @@ export const usePlayersStats = ({ setIsPlayersStatsFetching(false) // eslint-disable-next-line react-hooks/exhaustive-deps }, REQUEST_DELAY), [ - selectedPlaylist?.id, fetchPlayers, fetchPlayersStats, setPlayersStats, diff --git a/src/features/MatchPage/store/hooks/useStatsTab.tsx b/src/features/MatchPage/store/hooks/useStatsTab.tsx index b2658dbd..2f1666f1 100644 --- a/src/features/MatchPage/store/hooks/useStatsTab.tsx +++ b/src/features/MatchPage/store/hooks/useStatsTab.tsx @@ -1,10 +1,8 @@ import { useState, useEffect } from 'react' import map from 'lodash/map' -import isEqual from 'lodash/isEqual' import type { - Episode, Episodes, Events, MatchInfo, @@ -36,18 +34,6 @@ type PlayNextEpisodeArgs = { order?: number, } -const EPISODE_TIMESTAMP_OFFSET = 0.001 - -const addOffset = ({ - e, - h, - s, -}: Episode) => ({ - e: e + EPISODE_TIMESTAMP_OFFSET, - h, - s: s + EPISODE_TIMESTAMP_OFFSET, -}) - export const useStatsTab = ({ disablePlayingEpisodes, handlePlaylistClick, @@ -82,15 +68,7 @@ export const useStatsTab = ({ } const getEpisodesToPlay = (episodes: Episodes) => map(episodes, (episode, i) => ({ - episodes: [ - /** При проигрывании нового эпизода с такими же e и s, как у текущего - воспроизведение начинается не с начала, чтобы пофиксить это добавляем - небольшой оффсет - */ - isEqual(episode, selectedPlaylist?.episodes[0]) - ? addOffset(episode) - : episode, - ], + episodes: [episode], id: i, type: PlaylistTypes.EVENT, })) as Array diff --git a/src/features/MatchPage/store/hooks/useTeamsStats.tsx b/src/features/MatchPage/store/hooks/useTeamsStats.tsx index b2c0c862..2e92672d 100644 --- a/src/features/MatchPage/store/hooks/useTeamsStats.tsx +++ b/src/features/MatchPage/store/hooks/useTeamsStats.tsx @@ -25,9 +25,7 @@ import { usePageParams } from 'hooks' import { getLocalStorageItem } from 'helpers/getLocalStorage' -import type { PlaylistOption } from 'features/MatchPage/types' import { StatsType, Tabs as StatsTab } from 'features/MatchSidePlaylists/components/TabStats/config' -import { FULL_GAME_KEY } from 'features/MatchPage/helpers/buildPlaylists' import { getHalfTime } from 'features/MatchPage/helpers/getHalfTime' import { TOUR_COMPLETED_STORAGE_KEY } from 'features/MatchTour' import { Tabs } from 'features/MatchSidePlaylists/config' @@ -40,7 +38,6 @@ const STATS_POLL_INTERVAL = 30000 type UseTeamsStatsArgs = { matchProfile: MatchInfo, playingProgress: number, - selectedPlaylist?: PlaylistOption, selectedStatsTable: StatsTab, selectedTab: Tabs, setIsTeamsStatsFetching: Dispatch>, @@ -54,7 +51,6 @@ type TeamsStats = { export const useTeamsStats = ({ matchProfile, playingProgress, - selectedPlaylist, selectedStatsTable, selectedTab, setIsTeamsStatsFetching, @@ -101,7 +97,6 @@ export const useTeamsStats = ({ if ( !sportName - || selectedPlaylist?.id !== FULL_GAME_KEY || !videoBounds || selectedTab !== Tabs.STATS || selectedStatsTable !== StatsTab.TEAMS @@ -129,7 +124,6 @@ export const useTeamsStats = ({ matchProfile?.video_bounds, matchProfile?.live, matchScore?.video_bounds, - selectedPlaylist?.id, matchId, setIsTeamsStatsFetching, sportName, diff --git a/src/features/StreamPlayer/hooks/index.tsx b/src/features/StreamPlayer/hooks/index.tsx index 485528dc..787875a7 100644 --- a/src/features/StreamPlayer/hooks/index.tsx +++ b/src/features/StreamPlayer/hooks/index.tsx @@ -339,7 +339,7 @@ export const useVideoPlayer = ({ setPlayerState({ playedProgress: value }) timeForStatistics.current = (value + chapter.startMs) / 1000 - setPlayingProgress(Math.floor(value / 1000)) + chapter.isFullMatchChapter && setPlayingProgress(Math.floor(value / 1000)) progressChangeCallback(value / 1000) } @@ -530,6 +530,20 @@ export const useVideoPlayer = ({ selectedPlaylist, ]) + /** + * Для воcпроизведения нового эпизода, аналогичного текущему, с начала + */ + useEffect(() => { + if (chaptersProps[0].isFullMatchChapter) return + + setPlayerState({ + ...initialState, + chapters: chaptersProps, + playing: true, + seek: chaptersProps[0].startOffsetMs / 1000, + }) + }, [chaptersProps, setPlayerState]) + useEffect(() => { if (( chapters[0]?.isFullMatchChapter)