import { useState, useEffect } from "react"; import { useQuery } from "@tanstack/react-query"; import { useRoute } from "wouter"; import { type Video } from "@shared/schema"; // Helper functions const formatViews = (views: number): string => { if (views >= 1000000) return `${(views / 1000000).toFixed(1)}M`; if (views >= 1000) return `${(views / 1000).toFixed(1)}K`; return views.toString(); }; const formatDuration = (seconds: number): string => { const hours = Math.floor(seconds / 3600); const minutes = Math.floor((seconds % 3600) / 60); const secs = seconds % 60; if (hours > 0) { return `${hours}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`; } return `${minutes}:${secs.toString().padStart(2, '0')}`; }; const formatDate = (date: Date | string): string => { const d = typeof date === 'string' ? new Date(date) : date; return d.toLocaleDateString('sl-SI', { year: 'numeric', month: 'long', day: 'numeric' }); }; import { Button } from "@/components/ui/button"; import { Share2, X, Edit3 } from "lucide-react"; import { apiRequest } from "@/lib/queryClient"; import { FacebookShareButton, TwitterShareButton, WhatsappShareButton, FacebookIcon, TwitterIcon, WhatsappIcon, } from "react-share"; interface VideosResponse { videos: Video[]; total: number; hasMore: boolean; } export default function VideoPage() { const [, params] = useRoute("/video/:id"); const videoId = params?.id; const [showShareMenu, setShowShareMenu] = useState(false); // Fetch current video const { data: currentVideo, isLoading: videoLoading } = useQuery