"use client"; import { useEffect, useRef, useState } from "react"; import { savePlaybackProgress } from "@/lib/history-service"; import { createClient } from "@/lib/supabase/client"; interface DracinPlayerProps { id: string; episode: number; title: string; poster: string; streamUrl: string; } export function DracinPlayer({ id, episode, title, poster, streamUrl }: DracinPlayerProps) { const videoRef = useRef(null); const [startTime, setStartTime] = useState(0); const supabase = createClient(); useEffect(() => { const fetchHistory = async () => { const { data: { user } } = await supabase.auth.getUser(); if (!user) return; const { data } = await supabase .from('history') .select('last_position, episode') .eq('user_id', user.id) .eq('subject_id', id) .eq('type', 'dracin') .single(); if (data && data.episode === episode) { setStartTime(data.last_position); if (videoRef.current) { videoRef.current.currentTime = data.last_position; } } }; fetchHistory(); }, [id, episode, supabase]); useEffect(() => { const interval = setInterval(() => { handleSave(); }, 15000); return () => { clearInterval(interval); handleSave(); }; }, [id, episode, title, poster]); const handleSave = () => { if (!videoRef.current || videoRef.current.currentTime === 0) return; savePlaybackProgress({ subjectId: id, type: 'dracin', title, poster, episode, lastPosition: videoRef.current.currentTime, duration: videoRef.current.duration }); }; return (
); }