---
import { localizedPath } from '@/i18n/utils';
import AdminLayout from '@/layouts/AdminLayout.astro';
import AdminEmailsPage from '@/components/admin/pages/AdminEmailsPage.astro';
import { requireAdmin, adminRedirectPath } from '@/lib/auth/admin';
import { addAdminEmail } from '@/lib/admin/admin-email-actions';
import { getPageLocale } from '@/lib/pages';

export const prerender = false;

const lang = getPageLocale(Astro.currentLocale);

const guard = requireAdmin(Astro.locals);
if (guard.status !== 'ok') {
  return Astro.redirect(adminRedirectPath(guard, lang, Astro.url.pathname));
}

let error: string | null = null;

if (Astro.request.method === 'POST') {
  const formData = await Astro.request.formData();
  const action = String(formData.get('action') ?? '');
  if (action === 'add') {
    const result = await addAdminEmail(formData, lang);
    if (result.ok) {
      return Astro.redirect(`${localizedPath(lang, 'admin/admins')}?success=created`);
    }
    error = result.error;
  }
}

const title = lang === 'ar' ? 'صلاحيات الدخول' : 'Access';
---

<AdminLayout locale={lang} title={title} user={guard.user}>
  <AdminEmailsPage lang={lang} error={error} />
</AdminLayout>
