From c6264db47e9c7cdf5ecd3f8dd18c8c82db34a306 Mon Sep 17 00:00:00 2001 From: franco sanchez Date: Tue, 19 Sep 2023 12:15:22 -0300 Subject: [PATCH] chore: enhancing NewBook.tsx functions --- src/components/forms/NewBook.tsx | 42 +++--- src/data/links.ts | 245 +++++++------------------------ 2 files changed, 75 insertions(+), 212 deletions(-) diff --git a/src/components/forms/NewBook.tsx b/src/components/forms/NewBook.tsx index db3cfef..927b2b4 100644 --- a/src/components/forms/NewBook.tsx +++ b/src/components/forms/NewBook.tsx @@ -113,20 +113,19 @@ export function FormNewBook() { } } + function handleFieldChange(fieldName, newValue) { + setBooks((books) => ({ + ...books, + [fieldName]: newValue, + })); + } + useEffect(() => { // Genera el pathUrl basado en el título cada vez que se actualiza const generatedPathUrl = generatePathUrl(books.title); setBooks((books) => ({ ...books, pathUrl: generatedPathUrl })); }, [books.title]); - function handleFormatChange(format) { - setBooks((books) => ({ ...books, format })); - } - - function handleLanguageChange(language) { - setBooks((books) => ({ ...books, language })); - } - const fileInputRef = useRef(null); function handleButtonClick() { @@ -363,6 +362,9 @@ export function FormNewBook() { + {/* {errors.image?.url && ( + + {errors.image?.url.message} + + )} */} { - return ( - value.length === 4 || 'Año debe tener 4 caracteres' - ); - }, + min: { + value: 1800, + message: 'Año no valido', + }, + max: { + value: 2050, + message: 'Año no valido', }, })} id='año' @@ -567,7 +575,7 @@ export function FormNewBook() { size={{ base: 'md', md: 'lg' }} variant='filled' onChange={(selectedOption) => - handleFormatChange(selectedOption?.value) + handleFieldChange('format', selectedOption?.value) } options={sortedFormat} noOptionsMessage={({ inputValue }) => diff --git a/src/data/links.ts b/src/data/links.ts index c927fe8..3b4d9d3 100644 --- a/src/data/links.ts +++ b/src/data/links.ts @@ -5,32 +5,14 @@ import { AiOutlineCloudUpload } from 'react-icons/ai'; import { LinkType, SelectBooksType } from '../components/types'; const navLink: Array = [ - { - name: 'Inicio', - href: '/', - icon: FiHome, - }, - { - name: 'Explorar', - href: 'explore', - icon: MdOutlineExplore, - }, - { - name: 'Publicar', - href: 'new-post', - icon: AiOutlineCloudUpload, - }, + { name: 'Inicio', href: '/', icon: FiHome }, + { name: 'Explorar', href: 'explore', icon: MdOutlineExplore }, + { name: 'Publicar', href: 'new-post', icon: AiOutlineCloudUpload }, ]; const accountLinks: Array = [ - { - name: 'Ingresar', - href: 'login', - }, - { - name: 'Crear cuenta', - href: 'register', - }, + { name: 'Ingresar', href: 'login' }, + { name: 'Crear cuenta', href: 'register' }, ]; const languages: Array = [ @@ -87,181 +69,54 @@ const languages: Array = [ ]; const categories: Array = [ - { - value: 'Aventura', - label: 'Aventura', - }, - { - value: 'Ciencia Ficción', - label: 'Ciencia Ficción', - }, - { - value: 'Clásicos', - label: 'Clásicos', - }, - { - value: 'Terror', - label: 'Terror', - }, - { - value: 'Suspenso', - label: 'Suspenso', - }, - { - value: 'Economía', - label: 'Economía', - }, - { - value: 'Romance', - label: 'Romance', - }, - { - value: 'Fantasía', - label: 'Fantasía', - }, - { - value: 'Filosofía', - label: 'Filosofía', - }, - { - value: 'Poesía', - label: 'Poesía', - }, - { - value: 'Politica', - label: 'Politica', - }, - { - value: 'Psicoterapia', - label: 'Psicoterapia', - }, - { - value: 'Medicina', - label: 'Medicina', - }, - { - value: 'Policiales', - label: 'Policiales', - }, - { - value: 'Ciencia', - label: 'Ciencia', - }, - { - value: 'Programación', - label: 'Programación', - }, - { - value: 'Tecnología', - label: 'Tecnología', - }, - { - value: 'Física', - label: 'Física', - }, - { - value: 'Ingenierías', - label: 'Ingenierías', - }, - { - value: 'Cómics', - label: 'Cómics', - }, - { - value: 'Cocina', - label: 'Cocina', - }, - { - value: 'Bebidas', - label: 'Bebidas', - }, - { - value: 'Literatura', - label: 'Literatura', - }, - { - value: 'Literatura Infantil', - label: 'Literatura Infantil', - }, - { - value: 'Deportes', - label: 'Deportes', - }, - { - value: 'Novela Histórica', - label: 'Novela Histórica', - }, - { - value: 'Novela', - label: 'Novela', - }, - { - value: 'Música', - label: 'Música', - }, - { - value: 'Historia', - label: 'Historia', - }, - { - value: 'Misterio', - label: 'Misterio', - }, - { - value: 'Thriller', - label: 'Thriller', - }, - { - value: 'Adulto', - label: 'Adulto', - }, - { - value: 'Ficción', - label: 'Ficción', - }, - { - value: 'No Ficción', - label: 'No Ficción', - }, - { - value: 'Prehistoria', - label: 'Prehistoria', - }, - { - value: 'Enciclopedias', - label: 'Enciclopedias', - }, - { - value: 'Ficción Histórica', - label: 'Ficción Histórica', - }, - { - value: 'Histórico', - label: 'Histórico', - }, - { - value: 'Humor', - label: 'Humor', - }, - { - value: 'Horror', - label: 'Horror', - }, + { value: 'Aventura', label: 'Aventura' }, + { value: 'Ciencia Ficción', label: 'Ciencia Ficción' }, + { value: 'Clásicos', label: 'Clásicos' }, + { value: 'Terror', label: 'Terror' }, + { value: 'Suspenso', label: 'Suspenso' }, + { value: 'Economía', label: 'Economía' }, + { value: 'Romance', label: 'Romance' }, + { value: 'Fantasía', label: 'Fantasía' }, + { value: 'Filosofía', label: 'Filosofía' }, + { value: 'Poesía', label: 'Poesía' }, + { value: 'Politica', label: 'Politica' }, + { value: 'Psicoterapia', label: 'Psicoterapia' }, + { value: 'Medicina', label: 'Medicina' }, + { value: 'Policiales', label: 'Policiales' }, + { value: 'Ciencia', label: 'Ciencia' }, + { value: 'Programación', label: 'Programación' }, + { value: 'Informática', label: 'Informática' }, + { value: 'Desarrollo De Software', label: 'Desarrollo De Software' }, + { value: 'Tecnología', label: 'Tecnología' }, + { value: 'Física', label: 'Física' }, + { value: 'Ingenierías', label: 'Ingenierías' }, + { value: 'Cómics', label: 'Cómics' }, + { value: 'Cocina', label: 'Cocina' }, + { value: 'Bebidas', label: 'Bebidas' }, + { value: 'Literatura', label: 'Literatura' }, + { value: 'Literatura Infantil', label: 'Literatura Infantil' }, + { value: 'Deportes', label: 'Deportes' }, + { value: 'Novela Histórica', label: 'Novela Histórica' }, + { value: 'Novela', label: 'Novela' }, + { value: 'Música', label: 'Música' }, + { value: 'Historia', label: 'Historia' }, + { value: 'Misterio', label: 'Misterio' }, + { value: 'Thriller', label: 'Thriller' }, + { value: 'Adulto', label: 'Adulto' }, + { value: 'Ficción', label: 'Ficción' }, + { value: 'No Ficción', label: 'No Ficción' }, + { value: 'Prehistoria', label: 'Prehistoria' }, + { value: 'Enciclopedias', label: 'Enciclopedias' }, + { value: 'Ficción Histórica', label: 'Ficción Histórica' }, + { value: 'Histórico', label: 'Histórico' }, + { value: 'Humor', label: 'Humor' }, + { value: 'Horror', label: 'Horror' }, ]; const format: Array = [ - { - value: 'Físico', - label: 'Físico', - }, - { - value: 'Electrónico', - label: 'Electrónico', - }, - { - value: 'AudioLibro', - label: 'AudioLibro', - }, + { value: 'Físico', label: 'Físico' }, + { value: 'Electrónico', label: 'Electrónico' }, + { value: 'AudioLibro', label: 'AudioLibro' }, ]; export { navLink, accountLinks, languages, categories, format };