Restored to '4297267681097f3ff53d34610ef0e8e98baf8e0e'
Replit-Restored-To: 4297267681
This commit is contained in:
@@ -20,42 +20,17 @@ export default function FolxStadlPage() {
|
||||
const itemsPerPage = 10;
|
||||
|
||||
const { data, isLoading } = useQuery<{videos: Video[], total: number}>({
|
||||
queryKey: ['/api/videos', { limit: 200 }],
|
||||
queryFn: async ({ queryKey }) => {
|
||||
const [, params] = queryKey as [string, any];
|
||||
const searchParams = new URLSearchParams();
|
||||
|
||||
Object.entries(params).forEach(([key, value]) => {
|
||||
if (value !== undefined) {
|
||||
searchParams.append(key, String(value));
|
||||
}
|
||||
});
|
||||
|
||||
const response = await fetch(`/api/videos?${searchParams}`);
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch videos');
|
||||
}
|
||||
return response.json();
|
||||
},
|
||||
queryKey: ['/api/videos?limit=200'],
|
||||
select: (response) => response || { videos: [], total: 0 }
|
||||
});
|
||||
|
||||
const videos = data?.videos || [];
|
||||
|
||||
// Filter all FOLX STADL videos (including all seasons and formats)
|
||||
let folxStadlVideos = videos.filter(video =>
|
||||
const folxStadlVideos = videos.filter(video =>
|
||||
video.title.includes("FOLX STADL") || video.title.includes("FOLXSTADL")
|
||||
);
|
||||
|
||||
// Apply search filter if search query exists
|
||||
if (searchQuery && searchQuery.length >= 2) {
|
||||
const searchLower = searchQuery.toLowerCase();
|
||||
folxStadlVideos = folxStadlVideos.filter(video =>
|
||||
video.title.toLowerCase().includes(searchLower) ||
|
||||
video.description?.toLowerCase().includes(searchLower)
|
||||
);
|
||||
}
|
||||
|
||||
// Pagination logic
|
||||
const totalPages = Math.ceil(folxStadlVideos.length / itemsPerPage);
|
||||
const startIndex = (currentPage - 1) * itemsPerPage;
|
||||
@@ -116,9 +91,7 @@ export default function FolxStadlPage() {
|
||||
value={searchQuery}
|
||||
onChange={(e) => {
|
||||
setSearchQuery(e.target.value);
|
||||
if (e.target.value) {
|
||||
setLocation(`/?search=${encodeURIComponent(e.target.value)}`);
|
||||
}
|
||||
if (e.target.value) setLocation(`/?search=${encodeURIComponent(e.target.value)}`);
|
||||
}}
|
||||
className="bg-white border border-gray-300 rounded-lg px-4 py-2 pl-10 text-sm text-gray-900 placeholder-gray-500 focus:outline-none focus:border-bunny-blue transition-colors w-64"
|
||||
/>
|
||||
@@ -170,12 +143,7 @@ export default function FolxStadlPage() {
|
||||
type="search"
|
||||
placeholder="Search..."
|
||||
value={searchQuery}
|
||||
onChange={(e) => {
|
||||
setSearchQuery(e.target.value);
|
||||
if (e.target.value) {
|
||||
setLocation(`/?search=${encodeURIComponent(e.target.value)}`);
|
||||
}
|
||||
}}
|
||||
onChange={(e) => setSearchQuery(e.target.value)}
|
||||
className="bg-white border border-gray-300 rounded-lg px-3 py-2 pl-9 text-sm text-gray-900 placeholder-gray-500 focus:outline-none focus:border-bunny-blue transition-colors w-full"
|
||||
/>
|
||||
<Search className="absolute left-2.5 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4" />
|
||||
|
||||
@@ -76,8 +76,8 @@ export default function Home() {
|
||||
return (
|
||||
<div className="has-fixed-header" style={{minHeight: '100vh', background: 'linear-gradient(135deg, hsl(250, 50%, 15%) 0%, hsl(240, 30%, 25%) 100%)', color: 'white'}}>
|
||||
{/* STICKY HEADER */}
|
||||
<div className="header-sticky bg-transparent overflow-visible">
|
||||
<div className="max-w-6xl mx-auto pl-4 pr-4 py-4">
|
||||
<div className="header-sticky bg-transparent overflow-hidden">
|
||||
<div className="max-w-7xl mx-auto px-4 py-4">
|
||||
<div className="flex items-center justify-between">
|
||||
{/* Left side - Logo */}
|
||||
<div className="flex items-center space-x-4">
|
||||
@@ -168,11 +168,11 @@ export default function Home() {
|
||||
)}
|
||||
</div>
|
||||
|
||||
<main className="max-w-6xl mx-auto pt-4 pb-8 relative px-8">
|
||||
<main className="w-full pt-0 pb-8 relative">
|
||||
|
||||
{/* Trikotniki na robovih - dvignjeni višje */}
|
||||
<div className="absolute top-2 right-2 w-0 h-0 border-l-[70px] border-l-transparent border-r-[70px] border-r-transparent border-b-[100px] border-b-blue-400/8 rotate-12 z-0"></div>
|
||||
<div className="absolute top-20 left-2 w-0 h-0 border-l-[60px] border-l-transparent border-r-[60px] border-r-transparent border-b-[85px] border-b-purple-400/8 -rotate-12 z-0"></div>
|
||||
{/* Trikotniki na robovih - ne prekrivajo video kartic */}
|
||||
<div className="absolute top-10 right-2 w-0 h-0 border-l-[70px] border-l-transparent border-r-[70px] border-r-transparent border-b-[100px] border-b-blue-400/8 rotate-12 z-0"></div>
|
||||
<div className="absolute top-1/2 left-2 w-0 h-0 border-l-[60px] border-l-transparent border-r-[60px] border-r-transparent border-b-[85px] border-b-purple-400/8 -rotate-12 z-0"></div>
|
||||
<div className="absolute bottom-1/4 right-2 w-0 h-0 border-l-[50px] border-l-transparent border-r-[50px] border-r-transparent border-b-[70px] border-b-cyan-400/8 rotate-45 z-0"></div>
|
||||
{viewMode === "grid" ? (
|
||||
<NetflixGrid
|
||||
|
||||
Reference in New Issue
Block a user