'use client'; import { useState, useEffect } from 'react'; import { useSearchParams } from 'next/navigation'; import Link from 'next/link'; export default function Mailboxes() { const searchParams = useSearchParams(); const bucket = searchParams.get('bucket'); const [mailboxes, setMailboxes] = useState([]); const [error, setError] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { if (!bucket) { setError('No bucket specified'); setLoading(false); return; } const auth = localStorage.getItem('auth'); if (!auth) { setError('Not authenticated'); setLoading(false); return; } fetch(`/api/mailboxes?bucket=${bucket}`, { headers: { Authorization: `Basic ${auth}` } }) .then(res => { if (!res.ok) throw new Error('Failed to fetch mailboxes'); return res.json(); }) .then(setMailboxes) .catch(err => setError(err.message)) .finally(() => setLoading(false)); }, [bucket]); if (loading) return
Loading...
; if (error) return
{error}
; return (

Mailboxes for {bucket}

    {mailboxes.length === 0 ? (
  • No mailboxes found
  • ) : ( mailboxes.map((m: string) => (
  • {m}
  • )) )}
); }