diff --git a/client/src/components/Home/LandingPage.tsx b/client/src/components/Home/LandingPage.tsx index 3351444..7b3fdfe 100644 --- a/client/src/components/Home/LandingPage.tsx +++ b/client/src/components/Home/LandingPage.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect, useRef, useCallback } from "react"; +import React, { useState, useEffect } from "react"; import { Upload, Shield, @@ -11,50 +11,13 @@ import { Globe, Sun, Moon, - X, - File, - Menu, } from "lucide-react"; -import { useNavigate, Link } from "react-router-dom"; - -interface UploadedFile { - id: string; - name: string; - size: string; - progress: number; - done: boolean; -} - -const formatSize = (bytes: number): string => { - if (bytes >= 1073741824) return (bytes / 1073741824).toFixed(1) + " GB"; - if (bytes >= 1048576) return (bytes / 1048576).toFixed(1) + " MB"; - if (bytes >= 1024) return (bytes / 1024).toFixed(1) + " KB"; - return bytes + " B"; -}; +import { useNavigate } from "react-router-dom"; const LandingPage: React.FC = () => { const navigate = useNavigate(); const [uploadProgress, setUploadProgress] = useState(0); const [activeFeature, setActiveFeature] = useState(0); - const [isDragging, setIsDragging] = useState(false); - const [uploadedFiles, setUploadedFiles] = useState([]); - const [theme, setTheme] = useState( - document.documentElement.classList.contains("dark") ? "dark" : "light", - ); - const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); - const dragCounter = useRef(0); - const fileInputRef = useRef(null); - - // Close mobile menu on resize to desktop - useEffect(() => { - const handleResize = () => { - if (window.innerWidth >= 1024) { - setIsMobileMenuOpen(false); - } - }; - window.addEventListener("resize", handleResize); - return () => window.removeEventListener("resize", handleResize); - }, []); useEffect(() => { const interval = setInterval(() => { @@ -63,8 +26,14 @@ const LandingPage: React.FC = () => { return () => clearInterval(interval); }, []); + const [theme, setTheme] = useState( + document.documentElement.classList.contains("dark") + ? "dark" : "light" + ); + const toggleTheme = () => { const isDark = document.documentElement.classList.contains("dark"); + if (isDark) { document.documentElement.classList.remove("dark"); localStorage.setItem("theme", "light"); @@ -76,89 +45,6 @@ const LandingPage: React.FC = () => { } }; - const toggleMobileMenu = () => { - setIsMobileMenuOpen(!isMobileMenuOpen); - }; - - const closeMobileMenu = () => { - setIsMobileMenuOpen(false); - }; - - const handleNavClick = ( - e: React.MouseEvent, - id: string, - ) => { - e.preventDefault(); - closeMobileMenu(); - const section = document.getElementById(id); - if (section) { - section.scrollIntoView({ behavior: "smooth" }); - } - }; - - const simulateUpload = (file: File) => { - const id = Math.random().toString(36).slice(2); - const newFile: UploadedFile = { - id, - name: file.name, - size: formatSize(file.size), - progress: 0, - done: false, - }; - setUploadedFiles((prev) => [...prev, newFile]); - - const speed = Math.random() * 15 + 8; - const interval = setInterval(() => { - setUploadedFiles((prev) => - prev.map((f) => { - if (f.id !== id) return f; - const next = Math.min(f.progress + speed, 100); - return { ...f, progress: next, done: next >= 100 }; - }), - ); - }, 300); - - setTimeout(() => clearInterval(interval), 5000); - }; - - const handleFiles = useCallback((files: FileList | null) => { - if (!files) return; - Array.from(files).forEach(simulateUpload); - }, []); - - const handleDragEnter = (e: React.DragEvent) => { - e.preventDefault(); - e.stopPropagation(); - dragCounter.current += 1; - if (e.dataTransfer.items && e.dataTransfer.items.length > 0) { - setIsDragging(true); - } - }; - - const handleDragLeave = (e: React.DragEvent) => { - e.preventDefault(); - e.stopPropagation(); - dragCounter.current -= 1; - if (dragCounter.current === 0) setIsDragging(false); - }; - - const handleDragOver = (e: React.DragEvent) => { - e.preventDefault(); - e.stopPropagation(); - }; - - const handleDrop = (e: React.DragEvent) => { - e.preventDefault(); - e.stopPropagation(); - setIsDragging(false); - dragCounter.current = 0; - handleFiles(e.dataTransfer.files); - }; - - const removeFile = (id: string) => { - setUploadedFiles((prev) => prev.filter((f) => f.id !== id)); - }; - const features = [ { icon: , @@ -239,145 +125,59 @@ const LandingPage: React.FC = () => { return (
- {/* Navigation - FIXED: md se lg breakpoint par change kiya */} -