CreatePost

Esta vista representa la página para crear una nueva publicación. Utiliza el formulario PostForm y maneja la lógica de validación posterior al envío con control de errores del servidor.


Descripción general

  • Componentes usados:

  • PostForm: formulario de entrada.

  • useAuthStore: para obtener el token JWT del usuario.
  • useNavigate: para redirigir al usuario tras crear la publicación.
  • createPost: función que realiza la llamada HTTP.
  • showAlert: utilidad para mostrar alertas visuales.
  • getToxicityTags: utilidad que traduce etiquetas de toxicidad a una cadena legible.

Flujo del componente

  1. Se establece el título de la página con useTitle.
  2. El componente renderiza el formulario PostForm y le pasa la función actionCreatePost.
  3. Al enviar el formulario, se ejecuta actionCreatePost:

  4. Realiza la petición createPost({ token, body }).

  5. Si es exitoso, muestra un mensaje y redirige.
  6. Si hay un error 406 (NotAcceptable):

    • Si la imagen fue rechazada, marca el campo "image" con error.
    • Si la descripción fue clasificada como tóxica, se marca el campo "description".
  7. Para otros errores, se muestra un mensaje genérico.


Manejo de errores

  • Se usa setError de react-hook-form para marcar campos manualmente.
  • La lógica diferencia errores de:

  • Imagen rechazada por moderación.

  • Texto tóxico detectado por IA.
  • Errores inesperados o desconocidos.

Dependencias

  • react-router-dom → navegación (useNavigate)
  • react-hook-formsetError en PostForm
  • zustanduseAuthStore para token
  • Funciones auxiliares:

  • showAlert (toast)

  • getToxicityTags (traducción de etiquetas)