From 0b0b7cb3e289d3e1641ed653c1c896435c467fc4 Mon Sep 17 00:00:00 2001 From: brunoravera <bruno@process.st> Date: Sun, 3 Mar 2024 21:17:40 -0300 Subject: [PATCH] connect api --- .env.dev | 2 +- web/package.json | 6 +-- web/public/env.js | 2 +- web/scripts/copy-env.js | 3 -- web/src/pages/Patterns/patterns.tsx | 60 ++++++++++++++++------------- web/src/services/axios-service.ts | 2 +- yarn.lock | 8 ++++ 7 files changed, 48 insertions(+), 35 deletions(-) diff --git a/.env.dev b/.env.dev index 2ed15c3..cfae5ca 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 4ec5c55..e4c9759 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 dae11de..5b819f2 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 d1c276c..230850a 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 1b019f8..912a725 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 2b2a842..7979906 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 06ce6d8..a407428 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 -- GitLab