File size: 1,860 Bytes
cc2caf9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

import React from 'react';
import { useParams, useNavigate } from 'react-router-dom';
import MoviePlayer from '../components/MoviePlayer';

const MoviePlayerPage = () => {
  const { title } = useParams<{ title: string }>();
  const navigate = useNavigate();

  const handleBack = () => {
    navigate(`/movie/${encodeURIComponent(title || '')}`);
  };

  // Save playback progress to localStorage
  const savePlaybackProgress = (currentTime: number, duration: number) => {
    if (!title) return;
    
    try {
      const progressKey = `movie-progress-${title}`;
      const isCompleted = (currentTime / duration) > 0.9; // Mark as completed if 90% watched
      
      localStorage.setItem(progressKey, JSON.stringify({
        currentTime,
        duration,
        lastPlayed: new Date().toISOString(),
        completed: isCompleted
      }));
    } catch (error) {
      console.error('Error saving playback progress:', error);
    }
  };

  // Fetch stored playback progress from localStorage
  const getPlaybackProgress = () => {
    if (!title) return 0;
    
    try {
      const progressKey = `movie-progress-${title}`;
      const storedProgress = localStorage.getItem(progressKey);
      
      if (storedProgress) {
        const progress = JSON.parse(storedProgress);
        if (progress && progress.currentTime && !progress.completed) {
          return progress.currentTime;
        }
      }
    } catch (error) {
      console.error('Error reading playback progress:', error);
    }
    
    return 0;
  };

  return (
    <div className="fixed inset-0 h-screen w-screen overflow-hidden bg-black">
      <MoviePlayer 
        movieTitle={title || ''}
        startTime={getPlaybackProgress()}
        onClosePlayer={handleBack}
        onProgressUpdate={savePlaybackProgress}
      />
    </div>
  );
};

export default MoviePlayerPage;