Integrar recorte y optimización a WebP en las subidas de imagen del panel

Los tres uploaders del panel (logo, "quiénes somos" y galería) ahora abren
un recorte interactivo (zoom + encuadre) y reescalan en el navegador antes
de subir: logo y "quiénes somos" a máx. 500 px, galería a máx. 1200 px,
reencodando a WebP (calidad 0.82). El SVG del logo se sube tal cual para no
rasterizar el vector. Esto reduce el peso de los data URIs base64 que se
guardan en Postgres y se inlinean en el funnel.

Nueva dependencia react-easy-crop: librería de recorte ligera, sin estado
global, compatible con React 19; el reescalado y reencodado se hacen con
canvas nativo (lib/image/crop.ts), sin dependencias extra.
This commit is contained in:
Carlos Narro
2026-06-01 22:36:55 +02:00
parent bf9e72064b
commit e9637f77ff
7 changed files with 302 additions and 14 deletions

View File

@@ -26,6 +26,7 @@
"postgres": "^3.4.9",
"react": "19.2.4",
"react-dom": "19.2.4",
"react-easy-crop": "^5.5.7",
"tailwindcss": "^4.3.0",
"zod": "^4.4.3"
},