Skip to content

Commit cc44649

Browse files
authored
Merge pull request #1050 from Zibbp/misc-02-07
Playback fix when changing layout
2 parents b7fc815 + 1f8c483 commit cc44649

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

frontend/app/components/videos/Player.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ const VideoPlayer = ({ video, ref }: Params) => {
4242
const axiosPrivate = useAxiosPrivate();
4343
// get playback data
4444
const { data: playbackData } = useFetchPlaybackForVideo(axiosPrivate, video.id, {
45+
refetchOnMount: "always",
4546
refetchOnWindowFocus: false,
4647
refetchOnReconnect: false,
4748
retry: false,
@@ -97,7 +98,7 @@ const VideoPlayer = ({ video, ref }: Params) => {
9798
}
9899
});
99100

100-
// set playback progress
101+
// Resume from server-side playback progress.
101102
if (playbackData && playbackData.time) {
102103
player.current!.currentTime = playbackData.time
103104
}
@@ -209,4 +210,4 @@ const VideoPlayer = ({ video, ref }: Params) => {
209210
);
210211
}
211212

212-
export default VideoPlayer;
213+
export default VideoPlayer;

frontend/app/hooks/usePlayback.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,12 @@ const useFetchPlaybackForVideo = (
5959
return useQuery<Playback, Error, Playback, [string, string]>({
6060
queryKey: ["playback-data", videoId],
6161
queryFn: () => fetchPlaybackForVideo(axiosPrivate, videoId),
62-
...options,
6362
refetchInterval: false,
6463
refetchOnMount: false,
6564
refetchOnWindowFocus: false,
6665
refetchOnReconnect: false,
6766
refetchIntervalInBackground: false,
67+
...options,
6868
});
6969
};
7070

internal/transport/http/handler.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,16 @@ func (h *Handler) mapRoutes() {
157157
})
158158

159159
// Static files if not using nginx
160-
envConfig := config.GetEnvConfig()
161-
h.Server.Static(envConfig.VideosDir, envConfig.VideosDir)
162-
h.Server.Static(envConfig.TempDir, envConfig.TempDir)
160+
env := config.GetEnvConfig()
161+
// Use one handler for both GET + HEAD
162+
videosH := echo.WrapHandler(http.StripPrefix(env.VideosDir, http.FileServer(http.Dir(env.VideosDir))))
163+
tempH := echo.WrapHandler(http.StripPrefix(env.TempDir, http.FileServer(http.Dir(env.TempDir))))
164+
165+
h.Server.GET(env.VideosDir+"/*", videosH)
166+
h.Server.HEAD(env.VideosDir+"/*", videosH)
167+
168+
h.Server.GET(env.TempDir+"/*", tempH)
169+
h.Server.HEAD(env.TempDir+"/*", tempH)
163170

164171
// RiverUI
165172
h.Server.Any("/riverui/", echo.WrapHandler(h.RiverUIServer), AuthGuardMiddleware, AuthGetUserMiddleware, AuthUserRoleMiddleware(utils.EditorRole))

0 commit comments

Comments
 (0)