diff --git a/.eslintrc b/.eslintrc index 2b28351..e833453 100644 --- a/.eslintrc +++ b/.eslintrc @@ -30,6 +30,9 @@ "no-underscore-dangle": "off", "no-bitwise": "off", "prettier/prettier": "error", + "no-restricted-syntax": "off", + "consistent-return": "off", + "react/jsx-one-expression-per-line": "off", "react/no-unknown-property": [2, { "ignore": ["class", "for"] }], "react/jsx-filename-extension": [1, { "extensions": [".tsx"] }], "no-use-before-define": "off", diff --git a/package-lock.json b/package-lock.json index 6701cbc..0933b17 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,8 @@ "tailwindcss": "^3.2.4", "ts-jest": "^26.5.4", "typescript": "^4.9.3", - "vite": "^4.0.0" + "vite": "^4.0.0", + "vite-tsconfig-paths": "^4.2.0" } }, "node_modules/@ampproject/remapping": { @@ -7125,6 +7126,12 @@ "node": ">=8" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -16726,6 +16733,26 @@ "node": ">=10" } }, + "node_modules/tsconfck": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.1.tgz", + "integrity": "sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww==", + "dev": true, + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^14.13.1 || ^16 || >=18" + }, + "peerDependencies": { + "typescript": "^4.3.5 || ^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -17185,6 +17212,25 @@ } } }, + "node_modules/vite-tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^2.1.0" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -22573,6 +22619,12 @@ } } }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -29534,6 +29586,13 @@ } } }, + "tsconfck": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-2.1.1.tgz", + "integrity": "sha512-ZPCkJBKASZBmBUNqGHmRhdhM8pJYDdOXp4nRgj/O0JwUwsMq50lCDRQP/M5GBNAA0elPrq4gAeu4dkaVCuKWww==", + "dev": true, + "requires": {} + }, "tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -29843,6 +29902,17 @@ "rollup": "^3.7.0" } }, + "vite-tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-jGpus0eUy5qbbMVGiTxCL1iB9ZGN6Bd37VGLJU39kTDD6ZfULTTb1bcc5IeTWqWJKiWV5YihCaibeASPiGi8kw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^2.1.0" + } + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", diff --git a/package.json b/package.json index 91ed7f6..ed1d62b 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,8 @@ "tailwindcss": "^3.2.4", "ts-jest": "^26.5.4", "typescript": "^4.9.3", - "vite": "^4.0.0" + "vite": "^4.0.0", + "vite-tsconfig-paths": "^4.2.0" }, "baseUrl": "./node_modules/@types", "typeRoots": [ diff --git a/src/App.tsx b/src/App.tsx index bbc9b44..3931486 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,10 @@ import React from 'react'; +import Modal from 'react-modal'; import { RouterProvider } from 'react-router-dom'; -import router from './routes/route_app'; +import router from '@routes/route_app'; + +Modal.setAppElement('#root'); const App = () => { return ; diff --git a/src/components/Anchor/Anchor.tsx b/src/components/Anchor/Anchor.tsx index 19f7dc8..f9b6b6a 100644 --- a/src/components/Anchor/Anchor.tsx +++ b/src/components/Anchor/Anchor.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { IAnchor } from '../../interfaces/anchor'; +import { IAnchor } from '@interfaces/anchor'; export const Anchor = ({ children, url }: IAnchor) => { return ( diff --git a/src/components/CardDetails/CardDetails.tsx b/src/components/CardDetails/CardDetails.tsx index 7a520c5..8066a12 100644 --- a/src/components/CardDetails/CardDetails.tsx +++ b/src/components/CardDetails/CardDetails.tsx @@ -1,26 +1,33 @@ -/* eslint-disable prettier/prettier */ import React from 'react'; import { AiOutlineColumnHeight } from 'react-icons/ai'; import { CgPokemon } from 'react-icons/cg'; import { FaWeightHanging } from 'react-icons/fa'; import { ImStatsBars } from 'react-icons/im'; -import { ICardDatails } from '../../interfaces/cardDatails'; -import { getNumberOrderFormat } from '../../utils/getNumberOrderFormat'; -import { getTypesToBackgroundColor, getTypesToIconsTypes } from '../../utils/getTheme'; -import { TypeCard } from '../TypeCard'; +import { TypeCard } from '@components/TypeCard'; +import { ICardDatails } from '@interfaces/cardDatails'; +import { formatHeightWeight } from '@utils/formatHeightWeight'; +import { getNumberOrderFormat } from '@utils/getNumberOrderFormat'; +import { + getTypesToBackgroundColor, + getTypesToIconsTypes, +} from '@utils/getTheme'; -const formatHeightWeight = (value: number) => { - const format = value / 10; - return format; -} - -export const CardDetails = ({ id, name, img, types, weight, height, abilities, stats }: ICardDatails) => { +export const CardDetails = ({ + id, + name, + img, + types, + weight, + height, + abilities, + stats, +}: ICardDatails) => { return (
{name} - {getNumberOrderFormat(id!)} + + {getNumberOrderFormat(id!)} +
{types?.map((type, index) => { return ( -
+
); @@ -55,7 +68,7 @@ export const CardDetails = ({ id, name, img, types, weight, height, abilities, s
-

+

Peso:

@@ -68,22 +81,18 @@ export const CardDetails = ({ id, name, img, types, weight, height, abilities, s
-

+

Altura:

- - {formatHeightWeight(height)} - m - + {formatHeightWeight(height)}m
-
-

+

Abilities

@@ -93,7 +102,9 @@ export const CardDetails = ({ id, name, img, types, weight, height, abilities, s return (
- {ability.ability.name} + + {ability.ability.name} +
); @@ -114,7 +125,7 @@ export const CardDetails = ({ id, name, img, types, weight, height, abilities, s {/* */} {stats.base_stat}
- ) + ); })}
diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx index 48ff240..d3f7c7d 100644 --- a/src/components/Footer/Footer.tsx +++ b/src/components/Footer/Footer.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import Logo from '../../assets/logo/pokemon-logo.svg'; -import { SocialMedia } from '../SocialMedia/SocialMedia'; +import Logo from '@assets/logo/pokemon-logo.svg'; +import { SocialMedia } from '@components/SocialMedia/SocialMedia'; export const Footer: React.FC = () => { return ( diff --git a/src/components/Header/index.tsx b/src/components/Header/index.tsx index 093cf33..44e7243 100644 --- a/src/components/Header/index.tsx +++ b/src/components/Header/index.tsx @@ -1,12 +1,10 @@ -/* eslint-disable no-restricted-syntax */ import React from 'react'; import { Link } from 'react-router-dom'; +import Pikachu from '@assets/img/pikachu-2.png'; +import Logo from '@assets/logo/logo.png'; import { ArrowLeft } from 'phosphor-react'; -import Pikachu from '../../assets/img/pikachu-2.png'; -import Logo from '../../assets/logo/logo.png'; - export const Header = () => { return (
diff --git a/src/components/InputSearch/InputSearch.tsx b/src/components/InputSearch/InputSearch.tsx index 143d43c..6009cbd 100644 --- a/src/components/InputSearch/InputSearch.tsx +++ b/src/components/InputSearch/InputSearch.tsx @@ -1,9 +1,8 @@ import React from 'react'; +import { ISearch } from '@interfaces/search'; import { MagnifyingGlass } from 'phosphor-react'; -import { ISearch } from '../../interfaces/search'; - export const InputSearch = ({ getFilterPokemon }: ISearch) => { return (
diff --git a/src/components/ListPokemon/index.tsx b/src/components/ListPokemon/index.tsx index 629f53c..989d116 100644 --- a/src/components/ListPokemon/index.tsx +++ b/src/components/ListPokemon/index.tsx @@ -1,12 +1,12 @@ import React from 'react'; -import { usePagination } from '../../hooks/usePagination'; -import { useGetPokemonsData } from '../../hooks/usePokemons'; -import { ListProps } from '../../interfaces/list'; -import { IPokemons } from '../../interfaces/pokemons'; -import { Loading } from '../Loading/Loading'; -import { PokemonCard } from '../PokemonCard'; -import { ShowMoreButton } from '../ShowMoreButton/ShowMoreButton'; +import { Loading } from '@components/Loading/Loading'; +import { PokemonCard } from '@components/PokemonCard'; +import { ShowMoreButton } from '@components/ShowMoreButton/ShowMoreButton'; +import { usePagination } from '@hooks/usePagination'; +import { useGetPokemonsData } from '@hooks/usePokemons'; +import { ListProps } from '@interfaces/list'; +import { IPokemons } from '@interfaces/pokemons'; export const ListPokemon = ({ data, handleSelectedId }: ListProps) => { const itemsPerPage = 20; diff --git a/src/components/Modal/index.tsx b/src/components/Modal/index.tsx index af6f963..3106315 100644 --- a/src/components/Modal/index.tsx +++ b/src/components/Modal/index.tsx @@ -1,10 +1,9 @@ import React from 'react'; import Modal from 'react-modal'; +import { IModal } from '@interfaces/modal'; import { X } from 'phosphor-react'; -import { IModal } from '../../interfaces/modal'; - export const ContentModal = ({ active, children, onCloseModal }: IModal) => { return ( { >