import React, { useEffect, useState } from 'react'; import { AuthProvider, AuthGuard, useAuth } from './AdminAuth'; import AdminLayout from './AdminLayout'; interface Feed { id: string; name: string; enabled: boolean; status: string; product_count: number; last_sync: string | null; error_message?: string; } function StatusBadge({ status }: { status: string }) { const styles: Record = { active: 'bg-[#00FF6A]/10 text-[#00FF6A]', error: 'bg-[#FF3B3B]/10 text-[#FF3B3B]', paused: 'bg-[#666]/10 text-[#666]', syncing: 'bg-[#FFD700]/10 text-[#FFD700]', }; return ( {status === 'active' ? 'Active' : status === 'error' ? 'Error' : status === 'paused' ? 'Paused' : 'Syncing'} ); } function FeedManagerContent() { const { token } = useAuth(); const [feeds, setFeeds] = useState([]); useEffect(() => { // Mock feeds for now - replace with API call when feeds table exists setFeeds([ { id: '1', name: 'Footlocker NL', enabled: true, status: 'active', product_count: 1204, last_sync: '2 uur geleden' }, { id: '2', name: 'JD Sports', enabled: true, status: 'active', product_count: 2341, last_sync: '1 uur geleden' }, { id: '3', name: 'Zalando NL', enabled: true, status: 'error', product_count: 892, last_sync: '6 uur geleden', error_message: 'Feed URL timeout' }, { id: '4', name: 'Sneakerstad', enabled: false, status: 'paused', product_count: 456, last_sync: '3 dagen geleden' }, { id: '5', name: 'TradeTracker', enabled: true, status: 'active', product_count: 3102, last_sync: '30 min geleden' }, ]); }, []); const toggleFeed = (id: string) => { setFeeds(prev => prev.map(f => f.id === id ? { ...f, enabled: !f.enabled, status: f.enabled ? 'paused' : 'active' } : f)); }; const syncFeed = (id: string) => { setFeeds(prev => prev.map(f => f.id === id ? { ...f, status: 'syncing' } : f)); setTimeout(() => { setFeeds(prev => prev.map(f => f.id === id ? { ...f, status: 'active', last_sync: 'Zojuist' } : f)); }, 2000); }; return (
{feeds.map(feed => ( ))}
Name Status Products Last Sync Actions
{feed.name} {feed.product_count.toLocaleString()} {feed.last_sync}
); } export default function FeedManagerPage() { return ; }