# Frontend NovaWoW (islas React/TSX con Vite)

Migración incremental de las plantillas HTML de Django a componentes React/TSX,
montados como **islas** sobre las páginas que sigue sirviendo Django. Los datos se
obtienen de endpoints JSON bajo `/api/` (ver `home/api_urls.py`).

## Estructura
- `src/entries/*.tsx` — puntos de entrada de Vite; cada uno monta una isla en un
  contenedor que deja la plantilla Django (p. ej. `#home-news-app`).
- `src/components/*.tsx` — componentes React.
- `vite.config.ts` — build a `../static/dist` con manifest (base `/static/dist/`).

La plantilla carga la isla con `{% load django_vite %}` + `{% vite_asset 'src/entries/xxx.tsx' %}`.

## Desarrollo (con HMR)
Requiere `DJANGO_DEBUG=True`. En un terminal:
```
cd frontend && npm install && npm run dev
```
django-vite (dev_mode = DEBUG) inyecta el cliente HMR y sirve desde el dev server.

## Producción (build)
Con `DJANGO_DEBUG=False`, Django sirve el bundle construido vía manifest. Tras
cualquier cambio en `frontend/`:
```
cd /root/NovaWoW/frontend && npm run build     # genera ../static/dist + manifest
cd /root/NovaWoW && .venv/bin/python manage.py collectstatic --noinput
systemctl restart novawow
```

Los artefactos (`node_modules/`, `static/dist/`) están en `.gitignore`: se regeneran
con `npm run build`.
