From 5b734aa14b5e2e6566fe948c5665c51e353fed74 Mon Sep 17 00:00:00 2001 From: admin-valentin Date: Sat, 1 Aug 2026 20:25:07 +0000 Subject: [PATCH] fix(ceo-web): correct imports in LegislationPage (session-provider + apiFetch pattern) --- src/app/dashboard/legislation/page.tsx | 100 +++++++++---------------- 1 file changed, 35 insertions(+), 65 deletions(-) diff --git a/src/app/dashboard/legislation/page.tsx b/src/app/dashboard/legislation/page.tsx index 6a223d8..c2fd7d2 100644 --- a/src/app/dashboard/legislation/page.tsx +++ b/src/app/dashboard/legislation/page.tsx @@ -1,26 +1,22 @@ 'use client'; import { useState } from 'react'; -import { useSession } from '../../../lib/session'; +import { useQuery } from '@tanstack/react-query'; import { apiFetch } from '../../../lib/api'; +import { useSession } from '../../../components/session-provider'; interface LegResult { country?: string; section?: string; text?: string; source_id?: string; - [key: string]: unknown; -} - -interface ApiSearchResponse { - scenario?: string; - country_filter?: string; - results?: LegResult[]; } type Mode = 'search' | 'ask'; export default function LegislationPage() { - const { session } = useSession(); + const { activeTenant } = useSession(); + const tenantId = activeTenant?.tenantId ?? null; + const [mode, setMode] = useState('ask'); const [input, setInput] = useState(''); const [country, setCountry] = useState('DE'); @@ -32,32 +28,29 @@ export default function LegislationPage() { async function handleSubmit(e: React.FormEvent) { e.preventDefault(); - if (!input.trim() || !session) return; + if (!input.trim()) return; setLoading(true); setError(null); setResults([]); setAiAnswer(null); try { - const headers = { - Authorization: `Bearer ${session.access_token}`, - 'x-tenant-id': session.tenant_id, - 'Content-Type': 'application/json', - }; - if (mode === 'search') { - const data: ApiSearchResponse = await apiFetch('/v1/external/legislation/search', { - method: 'POST', headers, - body: JSON.stringify({ scenario: input.trim(), country, topK: 10 }), + const data = await apiFetch<{ results?: LegResult[] }>('/v1/external/legislation/search', { + method: 'POST', + body: { scenario: input.trim(), country, topK: 10 }, + tenantId, }); setResults(data.results ?? []); } else { - const data = await apiFetch('/v1/external/legislation/ask', { - method: 'POST', headers, - body: JSON.stringify({ + const data = await apiFetch<{ textResponse?: string; response?: string }>('/v1/external/legislation/ask', { + method: 'POST', + body: { message: `${input.trim()} (context juridic: ${country})`, - sessionId: 'ceo-legislation-' + Date.now(), - }), - }) as Record; - const text = (data?.textResponse ?? data?.response ?? data?.message ?? '') as string; - setAiAnswer(text); + country, + type: 'general', + sessionId: `ceo-legislation-${Date.now()}`, + }, + tenantId, + }); + setAiAnswer(data?.textResponse ?? data?.response ?? ''); } setSearched(true); } catch { @@ -79,7 +72,6 @@ export default function LegislationPage() {

- {/* Mode toggle */}
{(['ask', 'search'] as Mode[]).map((m) => ( ))}
@@ -100,72 +92,52 @@ export default function LegislationPage() { ? 'ex: Am o firmă GmbH în Germania și vreau să angajez remote din România. Ce obligații legale am?' : 'Descrie situația ta complet pentru a obține secțiunile de lege relevante...' } - className="w-full rounded-lg border bg-background px-4 py-3 text-sm - focus:outline-none focus:ring-2 focus:ring-ring resize-none" + className="w-full rounded-lg border bg-background px-4 py-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring resize-none" />
{error && ( -
+
{error}
)} - {/* AI Answer */} {aiAnswer && (
-
- 🤖 - Răspuns agent legislație -
-
- {aiAnswer} -
+

Răspuns agent legislație

+
{aiAnswer}

Generat de agentul AnythingLLM · Nu constituie consultanță juridică

)} - {/* Vector search results */} {results.length > 0 && (
-

- {results.length} secțiuni relevante găsite -

+

{results.length} secțiuni relevante găsite

{results.map((r, i) => (
{r.country && ( - - {r.country} - - )} - {r.section && ( - {r.section} + {r.country} )} + {r.section && {r.section}}
- {r.text && ( -

- {r.text} -

- )} + {r.text &&

{r.text}

}

{r.source_id}

))} @@ -173,10 +145,8 @@ export default function LegislationPage() { )} {searched && !loading && results.length === 0 && !aiAnswer && !error && ( -

- Niciun rezultat pentru scenariul introdus. -

+

Niciun rezultat pentru scenariul introdus.

)}
); -} +} \ No newline at end of file