diff --git a/.env.dev b/.env.dev index 2ed15c3007c7c2e7df64232fc86d1b892c58f3de..cfae5ca996d0db5135691be5042f8855d0c2cb20 100644 --- a/.env.dev +++ b/.env.dev @@ -1 +1 @@ -REDWOOD_ENV_API_URL=https://localhost:8080 +REDWOOD_ENV_API_URL=https://localhost:8080/api diff --git a/web/package.json b/web/package.json index 4ec5c55b72a71e50d7a29860af6acf4e583c19ff..e4c9759ff9db0783fb8bc2b07affceaeecb60a31 100644 --- a/web/package.json +++ b/web/package.json @@ -22,7 +22,8 @@ "prop-types": "15.8.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-query": "^3.39.3" + "react-query": "^3.39.3", + "ts-pattern": "^5.0.8" }, "devDependencies": { "@chakra-ui/storybook-addon": "^5.1.0", @@ -31,8 +32,7 @@ "@types/react-dom": "18.2.15" }, "scripts": { - "start_new": "yarn run copy-env && rw dev", - "start_aux": "rw", + "start": "yarn run copy-env && rw dev", "test": "rw test a", "test:watch": "rw test --watch", "test-coverage": "rw test a --no-watch --collect-coverage", diff --git a/web/public/env.js b/web/public/env.js index dae11de18343839a36a9d6c0c66119823f6cb33e..5b819f23a96c53fce6ccc69ca8b5ce0d2f1fb539 100644 --- a/web/public/env.js +++ b/web/public/env.js @@ -1 +1 @@ -window.env = {"REDWOOD_ENV_API_URL":"http://localhost:8080"}; \ No newline at end of file +window.env = {"REDWOOD_ENV_API_URL":"http://localhost:8080/api"}; \ No newline at end of file diff --git a/web/scripts/copy-env.js b/web/scripts/copy-env.js index d1c276cadaaefc49af89ba2a50354a3037316403..230850aeb309ec0db01e6ad422e2cc07e87970c1 100644 --- a/web/scripts/copy-env.js +++ b/web/scripts/copy-env.js @@ -15,9 +15,6 @@ const convertFile = (source, destination) => { if (err) { throw err } - - // eslint-disable-next-line no-console - console.log(`Converted ${source} to ${destination}`) }) } diff --git a/web/src/pages/Patterns/patterns.tsx b/web/src/pages/Patterns/patterns.tsx index 1b019f8e0347efa8e17d591851659af507eb51a0..912a72573851d1dfe09ef8f044d6ef93217da91c 100644 --- a/web/src/pages/Patterns/patterns.tsx +++ b/web/src/pages/Patterns/patterns.tsx @@ -16,20 +16,20 @@ import { HStack, Icon, IconButton, + Spinner, } from '@chakra-ui/react' import { FaEdit, FaEye, FaPlus, FaTrash } from 'react-icons/fa' import { Link, routes } from '@redwoodjs/router' import { patterns } from '.' import { Pattern } from 'src/models' import { GetPatternsQuery } from './query-builder' +import { match } from 'ts-pattern' const tableHeaders = ['Titulo', 'Descripcion', '#Implementaciones', ''] export const Patterns: React.FC = () => { const patternsQuery = GetPatternsQuery.useQuery({}) - console.log({ status: patternsQuery.status, data: patternsQuery.data }) - return ( <VStack alignItems="flex-start" spacing="0"> <Heading as="h2" px="6"> @@ -46,30 +46,38 @@ export const Patterns: React.FC = () => { </Tr> </Thead> <Tbody> - {patterns.map((pattern, index) => ( - <Tr key={`pattern-${pattern.title}-${index}`}> - <Td> - <Link to={routes.pattern({ id: pattern.id })}> - {pattern.title} - </Link> - </Td> - <Td> - <Tooltip label={pattern.description} hasArrow> - <Text isTruncated maxW="sm"> - {pattern.description} - </Text> - </Tooltip> - </Td> - <Td> - <Text textAlign="center"> - {pattern.numberOfImplementations} - </Text> - </Td> - <Td> - <ActionsRow pattern={pattern} /> - </Td> - </Tr> - ))} + {match(patternsQuery) + .with({ status: 'success', data: [] }, () => ( + <Text>No se encontraron patrones</Text> + )) + .with({ status: 'success' }, ({ data }) => + data.map((pattern, index) => ( + <Tr key={`pattern-${pattern.title}-${index}`}> + <Td> + <Link to={routes.pattern({ id: pattern.id })}> + {pattern.title} + </Link> + </Td> + <Td> + <Tooltip label={pattern.description} hasArrow> + <Text isTruncated maxW="sm"> + {pattern.description} + </Text> + </Tooltip> + </Td> + <Td> + <Text textAlign="center"> + {pattern.numberOfImplementations} + </Text> + </Td> + <Td> + <ActionsRow pattern={pattern} /> + </Td> + </Tr> + )) + ) + .with({ status: 'loading' }, () => <Spinner />) + .otherwise(() => null)} </Tbody> </Table> </TableContainer> diff --git a/web/src/services/axios-service.ts b/web/src/services/axios-service.ts index 2b2a8426be68670d238914ade4440b38cb50f92e..7979906db114cb09e02ef3efcfe11893f3fcab6d 100644 --- a/web/src/services/axios-service.ts +++ b/web/src/services/axios-service.ts @@ -1,7 +1,7 @@ import axios from 'axios' const axiosService = axios.create({ - baseURL: process.env.REDWOOD_ENV_API_URL || 'https://localhost:8080', + baseURL: process.env.REDWOOD_ENV_API_URL || 'https://localhost:8080/api', }) export default axiosService diff --git a/yarn.lock b/yarn.lock index 06ce6d860ffcfe824c925a2997803aa9fa3a61e5..a407428368a28e3a6b04e802041d4843a1d0b1f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23685,6 +23685,13 @@ __metadata: languageName: node linkType: hard +"ts-pattern@npm:^5.0.8": + version: 5.0.8 + resolution: "ts-pattern@npm:5.0.8" + checksum: c0767f4a4ce960cc87e69274f750d4672e37e865b779f8aed472fb22566baaedd584caf7dfd454905c25138aabe88f3abb5c2351487b223e822a3affae9611eb + languageName: node + linkType: hard + "ts-toolbelt@npm:9.6.0": version: 9.6.0 resolution: "ts-toolbelt@npm:9.6.0" @@ -24650,6 +24657,7 @@ __metadata: react: 18.2.0 react-dom: 18.2.0 react-query: ^3.39.3 + ts-pattern: ^5.0.8 languageName: unknown linkType: soft