Files
recipe-app/frontend/app/admin/ai/page.tsx
T

40 lines
1.4 KiB
TypeScript

import { redirect } from 'next/navigation';
import { auth } from '../../../auth';
import Navigation from '../../Navigation';
import AiAdminClient from './AiAdminClient';
import type { AiModelInfo } from './AiAdminClient';
const API_BASE = process.env.NEXT_PUBLIC_API_URL_INTERNAL || 'http://recipe-api:8080';
export default async function AiAdminPage() {
const session = await auth();
if ((session?.user as any)?.role !== 'admin') {
redirect('/');
}
const key = process.env.MISTRAL_API_KEY ?? '';
const hasKey = key.length > 0;
const keyHint = key.length >= 4 ? key.slice(-4) : '????';
let aiFunctions: AiModelInfo[] = [];
try {
const res = await fetch(`${API_BASE}/api/ai/models`, { cache: 'no-store' });
if (res.ok) aiFunctions = await res.json();
} catch {
// backend ej nåbart — visa tom lista
}
return (
<>
<Navigation />
<main style={{ maxWidth: '900px', margin: '0 auto', padding: '0 1rem 2rem' }}>
<h1 style={{ fontSize: '1.4rem', marginBottom: '0.25rem' }}>🤖 AI-konfiguration</h1>
<p style={{ color: '#666', marginBottom: '2rem', fontSize: '0.9rem' }}>
Översikt över implementerade AI-funktioner och API-nyckelstatus.
</p>
<AiAdminClient keyHint={keyHint} hasKey={hasKey} aiFunctions={aiFunctions} />
</main>
</>
);
}