Commit Graph

2 Commits

Author SHA1 Message Date
Michele
a5d1c15c3a feat(01-04): pagine GenerateCalendar, OutputReview, GenerateSingle complete
- GenerateCalendar.tsx: form con obiettivo+settimane+brand+tono+nicchie
  - Pulsante Genera disabilitato senza API key con banner link a Impostazioni
  - Async submit: mutation ritorna job_id, mostra ProgressIndicator
  - Auto-navigate a /risultati/:jobId quando job completato
- OutputReview.tsx: carica job results via useJobResults(jobId)
  - Griglia PostCard responsive con conteggio success/failed
  - Stato locale per edit inline (aggiornato da PostCard.onEdit)
  - Download CSV via useDownloadEditedCsv (POST con edits) con due pulsanti (header + footer)
- GenerateSingle.tsx: form con tipo PN, livello Schwartz, nicchia, formato narrativo
  - Topic opzionale (altrimenti generato dall'AI)
  - Anteprima risultato con PostCard+SlideViewer e download CSV singolo
2026-03-08 02:29:17 +01:00
Michele
738a877d39 feat(01-04): layout, routing, API hooks, tipi TypeScript, Dashboard, Settings
- types.ts: CalendarSlot, GeneratedPost, PostResult, JobStatus, Settings, SettingsStatus
- api/client.ts: aggiunto apiGet, apiPost, apiPut, apiDownload, triggerDownload
- api/hooks.ts: 10+ hooks TanStack Query (settings, generate, job polling, CSV export)
- components/Layout.tsx + Sidebar.tsx: sidebar stone/amber palette con 4 nav link
- pages/Dashboard.tsx: banner API key, quick actions link, step guide
- pages/Settings.tsx: form completo (API key password, LLM select, brand, nicchie checkbox)
- App.tsx: 5 route con BrowserRouter basename='/postgenerator', QueryClientProvider, Layout
2026-03-08 02:23:55 +01:00