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
- Se establece el título de la página con
useTitle. - El componente renderiza el formulario
PostFormy le pasa la funciónactionCreatePost. -
Al enviar el formulario, se ejecuta
actionCreatePost: -
Realiza la petición
createPost({ token, body }). - Si es exitoso, muestra un mensaje y redirige.
-
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".
- Si la imagen fue rechazada, marca el campo
-
Para otros errores, se muestra un mensaje genérico.
Manejo de errores
- Se usa
setErrordereact-hook-formpara 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-form→setErrorenPostFormzustand→useAuthStorepara token-
Funciones auxiliares:
-
showAlert(toast) getToxicityTags(traducción de etiquetas)