From 1e0dcde9ff977d1c281e044a5cc27ecd09564dc6 Mon Sep 17 00:00:00 2001
From: brunoravera <bruno@process.st>
Date: Sat, 9 Mar 2024 14:11:04 -0300
Subject: [PATCH] table styles

---
 web/package.json                              |  1 +
 web/src/design/table-theme.ts                 | 19 +++++++++++++++++++
 web/src/design/theme.ts                       |  2 ++
 web/src/features/topbar/topbar.tsx            | 18 +++++++-----------
 .../Patterns/details/pattern-details.tsx      |  8 ++++----
 web/src/pages/Patterns/patterns.tsx           | 16 ++++++++--------
 .../pages/implementations/implementations.tsx |  2 +-
 yarn.lock                                     |  3 ++-
 8 files changed, 44 insertions(+), 25 deletions(-)
 create mode 100644 web/src/design/table-theme.ts

diff --git a/web/package.json b/web/package.json
index e4c9759..592925f 100644
--- a/web/package.json
+++ b/web/package.json
@@ -11,6 +11,7 @@
     ]
   },
   "dependencies": {
+    "@chakra-ui/anatomy": "^2.2.2",
     "@chakra-ui/react": "^2",
     "@emotion/react": "^11",
     "@emotion/styled": "^11",
diff --git a/web/src/design/table-theme.ts b/web/src/design/table-theme.ts
new file mode 100644
index 0000000..6e186bc
--- /dev/null
+++ b/web/src/design/table-theme.ts
@@ -0,0 +1,19 @@
+import { tableAnatomy } from '@chakra-ui/anatomy'
+import { createMultiStyleConfigHelpers } from '@chakra-ui/react'
+
+const { definePartsStyle, defineMultiStyleConfig } =
+  createMultiStyleConfigHelpers(tableAnatomy.keys)
+
+const baseStyle = definePartsStyle({
+  td: {
+    fontFamily: 'mono',
+    color: 'teal.600',
+    padding: '4px 8px  !important',
+  },
+  th: {
+    color: 'teal.700',
+    padding: '4px 8px  !important',
+  },
+})
+
+export const tableTheme = defineMultiStyleConfig({ baseStyle })
diff --git a/web/src/design/theme.ts b/web/src/design/theme.ts
index 5fe363f..eb4a98d 100644
--- a/web/src/design/theme.ts
+++ b/web/src/design/theme.ts
@@ -1,4 +1,5 @@
 import { ThemeConfig, extendTheme } from '@chakra-ui/react'
+import { tableTheme } from './table-theme'
 
 const config: ThemeConfig = {
   initialColorMode: 'light',
@@ -13,6 +14,7 @@ export const theme = extendTheme({
     currentColor: 'currentColor',
     current: 'currentColor',
   },
+  components: { Table: tableTheme },
   radii: {
     none: '0',
     xs: '2px',
diff --git a/web/src/features/topbar/topbar.tsx b/web/src/features/topbar/topbar.tsx
index baeb81e..bc5bf15 100644
--- a/web/src/features/topbar/topbar.tsx
+++ b/web/src/features/topbar/topbar.tsx
@@ -1,13 +1,5 @@
-import {
-  Badge,
-  Box,
-  Divider,
-  HStack,
-  Icon,
-  IconButton,
-  Text,
-} from '@chakra-ui/react'
-import { Link, back, routes, useLocation } from '@redwoodjs/router'
+import { Badge, Box, Divider, HStack, Icon, IconButton } from '@chakra-ui/react'
+import { Link, back, navigate, routes, useLocation } from '@redwoodjs/router'
 import React from 'react'
 import { FaArrowLeft } from 'react-icons/fa'
 
@@ -16,7 +8,11 @@ export const Topbar: React.FC = () => {
   const { pathname } = useLocation()
 
   const handleOnBack = () => {
-    back()
+    if (pathname === '/') {
+      navigate(routes.home())
+    } else {
+      back()
+    }
   }
   return (
     <>
diff --git a/web/src/pages/Patterns/details/pattern-details.tsx b/web/src/pages/Patterns/details/pattern-details.tsx
index 0073689..2d94b65 100644
--- a/web/src/pages/Patterns/details/pattern-details.tsx
+++ b/web/src/pages/Patterns/details/pattern-details.tsx
@@ -13,18 +13,18 @@ export const PatternDetails: React.FC = () => {
     return null
   }
   return (
-    <VStack w="full" px="4" aria-label="hey" alignItems="flex-start">
-      <Heading as="h2">{pattern.title}</Heading>
+    <VStack w="full" px="4" alignItems="flex-start">
+      <Text fontWeight="bold">{pattern.title}</Text>
       <Text>{pattern.description}</Text>
       <VStack w="full" justifyContent="center" spacing="8">
         <VStack alignItems="flex-start">
-          <Text pl="8" fontWeight="bold">
+          <Text pl="2" fontWeight="bold">
             Implementaciones
           </Text>
           <Implementations patternId={pattern.id} />
         </VStack>
         <VStack alignItems="flex-start">
-          <Text pl="8" fontWeight="bold">
+          <Text pl="2" fontWeight="bold">
             Animaciones
           </Text>
           <Animations patternId={pattern.id} />
diff --git a/web/src/pages/Patterns/patterns.tsx b/web/src/pages/Patterns/patterns.tsx
index 912a725..242963b 100644
--- a/web/src/pages/Patterns/patterns.tsx
+++ b/web/src/pages/Patterns/patterns.tsx
@@ -1,7 +1,6 @@
 import React from 'react'
 
 import {
-  Heading,
   VStack,
   TableContainer,
   Table,
@@ -20,7 +19,6 @@ import {
 } 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'
@@ -31,17 +29,19 @@ export const Patterns: React.FC = () => {
   const patternsQuery = GetPatternsQuery.useQuery({})
 
   return (
-    <VStack alignItems="flex-start" spacing="0">
-      <Heading as="h2" px="6">
+    <VStack alignItems="flex-start" spacing="2">
+      <Text fontWeight="bold" px="1">
         Patrones
-      </Heading>
+      </Text>
       <TableContainer>
-        <Table variant="simple" size="lg">
+        <Table variant="striped" size="lg">
           <TableCaption>Patrones disponibles</TableCaption>
           <Thead>
             <Tr>
               {tableHeaders.map((header, index) => (
-                <Th key={`th-${index}`}>{header}</Th>
+                <Th color="gray.500" key={`th-${index}`}>
+                  {header}
+                </Th>
               ))}
             </Tr>
           </Thead>
@@ -90,7 +90,7 @@ type ActionsRowProps = {
 }
 const ActionsRow: React.FC<ActionsRowProps> = ({ pattern }) => {
   return (
-    <HStack>
+    <HStack spacing="0">
       {/* Linter yells but is fine https://github.com/redwoodjs/redwood/issues/1742 */}
       <Link to={routes.pattern({ id: pattern.id })}>
         <IconButton
diff --git a/web/src/pages/implementations/implementations.tsx b/web/src/pages/implementations/implementations.tsx
index c7e2234..fcacba9 100644
--- a/web/src/pages/implementations/implementations.tsx
+++ b/web/src/pages/implementations/implementations.tsx
@@ -39,7 +39,7 @@ export const Implementations: React.FC<ImplementationsProps> = ({
 
   return (
     <TableContainer>
-      <Table variant="simple" size="lg">
+      <Table variant="striped" size="lg">
         <TableCaption>
           Implementaciones disponibles de {pattern.title}
         </TableCaption>
diff --git a/yarn.lock b/yarn.lock
index a407428..6998661 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1780,7 +1780,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@chakra-ui/anatomy@npm:2.2.2":
+"@chakra-ui/anatomy@npm:2.2.2, @chakra-ui/anatomy@npm:^2.2.2":
   version: 2.2.2
   resolution: "@chakra-ui/anatomy@npm:2.2.2"
   checksum: 06088161541e63bcc240487c0916d536c4b807e53da8ec4821b6dad737c84683a5936e3e44b99b6a6435a9cf896a3236d5f87226add27378c939804daed77305
@@ -24641,6 +24641,7 @@ __metadata:
   version: 0.0.0-use.local
   resolution: "web@workspace:web"
   dependencies:
+    "@chakra-ui/anatomy": ^2.2.2
     "@chakra-ui/react": ^2
     "@chakra-ui/storybook-addon": ^5.1.0
     "@emotion/react": ^11
-- 
GitLab