From 5abefcfefb61b82a9c2f062b57ee1a105f2975a2 Mon Sep 17 00:00:00 2001 From: juliaM <35346206+juliaam@users.noreply.github.com> Date: Thu, 8 Aug 2024 18:39:03 -0300 Subject: [PATCH 1/9] fix: drawer tests (#291) --- src/components/Drawer/index.js | 2 +- src/components/Drawer/index.spec.js | 29 ++++++++++++++--------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/components/Drawer/index.js b/src/components/Drawer/index.js index 1736ae86..002b2a78 100644 --- a/src/components/Drawer/index.js +++ b/src/components/Drawer/index.js @@ -14,7 +14,7 @@ const html = `
-
diff --git a/src/components/Drawer/index.spec.js b/src/components/Drawer/index.spec.js index 5cad0db8..bc3646e5 100644 --- a/src/components/Drawer/index.spec.js +++ b/src/components/Drawer/index.spec.js @@ -1,8 +1,6 @@ -/* eslint-disable testing-library/prefer-user-event */ -/* eslint-disable no-restricted-syntax */ -import { fireEvent } from '@testing-library/dom'; -import { render } from '@testing-library/vanilla'; import { describe, expect, it } from 'vitest'; +import { render, screen } from '@testing-library/vanilla'; +import { userEvent } from '@testing-library/user-event'; import Drawer from '.'; import Button from '../Button'; @@ -25,8 +23,11 @@ describe('Drawer', () => { drawer.open(); - expect(drawer.selected.get('title').textContent).toBe('Add dates'); - expect(drawer.selected.get('content').textContent).toBe('Cadastrar pet'); + const firstText = screen.getByText('Add dates'); + const secondText = screen.getByText('Cadastrar pet'); + + expect(firstText).toBeInTheDocument(); + expect(secondText).toBeInTheDocument(); }); }); @@ -46,25 +47,23 @@ describe('Drawer', () => { }); }); - it('closes when Esc is pressed', () => { + it('closes when Esc is pressed', async () => { const drawer = makeSut(); + const closeSpy = vi.spyOn(drawer, 'close'); - drawer.open(); - - fireEvent.keyDown(document, { key: 'Escape' }); + await userEvent.keyboard('{Escape}'); - expect(drawer.selected.get('drawer').classList).not.toContain( - 'drawer--open', - ); + expect(closeSpy).toHaveBeenCalled(); }); - it('closes when the close button is clicked', () => { + it('closes when the close button is clicked', async () => { const drawer = makeSut(); const closeSpy = vi.spyOn(drawer, 'close'); drawer.open(); - fireEvent.click(drawer.selected.get('close')); + const button = screen.getByLabelText('close-drawer'); + await userEvent.click(button); expect(closeSpy).toHaveBeenCalled(); }); From ae28176abbcee6bf98600731fde0d736ddc51b58 Mon Sep 17 00:00:00 2001 From: Edilton Oliveira <86030948+EdiltonOliveira@users.noreply.github.com> Date: Fri, 9 Aug 2024 08:44:58 -0300 Subject: [PATCH 2/9] =?UTF-8?q?#issue=20267=20-=20implementa=C3=A7=C3=A3o?= =?UTF-8?q?=20da=20listagem=20de=20dados=20pet=20via=20service=20no=20comp?= =?UTF-8?q?onente=20PetAvatar=20#issue-267=20(#290)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: implementação da listagem de dados pet via service no componente PetAvatar #issue-267 * chore: execução do 'prettier:fix' para correção de falha no CI #issue-267 * refactor: inclusão dos dados pets em db.json e exclusão de dbSimulatorAPI * refactor: atualização path login no frontend * refactor: resolve os pedidos de alteração no código --------- Co-authored-by: Matheus Domingos <134434652+DominMFD@users.noreply.github.com> --- db.json | 72 ++++ package.json | 4 +- pnpm-lock.yaml | 400 ++++++++----------- routes.json | 3 + src/layouts/app/components/SideMenu/index.js | 49 +-- src/services/userService.js | 9 +- 6 files changed, 260 insertions(+), 277 deletions(-) create mode 100644 routes.json diff --git a/db.json b/db.json index 3ab9e061..603432c8 100644 --- a/db.json +++ b/db.json @@ -17,6 +17,78 @@ "id": "1", "breed": "Spitz", "name": "Mel", + "title": "Bolinha", + "imgSrc": "https://images.unsplash.com/photo-1598628599796-2a454fa7d9c5?q=80&w=1674&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + "imgAlt": "Bolinha", + "size": { + "small": "X", + "medium": "", + "large": "" + }, + "weight": 10, + "birthday": "20-05-2022", + "castrated": true, + "specialNeeds": false + }, + { + "id": "2", + "breed": "Spitz", + "name": "Mel", + "title": "Jake", + "imgSrc": "https://images.unsplash.com/photo-1530281700549-e82e7bf110d6?q=80&w=1888&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + "imgAlt": "Jake", + "size": { + "small": "X", + "medium": "", + "large": "" + }, + "weight": 10, + "birthday": "20-05-2022", + "castrated": true, + "specialNeeds": false + }, + { + "id": "3", + "breed": "Spitz", + "name": "Mel", + "title": "Tobias", + "imgSrc": "https://images.unsplash.com/photo-1632165258904-21ca36a01ee0?q=80&w=1635&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + "imgAlt": "Tobias", + "size": { + "small": "X", + "medium": "", + "large": "" + }, + "weight": 10, + "birthday": "20-05-2022", + "castrated": true, + "specialNeeds": false + }, + + { + "id": "4", + "breed": "Spitz", + "name": "Mel", + "title": "Francis", + "imgSrc": "https://images.unsplash.com/photo-1596921825946-d738194fac80?q=80&w=1886&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + "imgAlt": "Francis", + "size": { + "small": "X", + "medium": "", + "large": "" + }, + "weight": 10, + "birthday": "20-05-2022", + "castrated": true, + "specialNeeds": false + }, + { + "id": "5", + "breed": "Spitz", + "name": "Mel", + "title": "Toyota", + "imgSrc": "https://images.unsplash.com/photo-1694185643879-536f8d785fa6?q=80&w=1664&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", + "imgAlt": "Toyota", "size": { "small": "X", "medium": "", diff --git a/package.json b/package.json index 820f95bf..eff3408f 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "preview": "vite preview", "storybook": "storybook dev -p 6006", "stylelint": "stylelint \"**/*.scss\"", - "mock-api": "json-server db.json" + "mock-api": "json-server db.json --routes routes.json" }, "dependencies": { "concurrently": "8.2.2", @@ -71,7 +71,7 @@ "eslint-plugin-vitest-globals": "1.5.0", "husky": "^8.0.3", "jsdom": "^23.2.0", - "json-server": "1.0.0-beta.1", + "json-server": "0.17.4", "lint-staged": "^15.2.2", "prettier": "^3.2.5", "reset-css": "^5.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ae0ac54..9cf67d98 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -137,8 +137,8 @@ devDependencies: specifier: ^23.2.0 version: 23.2.0 json-server: - specifier: 1.0.0-beta.1 - version: 1.0.0-beta.1 + specifier: 0.17.4 + version: 0.17.4 lint-staged: specifier: ^15.2.2 version: 15.2.2 @@ -3220,134 +3220,6 @@ packages: '@testing-library/dom': 9.3.4 dev: true - /@tinyhttp/accepts@2.2.2: - resolution: {integrity: sha512-DmngnwOaPgNUGgTpX1UdlNrXaGG6k5rHFzslcYlvSQIg7s0PI6bF86U0fYq3q+yhJhKbnwzFez0wU1lAP+bKvA==} - engines: {node: '>=12.20.0'} - dependencies: - mime: 4.0.1 - negotiator: 0.6.3 - dev: true - - /@tinyhttp/app@2.2.4: - resolution: {integrity: sha512-vFCgE+RncK9+AHpSXHiOxpbaEbpOxYcYHz4K/15Ckh8Sb7WvjA+vveN7bwMqfifyW2uvV3xTKTitUVohf+kDnA==} - engines: {node: '>=14.21.3'} - dependencies: - '@tinyhttp/cookie': 2.1.1 - '@tinyhttp/proxy-addr': 2.1.4 - '@tinyhttp/req': 2.2.3 - '@tinyhttp/res': 2.2.3 - '@tinyhttp/router': 2.2.2 - header-range-parser: 1.1.3 - regexparam: 2.0.2 - dev: true - - /@tinyhttp/content-disposition@2.2.1: - resolution: {integrity: sha512-PQ5IWdOn7arScqTV+usIDJvwbanoAXtaopzgxjMS9y7TFwLSIelCblihRBEVIPIkIpsdhSJFH3RF+Daosyj+Aw==} - engines: {node: '>=12.20.0'} - dev: true - - /@tinyhttp/content-type@0.1.4: - resolution: {integrity: sha512-dl6f3SHIJPYbhsW1oXdrqOmLSQF/Ctlv3JnNfXAE22kIP7FosqJHxkz/qj2gv465prG8ODKH5KEyhBkvwrueKQ==} - engines: {node: '>=12.4'} - dev: true - - /@tinyhttp/cookie-signature@2.1.1: - resolution: {integrity: sha512-VDsSMY5OJfQJIAtUgeQYhqMPSZptehFSfvEEtxr+4nldPA8IImlp3QVcOVuK985g4AFR4Hl1sCbWCXoqBnVWnw==} - engines: {node: '>=12.20.0'} - dev: true - - /@tinyhttp/cookie@2.1.1: - resolution: {integrity: sha512-h/kL9jY0e0Dvad+/QU3efKZww0aTvZJslaHj3JTPmIPC9Oan9+kYqmh3M6L5JUQRuTJYFK2nzgL2iJtH2S+6dA==} - engines: {node: '>=12.20.0'} - dev: true - - /@tinyhttp/cors@2.0.1: - resolution: {integrity: sha512-qrmo6WJuaiCzKWagv2yA/kw6hIISfF/hOqPWwmI6w0o8apeTMmRN3DoCFvQ/wNVuWVdU5J4KU7OX8aaSOEq51A==} - engines: {node: '>=12.20 || 14.x || >=16'} - dependencies: - '@tinyhttp/vary': 0.1.3 - dev: true - - /@tinyhttp/encode-url@2.1.1: - resolution: {integrity: sha512-AhY+JqdZ56qV77tzrBm0qThXORbsVjs/IOPgGCS7x/wWnsa/Bx30zDUU/jPAUcSzNOzt860x9fhdGpzdqbUeUw==} - engines: {node: '>=12.20.0'} - dev: true - - /@tinyhttp/etag@2.1.2: - resolution: {integrity: sha512-j80fPKimGqdmMh6962y+BtQsnYPVCzZfJw0HXjyH70VaJBHLKGF+iYhcKqzI3yef6QBNa8DKIPsbEYpuwApXTw==} - engines: {node: '>=12.20.0'} - dev: true - - /@tinyhttp/forwarded@2.1.1: - resolution: {integrity: sha512-nO3kq0R1LRl2+CAMlnggm22zE6sT8gfvGbNvSitV6F9eaUSurHP0A8YZFMihSkugHxK+uIegh1TKrqgD8+lyGQ==} - engines: {node: '>=12.20.0'} - dev: true - - /@tinyhttp/proxy-addr@2.1.4: - resolution: {integrity: sha512-Xb57jBQW3UcwKST1XSkJpyZPyjOVQJjUfXiHULVXf7FZCgnl273+aj0oP15BzpYLuGhO9IjydY5gvYeg2Cny+A==} - engines: {node: '>=12.20.0'} - dependencies: - '@tinyhttp/forwarded': 2.1.1 - ipaddr.js: 2.2.0 - dev: true - - /@tinyhttp/req@2.2.3: - resolution: {integrity: sha512-HtIa4Gaa8QFTlmsvoif/B7yMK5H0WBUegH2kKW6scNwOpFXyxEk+VsctrIVgORrP5lybXAIRXlRhGuBBAMlVhw==} - engines: {node: '>=12.20.0'} - dependencies: - '@tinyhttp/accepts': 2.2.2 - '@tinyhttp/type-is': 2.2.3 - '@tinyhttp/url': 2.1.1 - header-range-parser: 1.1.3 - dev: true - - /@tinyhttp/res@2.2.3: - resolution: {integrity: sha512-PGl88OOdmMcOuKZaTbhGKAWPoJJf3+EfKIad8ydzjdenVjrTZZjIYJtmwYiUBeEice+YkOCO67qCIekVO5mHlw==} - engines: {node: '>=12.20.0'} - dependencies: - '@tinyhttp/content-disposition': 2.2.1 - '@tinyhttp/cookie': 2.1.1 - '@tinyhttp/cookie-signature': 2.1.1 - '@tinyhttp/encode-url': 2.1.1 - '@tinyhttp/req': 2.2.3 - '@tinyhttp/send': 2.2.2 - '@tinyhttp/vary': 0.1.3 - es-escape-html: 0.1.1 - mime: 4.0.0-beta.1 - dev: true - - /@tinyhttp/router@2.2.2: - resolution: {integrity: sha512-i+1ouhPyTqcuJuOsKqmo7i+YD++0RF2lQLhBpcTnsaegD2gTEa3xW2Pcz7spYQGo7K8PQYtOrL7m9b14+BEXqg==} - engines: {node: '>=12.20.0'} - dev: true - - /@tinyhttp/send@2.2.2: - resolution: {integrity: sha512-TZkGy9EdGk+vwYWQnjArQftaXAUIgp/fFlgaxlpamsCZKy7o+CNJ75xty4H3SaY3ZPgN47wv8rnJ50rDRQdFFQ==} - engines: {node: '>=12.20.0'} - dependencies: - '@tinyhttp/content-type': 0.1.4 - '@tinyhttp/etag': 2.1.2 - mime: 4.0.0-beta.1 - dev: true - - /@tinyhttp/type-is@2.2.3: - resolution: {integrity: sha512-RsZ4+or5xI+wrTlrd+/cLZELoJDMd1HSp+1P23VOZSu1xPAsO1XLf1FgluO8GbEW9Ll/l2yC7mO6diKzjc06HA==} - engines: {node: '>=12.20.0'} - dependencies: - '@tinyhttp/content-type': 0.1.4 - mime: 4.0.1 - dev: true - - /@tinyhttp/url@2.1.1: - resolution: {integrity: sha512-POJeq2GQ5jI7Zrdmj22JqOijB5/GeX+LEX7DUdml1hUnGbJOTWDx7zf2b5cCERj7RoXL67zTgyzVblBJC+NJWg==} - engines: {node: '>=12.20.0'} - dev: true - - /@tinyhttp/vary@0.1.3: - resolution: {integrity: sha512-SoL83sQXAGiHN1jm2VwLUWQSQeDAAl1ywOm6T0b0Cg1CZhVsjoiZadmjhxF6FHCCY7OHHVaLnTgSMxTPIDLxMg==} - engines: {node: '>=12.20'} - dev: true - /@types/aria-query@5.0.4: resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} dev: true @@ -4191,6 +4063,13 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: true + /basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + dependencies: + safe-buffer: 5.1.2 + dev: true + /better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} @@ -4645,6 +4524,10 @@ packages: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} dev: true + /connect-pause@0.1.1: + resolution: {integrity: sha512-a1gSWQBQD73krFXdUEYJom2RTFrWUL3YvXDCRkyv//GVXc79cdW9MngtRuN9ih4FDKBtfJAJId+BbDuX+1rh2w==} + dev: true + /consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -4712,6 +4595,14 @@ packages: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + /cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.10)(cosmiconfig@9.0.0)(typescript@5.4.5): resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} @@ -4876,6 +4767,17 @@ packages: ms: 2.0.0 dev: true + /debug@3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -5087,20 +4989,6 @@ packages: is-obj: 2.0.0 dev: true - /dot-prop@8.0.2: - resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} - engines: {node: '>=16'} - dependencies: - type-fest: 3.13.1 - dev: true - - /dot-prop@9.0.0: - resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} - engines: {node: '>=18'} - dependencies: - type-fest: 4.21.0 - dev: true - /dotenv-expand@10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} @@ -5180,6 +5068,14 @@ packages: is-arrayish: 0.2.1 dev: true + /errorhandler@1.5.1: + resolution: {integrity: sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==} + engines: {node: '>= 0.8'} + dependencies: + accepts: 1.3.8 + escape-html: 1.0.3 + dev: true + /es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -5241,11 +5137,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - /es-escape-html@0.1.1: - resolution: {integrity: sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==} - engines: {node: '>=12.x'} - dev: true - /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: @@ -5794,11 +5685,6 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - /eta@3.4.0: - resolution: {integrity: sha512-tCsc7WXTjrTx4ZjYLplcqrI3o4mYJ+Z6YspeuGL8tbt/hHoMchwBwtKfwM09svEY86iRapY93vUqQttcNuIO5Q==} - engines: {node: '>=6.0.0'} - dev: true - /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} @@ -5845,6 +5731,15 @@ packages: homedir-polyfill: 1.0.3 dev: true + /express-urlrewrite@1.4.0: + resolution: {integrity: sha512-PI5h8JuzoweS26vFizwQl6UTF25CAHSggNv0J25Dn/IKZscJHWZzPrI5z2Y2jgOzIaw2qh8l6+/jUcig23Z2SA==} + dependencies: + debug: 4.3.4 + path-to-regexp: 1.8.0 + transitivePeerDependencies: + - supports-color + dev: true + /express@4.19.2: resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} engines: {node: '>= 0.10.0'} @@ -6476,11 +6371,6 @@ packages: '@types/hast': 3.0.4 dev: true - /header-range-parser@1.1.3: - resolution: {integrity: sha512-B9zCFt3jH8g09LR1vHL4pcAn8yMEtlSlOUdQemzHMRKMImNIhhszdeosYFfNW0WXKQtXIlWB+O4owHJKvEJYaA==} - engines: {node: '>=12.22.0'} - dev: true - /homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} @@ -6607,11 +6497,6 @@ packages: engines: {node: '>=8'} dev: true - /inflection@3.0.0: - resolution: {integrity: sha512-1zEJU1l19SgJlmwqsEyFTbScw/tkMHFenUo//Y0i+XEP83gDFdMvPizAD/WGcE+l1ku12PcTVHQhO6g5E0UCMw==} - engines: {node: '>=18.0.0'} - dev: true - /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -6689,11 +6574,6 @@ packages: engines: {node: '>= 0.10'} dev: true - /ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} - engines: {node: '>= 10'} - dev: true - /is-absolute-url@4.0.1: resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6901,6 +6781,10 @@ packages: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true + /is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + dev: true + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -6997,6 +6881,10 @@ packages: is-docker: 2.2.1 dev: true + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + dev: true + /isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true @@ -7086,6 +6974,10 @@ packages: hasBin: true dev: true + /jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + dev: true + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -7187,6 +7079,12 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true + /json-parse-helpfulerror@1.0.3: + resolution: {integrity: sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==} + dependencies: + jju: 1.4.0 + dev: true + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -7198,23 +7096,32 @@ packages: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} dev: false - /json-server@1.0.0-beta.1: - resolution: {integrity: sha512-xOKYyxkVai66OTFZq5ulAaXYkqiKMbzVED9tRZ+CMg6v6iaSdIVYas5tIjSMw/mYwDL/nJFTCca308gaL0coyA==} - engines: {node: '>=18.3'} + /json-server@0.17.4: + resolution: {integrity: sha512-bGBb0WtFuAKbgI7JV3A864irWnMZSvBYRJbohaOuatHwKSRFUfqtQlrYMrB6WbalXy/cJabyjlb7JkHli6dYjQ==} + engines: {node: '>=12'} hasBin: true dependencies: - '@tinyhttp/app': 2.2.4 - '@tinyhttp/cors': 2.0.1 - chalk: 5.3.0 - chokidar: 3.6.0 - dot-prop: 9.0.0 - eta: 3.4.0 - inflection: 3.0.0 - json5: 2.2.3 - lowdb: 7.0.1 - milliparsec: 2.3.0 - sirv: 2.0.4 - sort-on: 6.0.0 + body-parser: 1.20.2 + chalk: 4.1.2 + compression: 1.7.4 + connect-pause: 0.1.1 + cors: 2.8.5 + errorhandler: 1.5.1 + express: 4.19.2 + express-urlrewrite: 1.4.0 + json-parse-helpfulerror: 1.0.3 + lodash: 4.17.21 + lodash-id: 0.14.1 + lowdb: 1.0.0 + method-override: 3.0.0 + morgan: 1.10.0 + nanoid: 3.3.7 + please-upgrade-node: 3.2.0 + pluralize: 8.0.0 + server-destroy: 1.0.1 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color dev: true /json-stable-stringify-without-jsonify@1.0.1: @@ -7387,6 +7294,11 @@ packages: p-locate: 6.0.0 dev: true + /lodash-id@0.14.1: + resolution: {integrity: sha512-ikQPBTiq/d5m6dfKQlFdIXFzvThPi2Be9/AHxktOnDSfSxE1j9ICbBT5Elk1ke7HSTgM38LHTpmJovo9/klnLg==} + engines: {node: '>= 4'} + dev: true + /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: true @@ -7478,11 +7390,15 @@ packages: get-func-name: 2.0.2 dev: true - /lowdb@7.0.1: - resolution: {integrity: sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==} - engines: {node: '>=18'} + /lowdb@1.0.0: + resolution: {integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==} + engines: {node: '>=4'} dependencies: - steno: 4.0.2 + graceful-fs: 4.2.11 + is-promise: 2.2.2 + lodash: 4.17.21 + pify: 3.0.0 + steno: 0.4.4 dev: true /lru-cache@10.2.2: @@ -7599,6 +7515,18 @@ packages: resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} dev: true + /method-override@3.0.0: + resolution: {integrity: sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA==} + engines: {node: '>= 0.10'} + dependencies: + debug: 3.1.0 + methods: 1.1.2 + parseurl: 1.3.3 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -7611,11 +7539,6 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /milliparsec@2.3.0: - resolution: {integrity: sha512-b+6KYJw+DwQjk24qCUuq+lZvRXDpXJ02qsllKgKaDurHpQ0v7D5op9VAkdYM/pXRhFeh7uLYHmnwFnYvdXGa3A==} - engines: {node: '>=12.4'} - dev: true - /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -7634,18 +7557,6 @@ packages: hasBin: true dev: true - /mime@4.0.0-beta.1: - resolution: {integrity: sha512-8/p99P1RV17prytee/A6D+8shNqdDzyvGJ/CVfiuXwh4cTsv3P3qGyaYSx2hdqnqbKKqYUfTC5zAjCtcd1BShw==} - engines: {node: '>=16'} - hasBin: true - dev: true - - /mime@4.0.1: - resolution: {integrity: sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==} - engines: {node: '>=16'} - hasBin: true - dev: true - /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -7728,6 +7639,19 @@ packages: ufo: 1.5.3 dev: true + /morgan@1.10.0: + resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} + engines: {node: '>= 0.8.0'} + dependencies: + basic-auth: 2.0.1 + debug: 2.6.9 + depd: 2.0.0 + on-finished: 2.3.0 + on-headers: 1.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} @@ -7922,6 +7846,13 @@ packages: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} dev: true + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -8141,6 +8072,12 @@ packages: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: true + /path-to-regexp@1.8.0: + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + dependencies: + isarray: 0.0.1 + dev: true + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -8179,6 +8116,11 @@ packages: hasBin: true dev: true + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: true + /pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -8217,6 +8159,17 @@ packages: pathe: 1.1.2 dev: true + /please-upgrade-node@3.2.0: + resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} + dependencies: + semver-compare: 1.0.0 + dev: true + + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + /polished@4.3.1: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} @@ -8595,11 +8548,6 @@ packages: es-errors: 1.3.0 set-function-name: 2.0.2 - /regexparam@2.0.2: - resolution: {integrity: sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==} - engines: {node: '>=8'} - dev: true - /regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} @@ -8839,6 +8787,10 @@ packages: loose-envify: 1.4.0 dev: true + /semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + dev: true + /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -8893,6 +8845,10 @@ packages: - supports-color dev: true + /server-destroy@1.0.1: + resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} + dev: true + /set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -9011,13 +8967,6 @@ packages: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} dev: false - /sort-on@6.0.0: - resolution: {integrity: sha512-d51VlJWoFQjp+cIZRyNusCyJdP5pLAw+H+sC4C2q6RhPBv+RAb/QXXck5q3Kdm7h/ot/kD2AlpGPDee8v+0qiA==} - engines: {node: '>=18'} - dependencies: - dot-prop: 8.0.2 - dev: true - /source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} @@ -9092,9 +9041,10 @@ packages: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true - /steno@4.0.2: - resolution: {integrity: sha512-yhPIQXjrlt1xv7dyPQg2P17URmXbuM5pdGkpiMB3RenprfiBlvK415Lctfe0eshk90oA7/tNq7WEiMK8RSP39A==} - engines: {node: '>=18'} + /steno@0.4.4: + resolution: {integrity: sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==} + dependencies: + graceful-fs: 4.2.11 dev: true /stop-iteration-iterator@1.0.0: @@ -9745,16 +9695,6 @@ packages: engines: {node: '>=12.20'} dev: true - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - dev: true - - /type-fest@4.21.0: - resolution: {integrity: sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==} - engines: {node: '>=16'} - dev: true - /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} diff --git a/routes.json b/routes.json new file mode 100644 index 00000000..c039687a --- /dev/null +++ b/routes.json @@ -0,0 +1,3 @@ +{ + "/api/:resource/:id/my-pets": "/:resource/:id" +} diff --git a/src/layouts/app/components/SideMenu/index.js b/src/layouts/app/components/SideMenu/index.js index 8cca34fd..04c9bb0b 100644 --- a/src/layouts/app/components/SideMenu/index.js +++ b/src/layouts/app/components/SideMenu/index.js @@ -1,4 +1,5 @@ import { Component } from 'pet-dex-utilities'; +import { UserService } from '../../../../services/userService'; import petUrl from '../../../../images/pet-dex.svg'; import configuracoes from './images/configuracoes.svg'; import conta from './images/conta.svg'; @@ -50,47 +51,13 @@ export default function SideMenu() { const $container = this.selected.get('avatar-container'); - const pets = [ - { - id: '1', - title: 'Bolinha', - imgSrc: - 'https://images.unsplash.com/photo-1598628599796-2a454fa7d9c5?q=80&w=1674&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - imgAlt: 'Bolinha', - }, - { - id: '2', - title: 'Jake', - imgSrc: - 'https://images.unsplash.com/photo-1530281700549-e82e7bf110d6?q=80&w=1888&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - imgAlt: 'Jake', - }, - { - id: '3', - title: 'Tobias', - imgSrc: - 'https://images.unsplash.com/photo-1632165258904-21ca36a01ee0?q=80&w=1635&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - imgAlt: 'Tobias', - }, - { - id: '4', - title: 'Francis', - imgSrc: - 'https://images.unsplash.com/photo-1596921825946-d738194fac80?q=80&w=1886&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - imgAlt: 'Francis', - }, - { - id: '5', - title: 'Toyota', - imgSrc: - 'https://images.unsplash.com/photo-1694185643879-536f8d785fa6?q=80&w=1664&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D', - imgAlt: 'Toyota', - }, - ]; - - pets.forEach((pet) => { - const avatar = new PetAvatar(pet); - avatar.mount($container); + const inputIdUser = 1; // ID simulando input usuário em componente futuro + // Para renderização do componente pets avatar, json-server deve está em execução. + UserService.getPets(inputIdUser).then((response) => { + response.forEach((pet) => { + const avatar = new PetAvatar(pet); + avatar.mount($container); + }); }); } diff --git a/src/services/userService.js b/src/services/userService.js index 2e3368a9..ef271be6 100644 --- a/src/services/userService.js +++ b/src/services/userService.js @@ -3,21 +3,22 @@ import { url } from './api'; export const UserService = { getPets: async (userId) => { try { - const response = await fetch(`${url}/${userId}`); + const response = await fetch(`${url}/api/user/${userId}/my-pets`); if (!response.ok) { - throw new Error('Ocorreu um erro na requisição'); + throw new Error('Failed request'); } const { pets } = await response.json(); return pets; } catch (error) { - return `Ocorreu o seguinte erro: ${error}`; + console.error(`An error occurred: ${error}`); + return `An error occurred: ${error}`; } }, login: async (email, password) => { try { - const response = await fetch(`${url}/login`, { + const response = await fetch(`${url}/api/user/login`, { method: 'POST', body: JSON.stringify({ email, password }), }); From a12dea8b80598a47dc292ac9adb0bb939ffd2a26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcelli=20Assump=C3=A7=C3=A3o=20=28dev=29?= <78447100+marceana@users.noreply.github.com> Date: Sun, 11 Aug 2024 18:47:41 -0300 Subject: [PATCH 3/9] =?UTF-8?q?Issue=20220=20-=20Teste=20da=20p=C3=A1gina?= =?UTF-8?q?=20de=20peso=20do=20pet=20(#252)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test: adiciona testes da página de peso do pet * test: melhora testes na página de peso do pet * test: melhora testes da página de peso do pet * test: remove only * test: adjust continue button test --- .../app/pages/PetWeight/petWeightPage.spec.js | 89 +++++++++++++++++-- 1 file changed, 83 insertions(+), 6 deletions(-) diff --git a/src/layouts/app/pages/PetWeight/petWeightPage.spec.js b/src/layouts/app/pages/PetWeight/petWeightPage.spec.js index ea9bc17e..f06841b8 100644 --- a/src/layouts/app/pages/PetWeight/petWeightPage.spec.js +++ b/src/layouts/app/pages/PetWeight/petWeightPage.spec.js @@ -1,16 +1,93 @@ import { describe, expect, it } from 'vitest'; -import PetWeightPage from './index'; +import { render, screen, userEvent, waitFor } from '@testing-library/vanilla'; +import PetWeightPage from '.'; const propsMock = { petPhoto: 'https://via.placeholder.com/150', }; -describe('PetWeightPage', () => { - it('is a Function', () => { - expect(PetWeightPage).toBeInstanceOf(Function); +const makeComponent = (params) => render(new PetWeightPage(params)); + +describe('Pet Weight page', () => { + it('renders image', async () => { + const page = makeComponent(propsMock.petPhoto); + + render(page); + const image = screen.getByAltText('Imagem carregada'); + + expect(image).toBeInTheDocument(); + }); + + it('KG radio is checked by default', () => { + const page = makeComponent(propsMock.petPhoto); + render(page); + + const radioKG = screen.getByLabelText('KG'); + + expect(radioKG.checked).toBe(true); }); - it.skip('returns an object', () => { - expect(new PetWeightPage(propsMock)).toBeInstanceOf(Object); + it('selects radio buttons when clicked and desselects the other', async () => { + const page = makeComponent(propsMock.petPhoto); + render(page); + + const radioButtonKG = screen.getByLabelText('KG'); + const radioButtonLB = screen.getByLabelText('LB'); + + await userEvent.click(radioButtonKG); + expect(radioButtonKG).toBeChecked(); + expect(radioButtonLB).not.toBeChecked(); + + await userEvent.click(radioButtonLB); + expect(radioButtonLB).toBeChecked(); + expect(radioButtonKG).not.toBeChecked(); + }); + + it('allows typing in the input field', async () => { + const page = makeComponent(propsMock.petPhoto); + render(page); + + const input = screen.getByPlaceholderText('Peso'); + + await userEvent.type(input, '5'); + + expect(input).toHaveValue('5'); + }); + + it('shows right value in slider when value changes in the input field', async () => { + const page = makeComponent(propsMock.petPhoto); + render(page); + + const input = screen.getByPlaceholderText('Peso'); + const slider = screen.getByText('10.0'); + + await userEvent.clear(input); + await userEvent.type(input, '5'); + + await waitFor(() => { + expect(slider).toHaveTextContent('5.0'); + }); + }); + + it('emits data when continue button is clicked', async () => { + const page = makeComponent(propsMock.petPhoto); + render(page); + + const input = screen.getByPlaceholderText('Peso'); + const radioKG = screen.getByLabelText('KG'); + const continueButton = screen.getByRole('button', { name: 'Continuar' }); + + await userEvent.clear(input); + await userEvent.type(input, '5'); + await userEvent.click(radioKG); + + const mockEmit = vi.spyOn(page, 'emit'); + + await userEvent.click(continueButton); + + expect(mockEmit).toHaveBeenCalledWith('submit', { + weight: 5.0, + weightUnit: 'kg', + }); }); }); From a538cf6c39bcb3236e70a3fb5facf550406b6d25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Burgarell?= Date: Mon, 19 Aug 2024 22:02:40 -0300 Subject: [PATCH 4/9] feat: add user registration service (#293) * feat: add user registration service * chore: transform userRegister file into a userService method --- src/components/RegisterForm/index.js | 13 ++++++++++++- src/services/userService.js | 29 ++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/components/RegisterForm/index.js b/src/components/RegisterForm/index.js index 3cad6787..c37e0747 100644 --- a/src/components/RegisterForm/index.js +++ b/src/components/RegisterForm/index.js @@ -14,6 +14,7 @@ import { import googleIcon from './images/google-icon.svg'; import facebookIcon from './images/facebook-icon.svg'; import './index.scss'; +import { UserService } from '../../services/userService'; const events = ['register']; @@ -151,7 +152,7 @@ export default function RegisterForm() { repeatPassword.mount($fields); registerButton.mount($formButton); - registerButton.listen('click', () => { + registerButton.listen('click', async () => { const nameValue = name.getContent().getValue(); const surnameValue = surname.getContent().getValue(); const birthValue = birth.getContent().getValue(); @@ -270,6 +271,16 @@ export default function RegisterForm() { passwordValid && repeatPasswordValid ) { + await UserService.registerUser({ + name: nameValue, + surname: surnameValue, + birth: birthValue, + local: localValue, + email: emailValue, + phone: phoneValue, + password: passwordValue, + }); + this.register(); } }); diff --git a/src/services/userService.js b/src/services/userService.js index ef271be6..3f2f2b75 100644 --- a/src/services/userService.js +++ b/src/services/userService.js @@ -16,6 +16,7 @@ export const UserService = { return `An error occurred: ${error}`; } }, + login: async (email, password) => { try { const response = await fetch(`${url}/api/user/login`, { @@ -38,4 +39,32 @@ export const UserService = { }; } }, + + registerUser: async (userData) => { + try { + const response = await fetch(`${url}/naoSeiARota`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(userData), + }); + + if (!response.ok) { + throw new Error('Failed to register user'); + } + + const result = await response.json(); + return { + success: true, + data: result, + }; + } catch (error) { + console.error(`An error occurred: ${error}`); + return { + success: false, + message: error.message, + }; + } + }, }; From 12e425f995d3fb5dee23a1bc0e32dda48642b62f Mon Sep 17 00:00:00 2001 From: Gustavo Gularte Arend <98916022+gustavogularte@users.noreply.github.com> Date: Thu, 22 Aug 2024 18:46:04 -0300 Subject: [PATCH 5/9] feat: scroll quando houver mais de 6 pets (#296) --- .../app/components/SideMenu/index.scss | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/layouts/app/components/SideMenu/index.scss b/src/layouts/app/components/SideMenu/index.scss index 99d8b35a..3ea4b4d3 100644 --- a/src/layouts/app/components/SideMenu/index.scss +++ b/src/layouts/app/components/SideMenu/index.scss @@ -85,11 +85,28 @@ } &__avatars-yourpet { + max-height: calc(8.5rem * 2 + 2rem); + overflow-y: auto; + display: grid; grid-template-columns: repeat(3, 6rem); - grid-gap: 2rem; + gap: 2rem; margin-top: 2rem; + padding: 0.4rem 0.2rem; + + &::-webkit-scrollbar { + width: 0.4rem; + } + + &::-webkit-scrollbar-track { + background: colors.$primary600; + } + + &::-webkit-scrollbar-thumb { + background-color: colors.$primary700; + border-radius: 1rem; + } } &__itens { @@ -142,7 +159,7 @@ } .side-menu-content { - width: 70%; + width: 80%; &__menuitens { transition: 0.3s; From a20d5d95b02d07c35d92ac90789be3efcf6f4d36 Mon Sep 17 00:00:00 2001 From: Edilton Oliveira <86030948+EdiltonOliveira@users.noreply.github.com> Date: Thu, 22 Aug 2024 18:48:20 -0300 Subject: [PATCH 6/9] =?UTF-8?q?refactor:=20centraliza=C3=A7=C3=A3o=20das?= =?UTF-8?q?=20regras=20de=20valida=C3=A7=C3=A3o=20de=20senha=20#287=20(#29?= =?UTF-8?q?7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ChangePassword/index.js | 16 ++++------------ src/components/LoginForm/index.js | 12 +++--------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/components/ChangePassword/index.js b/src/components/ChangePassword/index.js index 05c309f6..e50f65fa 100644 --- a/src/components/ChangePassword/index.js +++ b/src/components/ChangePassword/index.js @@ -1,4 +1,5 @@ import { Component } from 'pet-dex-utilities'; +import { isPasswordValid } from '../../utils/validations'; import TextInput from '../TextInput'; import Button from '../Button'; import './index.scss'; @@ -28,22 +29,13 @@ const html = ` As senhas não coincidem `; -const validatePassword = (password) => { - const hasMinLength = password.length >= 10; - const hasUppercase = /[A-Z]/g.test(password); - const hasNumber = /[0-9]/g.test(password); - const hasSpecialCharacter = /[!@#$%^&*(),.?":{}|<>]/g.test(password); - - return hasMinLength && hasUppercase && hasNumber && hasSpecialCharacter; -}; - export default function ChangePassword() { Component.call(this, { html, events }); const $changePasswordForm = this.selected.get('change-password'); @@ -123,8 +115,8 @@ export default function ChangePassword() { confirmPasswordInput.selected.get('input-text').value; const showErrorMessage = (field, error) => { - const fieldValue = field.selected.get('input-text').value; - if (!validatePassword(fieldValue)) { + const password = field.selected.get('input-text').value; + if (!isPasswordValid(password)) { validPasswords = false; error.classList.add('show-error'); field.inputError(); diff --git a/src/components/LoginForm/index.js b/src/components/LoginForm/index.js index 1b50037d..327c28d8 100644 --- a/src/components/LoginForm/index.js +++ b/src/components/LoginForm/index.js @@ -1,4 +1,5 @@ import { Component } from 'pet-dex-utilities'; +import { isPasswordValid } from '../../utils/validations'; import TextInput from '../TextInput'; import Button from '../Button'; import Toggle from '../Toggle'; @@ -112,7 +113,7 @@ export default function LoginForm() { emailInput.inputError(); } - if (!this.validatePassword(password)) { + if (!this.isPasswordValid(password)) { validPassword = false; $passwordErrorMessage.classList.add('show-error'); $passwordErrorMessage.innerText = @@ -138,12 +139,5 @@ LoginForm.prototype = Object.assign(LoginForm.prototype, Component.prototype, { return emailRegex.test(email); }, - validatePassword(password) { - const hasMinLength = password.length >= 10; - const hasUppercase = /[A-Z]/g.test(password); - const hasNumber = /[0-9]/g.test(password); - const hasSpecialCharacter = /[!@#$%^&*(),.?":{}|<>]/g.test(password); - - return hasMinLength && hasUppercase && hasNumber && hasSpecialCharacter; - }, + isPasswordValid, }); From bc4dc918658629966589dbcac8b943da334133c7 Mon Sep 17 00:00:00 2001 From: Wendeson <82889172+wendesongomes@users.noreply.github.com> Date: Thu, 29 Aug 2024 18:53:49 -0300 Subject: [PATCH 7/9] =?UTF-8?q?Adiciona=20roteamento=20ao=20clicar=20no=20?= =?UTF-8?q?bot=C3=A3o=20"Cadastrar=20pet"=20(#298)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add router when click on button * refactor: refactor button listen --- src/layouts/app/pages/NoPetRegirested/index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/layouts/app/pages/NoPetRegirested/index.js b/src/layouts/app/pages/NoPetRegirested/index.js index 032a20c6..94a93aea 100644 --- a/src/layouts/app/pages/NoPetRegirested/index.js +++ b/src/layouts/app/pages/NoPetRegirested/index.js @@ -1,4 +1,5 @@ import { Component } from 'pet-dex-utilities'; +import { Router } from 'vanilla-routing'; import Button from '../../../../components/Button'; import petUrl from './images/no-pet-regirested-page.png'; import './index.scss'; @@ -30,6 +31,10 @@ export default function NoPetRegirested() { .get('button') .classList.add('no-pet-regirested-page__button'); this.button.mount($container); + + this.button.listen('click', () => { + Router.go('/add/addpets'); + }); } NoPetRegirested.prototype = Object.assign( From e005f53be7a16a7545ddf0b8ef1c8c9affcf9376 Mon Sep 17 00:00:00 2001 From: Paulo Victor Date: Tue, 3 Sep 2024 18:49:36 -0300 Subject: [PATCH 8/9] Fixed codestyle workflow (#271) * feat: add dependencias entre workflows e ajust code-style7 * fix: removendo dependencias de workflows * ajust workflows * add setup env script * change name to base fowflows * add code owners * add code owners * ajust codewoners --------- Co-authored-by: Alexandre Gomes --- .github/CODEOWNERS | 1 + .github/workflows/autoAssigned.yml | 21 --------------- .github/workflows/base-workflows.yml | 11 ++++++++ .github/workflows/build.yml | 2 +- .github/workflows/code-style.yml | 40 +++------------------------- setup.mjs | 30 +++++++++++++++++++++ 6 files changed, 47 insertions(+), 58 deletions(-) create mode 100644 .github/CODEOWNERS delete mode 100644 .github/workflows/autoAssigned.yml create mode 100644 .github/workflows/base-workflows.yml create mode 100644 setup.mjs diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..00b0c9dd --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @devhatt/hatts @devhatt/petdex-frontend-administrators diff --git a/.github/workflows/autoAssigned.yml b/.github/workflows/autoAssigned.yml deleted file mode 100644 index f388bcb2..00000000 --- a/.github/workflows/autoAssigned.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Auto-assign on comment - -on: - issue_comment: - types: [created] - -jobs: - auto-assign: - runs-on: ubuntu-latest - steps: - - name: Check for "EU QUERO!!!" comment - if: contains(github.event.comment.body, 'EU QUERO!!!') - run: | - # Extract the commenter's username - commenter=$(jq -r .comment.user.login $GITHUB_EVENT_PATH) - - # Add the commenter as an assignee to the issue using a Personal Access Token - echo "Assigning $commenter to the issue..." - curl -X POST -H "Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}" \ - -d "{\"assignees\": [\"$commenter\"]}" \ - "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/assignees" diff --git a/.github/workflows/base-workflows.yml b/.github/workflows/base-workflows.yml new file mode 100644 index 00000000..df126b4a --- /dev/null +++ b/.github/workflows/base-workflows.yml @@ -0,0 +1,11 @@ +name: Base workflows + +on: + issue_comment: + types: [created] + pull_request: + +jobs: + assignes: + uses: devhatt/workflows/.github/workflows/auto-assign.yml@main + secrets: inherit diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0752a3b0..4be2186a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: uses: actions/checkout@v3 - name: Setup deps - uses: ./.github/actions/install-deps + uses: devhatt/workflows/.github/actions/pnpm-setup@main - name: Build run: pnpm build diff --git a/.github/workflows/code-style.yml b/.github/workflows/code-style.yml index 2b731759..d462ec8d 100644 --- a/.github/workflows/code-style.yml +++ b/.github/workflows/code-style.yml @@ -17,45 +17,13 @@ jobs: uses: actions/checkout@v3 - name: Setup deps - uses: ./.github/actions/install-deps - - - name: Get all changed files - id: all-changed-files - uses: tj-actions/changed-files@v41 - with: - files: | - !pnpm-lock.yaml + uses: devhatt/workflows/.github/actions/pnpm-setup@main - name: Run prettier in all files - if: steps.all-changed-files.outputs.any_changed == 'true' - env: - files: ${{ steps.all-changed-files.outputs.all_changed_files }} - run: pnpm exec prettier $files --check --ignore-unknown - - - name: Get specific changed files - id: changed-files - uses: tj-actions/changed-files@v41 - with: - files_yaml: | - code: - - '**.js' - - '**.ts' - - '**.tsx' - - '**.jsx' - - '**.mjs' - - '**.cjs' - style: - - '**.scss' + run: pnpm exec prettier . --check --ignore-unknown - name: Run stylelint in scss files - if: steps.changed-files.outputs.style_any_changed == 'true' - env: - files: ${{ steps.changed-files.outputs.style_all_changed_files }} - run: pnpm exec stylelint $files --allow-empty-input + run: pnpm exec stylelint . --allow-empty-input - name: Run eslint in code files - if: steps.changed-files.outputs.code_any_changed == 'true' - env: - files: ${{ steps.changed-files.outputs.code_all_changed_files }} - run: pnpm exec eslint $files --report-unused-disable-directives --max-warnings 0 --output-file eslint_report.json --format json - continue-on-error: true + run: pnpm exec eslint . --report-unused-disable-directives --max-warnings 0 diff --git a/setup.mjs b/setup.mjs new file mode 100644 index 00000000..5398d1e4 --- /dev/null +++ b/setup.mjs @@ -0,0 +1,30 @@ +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const envFilePath = path.join(__dirname, '.env'); + +async function setupDotEnv() { + if (fs.existsSync(envFilePath)) { + console.log( + 'O .env já existe, se você deseja recriá-lo, exclua o arquivo e execute este script novamente.', + ); + return; + } + + try { + console.log('Baixando o .env do repositório...'); + const envData = await fetch( + 'https://raw.githubusercontent.com/devhatt/envs/main/petdex-front.env', + ).then((response) => response.text()); + fs.writeFileSync(envFilePath, envData); + console.log('O arquivo .env foi criado com sucesso!'); + } catch (error) { + console.error('Erro ao criar o arquivo .env:', error); + } +} + +setupDotEnv(); From 843ded8666f9a04220be124f9c563bcb85651baa Mon Sep 17 00:00:00 2001 From: Diogo Ferreira Reis <88992612+diogocaronte@users.noreply.github.com> Date: Thu, 5 Sep 2024 18:55:27 -0300 Subject: [PATCH 9/9] add sample page to routing (#299) * feat: routes fix * fix: identation * fix: importing adjusts * add sample page * minor path fixes * fix import order --------- Co-authored-by: Rafael Lima Co-authored-by: juliaM <35346206+juliaam@users.noreply.github.com> Co-authored-by: Paulo Victor --- jsconfig.json | 6 +- package.json | 1 + pnpm-lock.yaml | 12 +++ src/components/AddPet/index.js | 9 +- src/layouts/app/index.html | 96 ------------------ .../components/Navigation/images/avatar.svg | 0 .../components/Navigation/images/bell.svg | 0 .../components/Navigation/images/exit.svg | 0 .../components/Navigation/images/menu.svg | 0 .../{app => }/components/Navigation/index.js | 2 +- .../components/Navigation/index.scss | 0 .../SideMenu/images/configuracoes.svg | 0 .../components/SideMenu/images/conta.svg | 0 .../components/SideMenu/images/doacoes.svg | 0 .../components/SideMenu/images/exit.svg | 0 .../components/SideMenu/images/exitmenu.svg | 0 .../components/SideMenu/images/meuspets.svg | 0 .../SideMenu/images/notifications.svg | 0 .../components/SideMenu/images/perfil.svg | 0 .../components/SideMenu/images/petdex.svg | 0 .../{app => }/components/SideMenu/index.js | 36 +++++-- .../{app => }/components/SideMenu/index.scss | 0 src/layouts/index.html | 84 ++++++++++++++- src/layouts/{app => }/index.js | 6 +- src/layouts/{app => }/index.scss | 0 .../images/no-pet-regirested-page.png | Bin .../{app => }/pages/NoPetRegirested/index.js | 2 +- .../pages/NoPetRegirested/index.scss | 0 .../{app => }/pages/PetRegister/index.js | 4 +- .../{app => }/pages/PetRegister/index.scss | 0 .../{app => }/pages/PetRegister/index.spec.js | 12 +-- .../pages/PetVet/images/cuidadosEspeciais.svg | 0 .../pages/PetVet/images/estetoscopio.svg | 0 src/layouts/{app => }/pages/PetVet/index.js | 10 +- src/layouts/{app => }/pages/PetVet/index.scss | 0 .../{app => }/pages/PetVet/index.spec.js | 0 .../{app => }/pages/PetWeight/index.js | 10 +- .../{app => }/pages/PetWeight/index.scss | 0 .../pages/PetWeight/petWeightPage.spec.js | 0 src/layouts/sample-page/index.html | 11 ++ .../{app => }/utils/scrollable-sidemenu.js | 0 src/router/main-router.js | 8 +- .../routes/{ => app}/add-pet/add-pet.js | 0 .../{ => app}/add-pet/steps/birthday.js | 4 +- .../routes/{ => app}/add-pet/steps/name.js | 4 +- .../routes/{ => app}/add-pet/steps/petvet.js | 4 +- .../routes/{ => app}/add-pet/steps/race.js | 4 +- .../{ => app}/add-pet/steps/register.js | 4 +- .../routes/{ => app}/add-pet/steps/size.js | 4 +- .../routes/{ => app}/add-pet/steps/weight.js | 4 +- .../{ => app}/main-routes/main-routes.js | 0 .../{ => app}/main-routes/routes/account.js | 4 +- .../{ => app}/main-routes/routes/donates.js | 4 +- .../{ => app}/main-routes/routes/error.js | 2 +- .../{ => app}/main-routes/routes/home.js | 4 +- .../{ => app}/main-routes/routes/pet-dex.js | 4 +- .../{ => app}/main-routes/routes/settings.js | 4 +- .../routes/{ => app}/my-pets/my-pets.js | 0 .../{ => app}/my-pets/steps/pet-profile.js | 4 +- .../routes/{ => app}/my-pets/steps/pets.js | 4 +- src/router/routes/create-account/account.js | 5 + .../routes/create-account/create-account.js | 13 +++ src/stories/PetRegister.stories.js | 2 +- src/stories/PetRegisterPage.stories.js | 2 +- src/stories/PetVetPage.stories.js | 2 +- src/stories/PetWeightPage.stories.js | 2 +- vite.config.js | 7 +- 67 files changed, 224 insertions(+), 176 deletions(-) delete mode 100644 src/layouts/app/index.html rename src/layouts/{app => }/components/Navigation/images/avatar.svg (100%) rename src/layouts/{app => }/components/Navigation/images/bell.svg (100%) rename src/layouts/{app => }/components/Navigation/images/exit.svg (100%) rename src/layouts/{app => }/components/Navigation/images/menu.svg (100%) rename src/layouts/{app => }/components/Navigation/index.js (96%) rename src/layouts/{app => }/components/Navigation/index.scss (100%) rename src/layouts/{app => }/components/SideMenu/images/configuracoes.svg (100%) rename src/layouts/{app => }/components/SideMenu/images/conta.svg (100%) rename src/layouts/{app => }/components/SideMenu/images/doacoes.svg (100%) rename src/layouts/{app => }/components/SideMenu/images/exit.svg (100%) rename src/layouts/{app => }/components/SideMenu/images/exitmenu.svg (100%) rename src/layouts/{app => }/components/SideMenu/images/meuspets.svg (100%) rename src/layouts/{app => }/components/SideMenu/images/notifications.svg (100%) rename src/layouts/{app => }/components/SideMenu/images/perfil.svg (100%) rename src/layouts/{app => }/components/SideMenu/images/petdex.svg (100%) rename src/layouts/{app => }/components/SideMenu/index.js (65%) rename src/layouts/{app => }/components/SideMenu/index.scss (100%) rename src/layouts/{app => }/index.js (89%) rename src/layouts/{app => }/index.scss (100%) rename src/layouts/{app => }/pages/NoPetRegirested/images/no-pet-regirested-page.png (100%) rename src/layouts/{app => }/pages/NoPetRegirested/index.js (96%) rename src/layouts/{app => }/pages/NoPetRegirested/index.scss (100%) rename src/layouts/{app => }/pages/PetRegister/index.js (93%) rename src/layouts/{app => }/pages/PetRegister/index.scss (100%) rename src/layouts/{app => }/pages/PetRegister/index.spec.js (91%) rename src/layouts/{app => }/pages/PetVet/images/cuidadosEspeciais.svg (100%) rename src/layouts/{app => }/pages/PetVet/images/estetoscopio.svg (100%) rename src/layouts/{app => }/pages/PetVet/index.js (95%) rename src/layouts/{app => }/pages/PetVet/index.scss (100%) rename src/layouts/{app => }/pages/PetVet/index.spec.js (100%) rename src/layouts/{app => }/pages/PetWeight/index.js (93%) rename src/layouts/{app => }/pages/PetWeight/index.scss (100%) rename src/layouts/{app => }/pages/PetWeight/petWeightPage.spec.js (100%) create mode 100644 src/layouts/sample-page/index.html rename src/layouts/{app => }/utils/scrollable-sidemenu.js (100%) rename src/router/routes/{ => app}/add-pet/add-pet.js (100%) rename src/router/routes/{ => app}/add-pet/steps/birthday.js (73%) rename src/router/routes/{ => app}/add-pet/steps/name.js (74%) rename src/router/routes/{ => app}/add-pet/steps/petvet.js (74%) rename src/router/routes/{ => app}/add-pet/steps/race.js (74%) rename src/router/routes/{ => app}/add-pet/steps/register.js (73%) rename src/router/routes/{ => app}/add-pet/steps/size.js (74%) rename src/router/routes/{ => app}/add-pet/steps/weight.js (73%) rename src/router/routes/{ => app}/main-routes/main-routes.js (100%) rename src/router/routes/{ => app}/main-routes/routes/account.js (74%) rename src/router/routes/{ => app}/main-routes/routes/donates.js (74%) rename src/router/routes/{ => app}/main-routes/routes/error.js (81%) rename src/router/routes/{ => app}/main-routes/routes/home.js (72%) rename src/router/routes/{ => app}/main-routes/routes/pet-dex.js (74%) rename src/router/routes/{ => app}/main-routes/routes/settings.js (74%) rename src/router/routes/{ => app}/my-pets/my-pets.js (100%) rename src/router/routes/{ => app}/my-pets/steps/pet-profile.js (73%) rename src/router/routes/{ => app}/my-pets/steps/pets.js (74%) create mode 100644 src/router/routes/create-account/account.js create mode 100644 src/router/routes/create-account/create-account.js diff --git a/jsconfig.json b/jsconfig.json index 8d03554a..0b580cd3 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -3,7 +3,11 @@ "types": ["vitest/globals"], "baseUrl": ".", "paths": { - "@testing-library/vanilla": ["src/__tests__/index.js"] + "@testing-library/vanilla": ["src/__tests__/index.js"], + "~src/*": ["src/*"], + "~styles/*": ["src/styles/*"], + "~stories/*": ["src/stories/*"], + "~layouts/*": ["src/layouts/*"] } } } diff --git a/package.json b/package.json index eff3408f..9e05dc5a 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-alias": "1.1.2", "eslint-import-resolver-jsconfig": "1.1.0", "eslint-import-resolver-node": "0.3.9", "eslint-plugin-import": "^2.29.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9cf67d98..5593918a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -94,6 +94,9 @@ devDependencies: eslint-config-prettier: specifier: ^9.1.0 version: 9.1.0(eslint@8.57.0) + eslint-import-resolver-alias: + specifier: 1.1.2 + version: 1.1.2(eslint-plugin-import@2.29.1) eslint-import-resolver-jsconfig: specifier: 1.1.0 version: 1.1.0 @@ -5339,6 +5342,15 @@ packages: eslint: 8.57.0 dev: true + /eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.29.1): + resolution: {integrity: sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==} + engines: {node: '>= 4'} + peerDependencies: + eslint-plugin-import: '>=1.4.0' + dependencies: + eslint-plugin-import: 2.29.1(eslint@8.57.0) + dev: true + /eslint-import-resolver-jsconfig@1.1.0: resolution: {integrity: sha512-MEiD/zyEkVVwnblRI058/0liYrKXMUwgAtM4EKrTldrThb1AvgPIQeR4emDKC2IotTuWF7KzekvGP+KLhtM3rw==} dependencies: diff --git a/src/components/AddPet/index.js b/src/components/AddPet/index.js index 74730448..e7d59525 100644 --- a/src/components/AddPet/index.js +++ b/src/components/AddPet/index.js @@ -1,11 +1,10 @@ import { Component } from 'pet-dex-utilities'; -import Sliding from '../Sliding'; +import PetRegister from '~layouts/pages/PetRegister'; +import PetVetPage from '~layouts/pages/PetVet'; +import PetWeight from '~layouts/pages/PetWeight'; import ProgressBar from '../ProgressBar'; - -import PetVetPage from '../../layouts/app/pages/PetVet'; -import PetWeight from '../../layouts/app/pages/PetWeight'; -import PetRegister from '../../layouts/app/pages/PetRegister'; +import Sliding from '../Sliding'; import arrowLeft from './assets/arrow-left.svg'; diff --git a/src/layouts/app/index.html b/src/layouts/app/index.html deleted file mode 100644 index 1ddfd058..00000000 --- a/src/layouts/app/index.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - Pet Hat - - - - - - - - - - - - - - - - - -
- - -
-
- - diff --git a/src/layouts/app/components/Navigation/images/avatar.svg b/src/layouts/components/Navigation/images/avatar.svg similarity index 100% rename from src/layouts/app/components/Navigation/images/avatar.svg rename to src/layouts/components/Navigation/images/avatar.svg diff --git a/src/layouts/app/components/Navigation/images/bell.svg b/src/layouts/components/Navigation/images/bell.svg similarity index 100% rename from src/layouts/app/components/Navigation/images/bell.svg rename to src/layouts/components/Navigation/images/bell.svg diff --git a/src/layouts/app/components/Navigation/images/exit.svg b/src/layouts/components/Navigation/images/exit.svg similarity index 100% rename from src/layouts/app/components/Navigation/images/exit.svg rename to src/layouts/components/Navigation/images/exit.svg diff --git a/src/layouts/app/components/Navigation/images/menu.svg b/src/layouts/components/Navigation/images/menu.svg similarity index 100% rename from src/layouts/app/components/Navigation/images/menu.svg rename to src/layouts/components/Navigation/images/menu.svg diff --git a/src/layouts/app/components/Navigation/index.js b/src/layouts/components/Navigation/index.js similarity index 96% rename from src/layouts/app/components/Navigation/index.js rename to src/layouts/components/Navigation/index.js index 1f529662..a8059669 100644 --- a/src/layouts/app/components/Navigation/index.js +++ b/src/layouts/components/Navigation/index.js @@ -1,7 +1,7 @@ import { Component } from 'pet-dex-utilities'; import './index.scss'; -import petUrl from '../../../../images/pet-dex.svg'; +import petUrl from '../../../images/pet-dex.svg'; import avatarUrl from './images/avatar.svg'; import bellUrl from './images/bell.svg'; import exitUrl from './images/exit.svg'; diff --git a/src/layouts/app/components/Navigation/index.scss b/src/layouts/components/Navigation/index.scss similarity index 100% rename from src/layouts/app/components/Navigation/index.scss rename to src/layouts/components/Navigation/index.scss diff --git a/src/layouts/app/components/SideMenu/images/configuracoes.svg b/src/layouts/components/SideMenu/images/configuracoes.svg similarity index 100% rename from src/layouts/app/components/SideMenu/images/configuracoes.svg rename to src/layouts/components/SideMenu/images/configuracoes.svg diff --git a/src/layouts/app/components/SideMenu/images/conta.svg b/src/layouts/components/SideMenu/images/conta.svg similarity index 100% rename from src/layouts/app/components/SideMenu/images/conta.svg rename to src/layouts/components/SideMenu/images/conta.svg diff --git a/src/layouts/app/components/SideMenu/images/doacoes.svg b/src/layouts/components/SideMenu/images/doacoes.svg similarity index 100% rename from src/layouts/app/components/SideMenu/images/doacoes.svg rename to src/layouts/components/SideMenu/images/doacoes.svg diff --git a/src/layouts/app/components/SideMenu/images/exit.svg b/src/layouts/components/SideMenu/images/exit.svg similarity index 100% rename from src/layouts/app/components/SideMenu/images/exit.svg rename to src/layouts/components/SideMenu/images/exit.svg diff --git a/src/layouts/app/components/SideMenu/images/exitmenu.svg b/src/layouts/components/SideMenu/images/exitmenu.svg similarity index 100% rename from src/layouts/app/components/SideMenu/images/exitmenu.svg rename to src/layouts/components/SideMenu/images/exitmenu.svg diff --git a/src/layouts/app/components/SideMenu/images/meuspets.svg b/src/layouts/components/SideMenu/images/meuspets.svg similarity index 100% rename from src/layouts/app/components/SideMenu/images/meuspets.svg rename to src/layouts/components/SideMenu/images/meuspets.svg diff --git a/src/layouts/app/components/SideMenu/images/notifications.svg b/src/layouts/components/SideMenu/images/notifications.svg similarity index 100% rename from src/layouts/app/components/SideMenu/images/notifications.svg rename to src/layouts/components/SideMenu/images/notifications.svg diff --git a/src/layouts/app/components/SideMenu/images/perfil.svg b/src/layouts/components/SideMenu/images/perfil.svg similarity index 100% rename from src/layouts/app/components/SideMenu/images/perfil.svg rename to src/layouts/components/SideMenu/images/perfil.svg diff --git a/src/layouts/app/components/SideMenu/images/petdex.svg b/src/layouts/components/SideMenu/images/petdex.svg similarity index 100% rename from src/layouts/app/components/SideMenu/images/petdex.svg rename to src/layouts/components/SideMenu/images/petdex.svg diff --git a/src/layouts/app/components/SideMenu/index.js b/src/layouts/components/SideMenu/index.js similarity index 65% rename from src/layouts/app/components/SideMenu/index.js rename to src/layouts/components/SideMenu/index.js index 04c9bb0b..e38cfc95 100644 --- a/src/layouts/app/components/SideMenu/index.js +++ b/src/layouts/components/SideMenu/index.js @@ -1,6 +1,7 @@ import { Component } from 'pet-dex-utilities'; -import { UserService } from '../../../../services/userService'; -import petUrl from '../../../../images/pet-dex.svg'; +import PetAvatar from '../../../components/PetAvatar'; +import petUrl from '../../../images/pet-dex.svg'; +import { UserService } from '../../../services/userService'; import configuracoes from './images/configuracoes.svg'; import conta from './images/conta.svg'; import doacoes from './images/doacoes.svg'; @@ -10,7 +11,6 @@ import meusPets from './images/meuspets.svg'; import notificacoes from './images/notifications.svg'; import perfil from './images/perfil.svg'; import petdex from './images/petdex.svg'; -import PetAvatar from '../../../../components/PetAvatar'; import './index.scss'; const html = ` @@ -34,12 +34,32 @@ const html = `
diff --git a/src/layouts/app/components/SideMenu/index.scss b/src/layouts/components/SideMenu/index.scss similarity index 100% rename from src/layouts/app/components/SideMenu/index.scss rename to src/layouts/components/SideMenu/index.scss diff --git a/src/layouts/index.html b/src/layouts/index.html index 9c2cfa1d..1ddfd058 100644 --- a/src/layouts/index.html +++ b/src/layouts/index.html @@ -7,16 +7,90 @@ Pet Hat - + + + + + + + + + + + + + + -
+
+ + +
+
diff --git a/src/layouts/app/index.js b/src/layouts/index.js similarity index 89% rename from src/layouts/app/index.js rename to src/layouts/index.js index 193daa99..eaee2455 100644 --- a/src/layouts/app/index.js +++ b/src/layouts/index.js @@ -1,10 +1,10 @@ import { extractElements } from 'pet-dex-utilities'; -import mainRouter from '../../router/main-router'; -import { initializeSwiper } from '../../utils/swiper'; +import mainRouter from '../router/main-router'; +import { initializeSwiper } from '../utils/swiper'; import Navigation from './components/Navigation'; import SideMenu from './components/SideMenu'; -import initializeScrollable from './utils/scrollable-sidemenu'; import './index.scss'; +import initializeScrollable from './utils/scrollable-sidemenu'; document.addEventListener('DOMContentLoaded', () => { const selected = extractElements([document.body]); diff --git a/src/layouts/app/index.scss b/src/layouts/index.scss similarity index 100% rename from src/layouts/app/index.scss rename to src/layouts/index.scss diff --git a/src/layouts/app/pages/NoPetRegirested/images/no-pet-regirested-page.png b/src/layouts/pages/NoPetRegirested/images/no-pet-regirested-page.png similarity index 100% rename from src/layouts/app/pages/NoPetRegirested/images/no-pet-regirested-page.png rename to src/layouts/pages/NoPetRegirested/images/no-pet-regirested-page.png diff --git a/src/layouts/app/pages/NoPetRegirested/index.js b/src/layouts/pages/NoPetRegirested/index.js similarity index 96% rename from src/layouts/app/pages/NoPetRegirested/index.js rename to src/layouts/pages/NoPetRegirested/index.js index 94a93aea..f2b8f7f5 100644 --- a/src/layouts/app/pages/NoPetRegirested/index.js +++ b/src/layouts/pages/NoPetRegirested/index.js @@ -1,6 +1,6 @@ import { Component } from 'pet-dex-utilities'; import { Router } from 'vanilla-routing'; -import Button from '../../../../components/Button'; +import Button from '~src/components/Button'; import petUrl from './images/no-pet-regirested-page.png'; import './index.scss'; diff --git a/src/layouts/app/pages/NoPetRegirested/index.scss b/src/layouts/pages/NoPetRegirested/index.scss similarity index 100% rename from src/layouts/app/pages/NoPetRegirested/index.scss rename to src/layouts/pages/NoPetRegirested/index.scss diff --git a/src/layouts/app/pages/PetRegister/index.js b/src/layouts/pages/PetRegister/index.js similarity index 93% rename from src/layouts/app/pages/PetRegister/index.js rename to src/layouts/pages/PetRegister/index.js index 34741b40..2c31018c 100644 --- a/src/layouts/app/pages/PetRegister/index.js +++ b/src/layouts/pages/PetRegister/index.js @@ -1,6 +1,6 @@ import { Component } from 'pet-dex-utilities'; -import Button from '../../../../components/Button'; -import PetCard from '../../../../components/PetCard'; +import Button from '~src/components/Button'; +import PetCard from '~src/components/PetCard'; import './index.scss'; const events = ['select:card', 'submit']; diff --git a/src/layouts/app/pages/PetRegister/index.scss b/src/layouts/pages/PetRegister/index.scss similarity index 100% rename from src/layouts/app/pages/PetRegister/index.scss rename to src/layouts/pages/PetRegister/index.scss diff --git a/src/layouts/app/pages/PetRegister/index.spec.js b/src/layouts/pages/PetRegister/index.spec.js similarity index 91% rename from src/layouts/app/pages/PetRegister/index.spec.js rename to src/layouts/pages/PetRegister/index.spec.js index 82984c7d..e7821de0 100644 --- a/src/layouts/app/pages/PetRegister/index.spec.js +++ b/src/layouts/pages/PetRegister/index.spec.js @@ -1,11 +1,11 @@ -import { describe, expect, it } from 'vitest'; -import { render, screen } from '@testing-library/vanilla'; import { userEvent } from '@testing-library/user-event'; +import { render, screen } from '@testing-library/vanilla'; +import { describe, expect, it } from 'vitest'; -import afghanHound from '../../../../stories/assets/petRegisterPage/afghanHound.svg'; -import akita from '../../../../stories/assets/petRegisterPage/akita.svg'; -import beagle from '../../../../stories/assets/petRegisterPage/beagle.svg'; -import mixedBreed from '../../../../stories/assets/petRegisterPage/mixedBreed.svg'; +import afghanHound from '~stories/assets/petRegisterPage/afghanHound.svg'; +import akita from '~stories/assets/petRegisterPage/akita.svg'; +import beagle from '~stories/assets/petRegisterPage/beagle.svg'; +import mixedBreed from '~stories/assets/petRegisterPage/mixedBreed.svg'; import PetRegisterPage from './index'; diff --git a/src/layouts/app/pages/PetVet/images/cuidadosEspeciais.svg b/src/layouts/pages/PetVet/images/cuidadosEspeciais.svg similarity index 100% rename from src/layouts/app/pages/PetVet/images/cuidadosEspeciais.svg rename to src/layouts/pages/PetVet/images/cuidadosEspeciais.svg diff --git a/src/layouts/app/pages/PetVet/images/estetoscopio.svg b/src/layouts/pages/PetVet/images/estetoscopio.svg similarity index 100% rename from src/layouts/app/pages/PetVet/images/estetoscopio.svg rename to src/layouts/pages/PetVet/images/estetoscopio.svg diff --git a/src/layouts/app/pages/PetVet/index.js b/src/layouts/pages/PetVet/index.js similarity index 95% rename from src/layouts/app/pages/PetVet/index.js rename to src/layouts/pages/PetVet/index.js index 31e32e0c..e9b2d28f 100644 --- a/src/layouts/app/pages/PetVet/index.js +++ b/src/layouts/pages/PetVet/index.js @@ -1,11 +1,11 @@ import { Component } from 'pet-dex-utilities'; -import TextArea from '../../../../components/TextArea'; -import Button from '../../../../components/Button'; -import Radio from '../../../../components/RadioButton'; -import Vaccine from '../../../../components/Vaccine'; +import Button from '~src/components/Button'; +import Radio from '~src/components/RadioButton'; +import TextArea from '~src/components/TextArea'; +import Vaccine from '~src/components/Vaccine'; -import estetoscopio from './images/estetoscopio.svg'; import cuidadosEspeciais from './images/cuidadosEspeciais.svg'; +import estetoscopio from './images/estetoscopio.svg'; import './index.scss'; diff --git a/src/layouts/app/pages/PetVet/index.scss b/src/layouts/pages/PetVet/index.scss similarity index 100% rename from src/layouts/app/pages/PetVet/index.scss rename to src/layouts/pages/PetVet/index.scss diff --git a/src/layouts/app/pages/PetVet/index.spec.js b/src/layouts/pages/PetVet/index.spec.js similarity index 100% rename from src/layouts/app/pages/PetVet/index.spec.js rename to src/layouts/pages/PetVet/index.spec.js diff --git a/src/layouts/app/pages/PetWeight/index.js b/src/layouts/pages/PetWeight/index.js similarity index 93% rename from src/layouts/app/pages/PetWeight/index.js rename to src/layouts/pages/PetWeight/index.js index e1676039..117473bb 100644 --- a/src/layouts/app/pages/PetWeight/index.js +++ b/src/layouts/pages/PetWeight/index.js @@ -1,9 +1,9 @@ import { Component } from 'pet-dex-utilities'; -import Button from '../../../../components/Button'; -import RadioButton from '../../../../components/RadioButton'; -import RangeSlider from '../../../../components/RangeSlider'; -import TextInput from '../../../../components/TextInput'; -import UploadImage from '../../../../components/UploadImage'; +import Button from '~src/components/Button'; +import RadioButton from '~src/components/RadioButton'; +import RangeSlider from '~src/components/RangeSlider'; +import TextInput from '~src/components/TextInput'; +import UploadImage from '~src/components/UploadImage'; import './index.scss'; const events = ['submit']; diff --git a/src/layouts/app/pages/PetWeight/index.scss b/src/layouts/pages/PetWeight/index.scss similarity index 100% rename from src/layouts/app/pages/PetWeight/index.scss rename to src/layouts/pages/PetWeight/index.scss diff --git a/src/layouts/app/pages/PetWeight/petWeightPage.spec.js b/src/layouts/pages/PetWeight/petWeightPage.spec.js similarity index 100% rename from src/layouts/app/pages/PetWeight/petWeightPage.spec.js rename to src/layouts/pages/PetWeight/petWeightPage.spec.js diff --git a/src/layouts/sample-page/index.html b/src/layouts/sample-page/index.html new file mode 100644 index 00000000..3cc82f6b --- /dev/null +++ b/src/layouts/sample-page/index.html @@ -0,0 +1,11 @@ + + + + + + Document + + + Hello world + + diff --git a/src/layouts/app/utils/scrollable-sidemenu.js b/src/layouts/utils/scrollable-sidemenu.js similarity index 100% rename from src/layouts/app/utils/scrollable-sidemenu.js rename to src/layouts/utils/scrollable-sidemenu.js diff --git a/src/router/main-router.js b/src/router/main-router.js index a7ef79ae..751aee18 100644 --- a/src/router/main-router.js +++ b/src/router/main-router.js @@ -1,13 +1,15 @@ import { BrowserRoute } from 'vanilla-routing'; -import addPet from './routes/add-pet/add-pet'; -import mainRoutes from './routes/main-routes/main-routes'; -import myPets from './routes/my-pets/my-pets'; +import addPet from './routes/app/add-pet/add-pet'; +import mainRoutes from './routes/app/main-routes/main-routes'; +import myPets from './routes/app/my-pets/my-pets'; +import account from './routes/create-account/account'; // export default function mainRouter() { const routes = [ ...Object.values(mainRoutes), ...Object.values(myPets), ...Object.values(addPet), + ...Object.values(account), // ]; BrowserRoute(routes); diff --git a/src/router/routes/add-pet/add-pet.js b/src/router/routes/app/add-pet/add-pet.js similarity index 100% rename from src/router/routes/add-pet/add-pet.js rename to src/router/routes/app/add-pet/add-pet.js diff --git a/src/router/routes/add-pet/steps/birthday.js b/src/router/routes/app/add-pet/steps/birthday.js similarity index 73% rename from src/router/routes/add-pet/steps/birthday.js rename to src/router/routes/app/add-pet/steps/birthday.js index 04878488..7849b9c0 100644 --- a/src/router/routes/add-pet/steps/birthday.js +++ b/src/router/routes/app/add-pet/steps/birthday.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pet-birthday', + pathname: '/pet-birthday', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/add-pet/steps/name.js b/src/router/routes/app/add-pet/steps/name.js similarity index 74% rename from src/router/routes/add-pet/steps/name.js rename to src/router/routes/app/add-pet/steps/name.js index ebe9097a..f4b5532c 100644 --- a/src/router/routes/add-pet/steps/name.js +++ b/src/router/routes/app/add-pet/steps/name.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pet-name', + pathname: '/pet-name', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/add-pet/steps/petvet.js b/src/router/routes/app/add-pet/steps/petvet.js similarity index 74% rename from src/router/routes/add-pet/steps/petvet.js rename to src/router/routes/app/add-pet/steps/petvet.js index 3f39ef90..08104be3 100644 --- a/src/router/routes/add-pet/steps/petvet.js +++ b/src/router/routes/app/add-pet/steps/petvet.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pet-vet', + pathname: '/pet-vet', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/add-pet/steps/race.js b/src/router/routes/app/add-pet/steps/race.js similarity index 74% rename from src/router/routes/add-pet/steps/race.js rename to src/router/routes/app/add-pet/steps/race.js index fc0975b7..099fe9c4 100644 --- a/src/router/routes/add-pet/steps/race.js +++ b/src/router/routes/app/add-pet/steps/race.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pet-race', + pathname: '/pet-race', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/add-pet/steps/register.js b/src/router/routes/app/add-pet/steps/register.js similarity index 73% rename from src/router/routes/add-pet/steps/register.js rename to src/router/routes/app/add-pet/steps/register.js index 36efb960..94753a19 100644 --- a/src/router/routes/add-pet/steps/register.js +++ b/src/router/routes/app/add-pet/steps/register.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pet-register', + pathname: '/pet-register', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/add-pet/steps/size.js b/src/router/routes/app/add-pet/steps/size.js similarity index 74% rename from src/router/routes/add-pet/steps/size.js rename to src/router/routes/app/add-pet/steps/size.js index 2975775c..f4fa7f54 100644 --- a/src/router/routes/add-pet/steps/size.js +++ b/src/router/routes/app/add-pet/steps/size.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pet-size', + pathname: '/pet-size', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/add-pet/steps/weight.js b/src/router/routes/app/add-pet/steps/weight.js similarity index 73% rename from src/router/routes/add-pet/steps/weight.js rename to src/router/routes/app/add-pet/steps/weight.js index e5d74704..2dd6ac01 100644 --- a/src/router/routes/add-pet/steps/weight.js +++ b/src/router/routes/app/add-pet/steps/weight.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pet-weight', + pathname: '/pet-weight', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/main-routes/main-routes.js b/src/router/routes/app/main-routes/main-routes.js similarity index 100% rename from src/router/routes/main-routes/main-routes.js rename to src/router/routes/app/main-routes/main-routes.js diff --git a/src/router/routes/main-routes/routes/account.js b/src/router/routes/app/main-routes/routes/account.js similarity index 74% rename from src/router/routes/main-routes/routes/account.js rename to src/router/routes/app/main-routes/routes/account.js index 7a4efb89..901ad359 100644 --- a/src/router/routes/main-routes/routes/account.js +++ b/src/router/routes/app/main-routes/routes/account.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/account', + pathname: '/account', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/main-routes/routes/donates.js b/src/router/routes/app/main-routes/routes/donates.js similarity index 74% rename from src/router/routes/main-routes/routes/donates.js rename to src/router/routes/app/main-routes/routes/donates.js index ae29d8c8..2d9b924a 100644 --- a/src/router/routes/main-routes/routes/donates.js +++ b/src/router/routes/app/main-routes/routes/donates.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/donates', + pathname: '/donates', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/main-routes/routes/error.js b/src/router/routes/app/main-routes/routes/error.js similarity index 81% rename from src/router/routes/main-routes/routes/error.js rename to src/router/routes/app/main-routes/routes/error.js index 12c14736..427d1d40 100644 --- a/src/router/routes/main-routes/routes/error.js +++ b/src/router/routes/app/main-routes/routes/error.js @@ -1,4 +1,4 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { pathname: '*', diff --git a/src/router/routes/main-routes/routes/home.js b/src/router/routes/app/main-routes/routes/home.js similarity index 72% rename from src/router/routes/main-routes/routes/home.js rename to src/router/routes/app/main-routes/routes/home.js index 133bed06..09e72e9d 100644 --- a/src/router/routes/main-routes/routes/home.js +++ b/src/router/routes/app/main-routes/routes/home.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/', + pathname: '/', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/main-routes/routes/pet-dex.js b/src/router/routes/app/main-routes/routes/pet-dex.js similarity index 74% rename from src/router/routes/main-routes/routes/pet-dex.js rename to src/router/routes/app/main-routes/routes/pet-dex.js index c6f651af..37fa15e1 100644 --- a/src/router/routes/main-routes/routes/pet-dex.js +++ b/src/router/routes/app/main-routes/routes/pet-dex.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pet-dex', + pathname: '/pet-dex', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/main-routes/routes/settings.js b/src/router/routes/app/main-routes/routes/settings.js similarity index 74% rename from src/router/routes/main-routes/routes/settings.js rename to src/router/routes/app/main-routes/routes/settings.js index 372dc5b3..04f4396d 100644 --- a/src/router/routes/main-routes/routes/settings.js +++ b/src/router/routes/app/main-routes/routes/settings.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/settings', + pathname: '/settings', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/my-pets/my-pets.js b/src/router/routes/app/my-pets/my-pets.js similarity index 100% rename from src/router/routes/my-pets/my-pets.js rename to src/router/routes/app/my-pets/my-pets.js diff --git a/src/router/routes/my-pets/steps/pet-profile.js b/src/router/routes/app/my-pets/steps/pet-profile.js similarity index 73% rename from src/router/routes/my-pets/steps/pet-profile.js rename to src/router/routes/app/my-pets/steps/pet-profile.js index 8cf6583e..80485795 100644 --- a/src/router/routes/my-pets/steps/pet-profile.js +++ b/src/router/routes/app/my-pets/steps/pet-profile.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pet-profile', + pathname: '/pet-profile', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/my-pets/steps/pets.js b/src/router/routes/app/my-pets/steps/pets.js similarity index 74% rename from src/router/routes/my-pets/steps/pets.js rename to src/router/routes/app/my-pets/steps/pets.js index b67e3c9c..2311e331 100644 --- a/src/router/routes/my-pets/steps/pets.js +++ b/src/router/routes/app/my-pets/steps/pets.js @@ -1,7 +1,7 @@ -import NoPetRegirestedPage from '../../../../layouts/app/pages/NoPetRegirested'; +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; export default { - pathname: '/app/pets', + pathname: '/pets', element: () => { const $content = document.createElement('div'); $content.classList.add('home__content-page'); diff --git a/src/router/routes/create-account/account.js b/src/router/routes/create-account/account.js new file mode 100644 index 00000000..c0e4ae1b --- /dev/null +++ b/src/router/routes/create-account/account.js @@ -0,0 +1,5 @@ +import createAccount from './create-account'; + +export default { + createAccount, +}; diff --git a/src/router/routes/create-account/create-account.js b/src/router/routes/create-account/create-account.js new file mode 100644 index 00000000..89b2f4d2 --- /dev/null +++ b/src/router/routes/create-account/create-account.js @@ -0,0 +1,13 @@ +import NoPetRegirestedPage from '~src/layouts/pages/NoPetRegirested'; + +export default { + pathname: '/account/create-account', + element: () => { + const $content = document.createElement('div'); + $content.classList.add('home__content-page'); + $content.style.backgroundColor = 'orange'; + const noPetRegirestedPage = new NoPetRegirestedPage(); + noPetRegirestedPage.mount($content); + return $content; + }, +}; diff --git a/src/stories/PetRegister.stories.js b/src/stories/PetRegister.stories.js index d909c332..1906ea04 100644 --- a/src/stories/PetRegister.stories.js +++ b/src/stories/PetRegister.stories.js @@ -1,4 +1,4 @@ -import PetRegister from '../layouts/app/pages/PetRegister'; +import PetRegister from '~layouts/pages/PetRegister'; export default { title: 'Pages/PetProfile', diff --git a/src/stories/PetRegisterPage.stories.js b/src/stories/PetRegisterPage.stories.js index 4182e93c..8178e611 100644 --- a/src/stories/PetRegisterPage.stories.js +++ b/src/stories/PetRegisterPage.stories.js @@ -1,4 +1,4 @@ -import PetRegisterPage from '../layouts/app/pages/PetRegister'; +import PetRegisterPage from '~layouts/pages/PetRegister'; import afghanHound from './assets/petRegisterPage/afghanHound.svg'; import akita from './assets/petRegisterPage/akita.svg'; diff --git a/src/stories/PetVetPage.stories.js b/src/stories/PetVetPage.stories.js index bb533915..4a0dc0a2 100644 --- a/src/stories/PetVetPage.stories.js +++ b/src/stories/PetVetPage.stories.js @@ -1,4 +1,4 @@ -import PetVetPage from '../layouts/app/pages/PetVet'; +import PetVetPage from '~layouts/pages/PetVet'; export default { title: 'Pages/PetVetPage', diff --git a/src/stories/PetWeightPage.stories.js b/src/stories/PetWeightPage.stories.js index 7f27364f..7b7f072d 100644 --- a/src/stories/PetWeightPage.stories.js +++ b/src/stories/PetWeightPage.stories.js @@ -1,4 +1,4 @@ -import PetWeightPage from '../layouts/app/pages/PetWeight'; +import PetWeightPage from '~layouts/pages/PetWeight'; export default { title: 'Pages/PetWeightPage', diff --git a/vite.config.js b/vite.config.js index be6ec5ff..a32dfaec 100644 --- a/vite.config.js +++ b/vite.config.js @@ -6,7 +6,7 @@ import jsconfigPaths from 'vite-jsconfig-paths'; import { VitePWA } from 'vite-plugin-pwa'; export default defineConfig({ - root: resolve(__dirname, 'src/layouts'), + root: resolve(__dirname, 'src/layouts/'), define: { __isBrowser__: true, }, @@ -34,13 +34,16 @@ export default defineConfig({ rollupOptions: { input: { index: resolve(__dirname, 'src/layouts/index.html'), - home: resolve(__dirname, 'src/layouts/app/index.html'), + teste: resolve(__dirname, 'src/layouts/sample-page/index.html'), }, }, }, resolve: { alias: { + '~src': resolve(__dirname, 'src'), '~styles': resolve(__dirname, 'src/styles'), + '~stories': resolve(__dirname, 'src/stories'), + '~layouts': resolve(__dirname, 'src/layouts'), }, }, plugins: [