import React, { useEffect, useState } from 'react'; import { supabase } from '../../supabaseClient'; // ✅ Accept 'onNavigate' as a prop from the parent export default function UpcomingInterviews({ onNavigate }) { const [interviews, setInterviews] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const fetchInterviews = async () => { try { const { data, error } = await supabase .from('interviews') .select(` id, scheduled_time, status, applications ( profiles ( full_name ) ) `) .gte('scheduled_time', new Date().toISOString()) .order('scheduled_time', { ascending: true }) .limit(3); if (error) throw error; setInterviews(data || []); } catch (error) { console.error('Error fetching interviews:', error); } finally { setLoading(false); } }; fetchInterviews(); }, []); const formatDate = (dateString) => { if (!dateString) return { date: 'N/A', time: '' }; const date = new Date(dateString); return { date: date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' }), time: date.toLocaleTimeString('en-US', { hour: 'numeric', minute: '2-digit' }) }; }; return (

Upcoming Interviews

{loading ? (

Loading...

) : interviews.length === 0 ? (

No upcoming interviews.

) : ( interviews.map((item) => { const { date, time } = formatDate(item.scheduled_time); const name = item.applications?.profiles?.full_name || 'Candidate'; return (
{/* Icon Box */}
{name}
{date} • {time}
); }) )}
{/* ✅ UPDATED BUTTON: Uses onNavigate prop */}
); }