Restored to 'da5c38c23546b6ac8177dac9774fb40023d30283'

Replit-Restored-To: da5c38c235
This commit is contained in:
sebastjanartic
2025-08-04 20:37:56 +00:00
parent 5bbf9e6c1b
commit 76f430775e
9 changed files with 13 additions and 538 deletions
-32
View File
@@ -3,7 +3,6 @@ import { useQuery } from "@tanstack/react-query";
import { type Video } from "@shared/schema";
import SearchHeader from "@/components/search-header";
import VideoGrid from "@/components/video-grid";
import VideoModal from "@/components/video-modal";
interface VideosResponse {
videos: Video[];
@@ -16,23 +15,6 @@ export default function Home() {
const [viewMode, setViewMode] = useState<"grid" | "list">("grid");
const [offset, setOffset] = useState(0);
const [allVideos, setAllVideos] = useState<Video[]>([]);
const [selectedVideo, setSelectedVideo] = useState<Video | null>(null);
const [isVideoModalOpen, setIsVideoModalOpen] = useState(false);
// Check for shared video in URL and open modal when videos are loaded
useEffect(() => {
const urlParams = new URLSearchParams(window.location.search);
const videoId = urlParams.get('video');
if (videoId && allVideos.length > 0) {
const sharedVideo = allVideos.find(v => v.id === videoId);
if (sharedVideo) {
setSelectedVideo(sharedVideo);
setIsVideoModalOpen(true);
// Clean up URL after opening modal
window.history.replaceState({}, '', window.location.pathname);
}
}
}, [allVideos]);
// Fetch videos
const { data: videosResponse, isLoading, refetch } = useQuery<VideosResponse>({
@@ -86,11 +68,6 @@ export default function Home() {
refetch();
}, [searchQuery, offset, refetch]);
const handleCloseModal = () => {
setIsVideoModalOpen(false);
setSelectedVideo(null);
};
return (
<div className="min-h-screen bg-bunny-dark">
<SearchHeader
@@ -109,15 +86,6 @@ export default function Home() {
/>
</main>
{/* Shared video modal - handles deep links */}
{selectedVideo && isVideoModalOpen && (
<VideoModal
video={selectedVideo}
isOpen={isVideoModalOpen}
onClose={handleCloseModal}
/>
)}
{/* Footer */}
<footer className="bg-bunny-gray/50 border-t border-gray-700 mt-16">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">