2.8 KiB
2.8 KiB
Frontend Data Consumption Plan
Objective
Definir como evolucionara la landing de HLL Vietnam desde contenido estatico hacia bloques alimentados por el backend sin romper simplicidad, branding ni compatibilidad al abrir frontend/index.html directamente.
Current Frontend Blocks With Future Dynamic Potential
- Hero principal: titulo, resumen y CTA de Discord podran leer
communityydiscord. - Bloque de trailer: podra leer
trailerpara desacoplar video y titulo del HTML. - Estado de servidores: queda reservado para una futura seccion y no debe forzarse en la landing actual.
Recommended Consumption Strategy
- Usar
fetchnativo cuando una task habilite consumo real. - Mantener JavaScript simple en
frontend/assets/js/main.jso dividir en modulos ligeros solo si el numero de bloques dinamicos ya lo justifica. - Centralizar la URL base del backend en una configuracion minima si el frontend deja de ser puramente estatico en un entorno concreto.
- No llamar a servicios externos desde el navegador; el frontend debe hablar con el backend Python.
UI State Rules
Loading
- No bloquear el render inicial de la landing.
- Mostrar skeletons o placeholders ligeros solo en bloques futuros que ya dependan del backend.
Error
- Si falla una llamada, conservar el contenido estatico existente o un mensaje tactico breve y no intrusivo.
- Registrar el error en consola durante desarrollo sin degradar toda la pagina.
Empty state
- Si
servers.itemsllega vacio, mostrar un estado neutral de "informacion disponible mas adelante". - Si un bloque opcional no tiene datos, ocultarlo o dejar un placeholder discreto en lugar de mostrar errores tecnicos.
Fallback
- Mantener el Discord CTA hardcoded hasta que
/api/discordsea estable. - Mantener el iframe del trailer fijo hasta validar
/api/trailer. - No hacer depender el hero de
/health.
Endpoint Priority
/api/community/api/trailer/api/discord/api/servers/healthsolo para checks tecnicos o diagnostico en desarrollo
Progressive Migration Path
Step 1
- Introducir una capa minima de lectura para
communityytrailer. - Reutilizar el HTML actual como fallback.
Step 2
- Sustituir el CTA de Discord por datos de
/api/discordcuando el placeholder backend sea estable. - Mantener la URL actual como respaldo local.
Step 3
- Anadir una seccion de servidores solo cuando exista diseno, contrato y placeholder suficientemente claros.
- Evitar reservar complejidad en la landing antes de que ese bloque aporte valor real.
Explicitly Out Of Scope Now
- Implementar
fetchreal. - Cambiar el comportamiento visible de la landing.
- Introducir librerias de estado o frameworks frontend.
- Conectar el navegador directamente con Discord o con APIs de servidores.