diff --git a/pwa/.prettierrc b/pwa/.prettierrc index ea62a45491fcfe36c1b79928ef5d65abd176e504..fb95675f4f7dbeaccdb44630f259aa2c87595db3 100644 --- a/pwa/.prettierrc +++ b/pwa/.prettierrc @@ -2,7 +2,7 @@ "semi": false, "trailingComma": "es5", "singleQuote": true, - "printWidth": 80, + "printWidth": 160, "tabWidth": 4, "useTabs": false, "arrowParens": "avoid", diff --git a/pwa/app/components/tabs/diagram.jsx b/pwa/app/components/tabs/diagram.jsx new file mode 100644 index 0000000000000000000000000000000000000000..9159d2418a70c0f1a3fca0d517849b1bad851938 --- /dev/null +++ b/pwa/app/components/tabs/diagram.jsx @@ -0,0 +1,3 @@ +export default function Diagram() { + return
Diagram
+} diff --git a/pwa/app/components/tabs/points.jsx b/pwa/app/components/tabs/points.jsx new file mode 100644 index 0000000000000000000000000000000000000000..90766cfed1ab942664aabbd432801d143fc4a18b --- /dev/null +++ b/pwa/app/components/tabs/points.jsx @@ -0,0 +1,3 @@ +export default function Points() { + return
Points
+} diff --git a/pwa/app/components/tabs/temporal.jsx b/pwa/app/components/tabs/temporal.jsx new file mode 100644 index 0000000000000000000000000000000000000000..724d3b2a468d00d716ebf885c95ddfee39ff6c5d --- /dev/null +++ b/pwa/app/components/tabs/temporal.jsx @@ -0,0 +1,3 @@ +export default function Temporal() { + return
Temporal
+} diff --git a/pwa/app/globals.css b/pwa/app/globals.css index d4b5078586e291f9dc7d6f04a380aa3c1b52b84b..ba7afea7427baacac5c20f8c208718ce6204b0a9 100644 --- a/pwa/app/globals.css +++ b/pwa/app/globals.css @@ -1 +1,23 @@ @import 'tailwindcss'; + +@keyframes grow { + 0% { + transform: scaleY(0); + opacity: 0; + } + 100% { + transform: scaleY(1); + opacity: 1; + } +} + +h1 { + @apply text-2xl font-bold; +} + +.bar { + transform-origin: bottom; + animation: grow 0.4s ease-out forwards; + opacity: 0; + transform: scaleY(0); +} diff --git a/pwa/app/page.tsx b/pwa/app/page.tsx index c6de6ee03f97b41b43cc58b77cd926d06a1ec78b..993bcbaceab4bb435e5dadc444936ad6f15d1e94 100644 --- a/pwa/app/page.tsx +++ b/pwa/app/page.tsx @@ -1,21 +1,83 @@ +'use client' + +import { useState } from 'react' +import { Search } from 'lucide-react' +import Temporal from './components/tabs/temporal' +import Points from './components/tabs/points' +import Diagram from './components/tabs/diagram' + +const tabs = [ + { key: 'temporal', label: 'Temporal' }, + { key: 'points', label: 'Points' }, + { key: 'diagram', label: 'Diagram' }, +] as const + +type TabKey = (typeof tabs)[number]['key'] + +const tabComponents: Record = { + temporal: Temporal, + points: Points, + diagram: Diagram, +} + export default function Home() { - const apiEntrypoint = process.env.NEXT_PUBLIC_ENTRYPOINT || "http://localhost:8000"; - - return ( -
-

FullStack Lab - REI 2022

-

Analyse des taxes locales françaises

- -
- ); + const [activeTab, setActiveTab] = useState('temporal') + const ActiveComponent = tabComponents[activeTab] + + return ( +
+
+
+
+
+
+
+
+
+

FullStack Lab

+
+ +
+

Visualisation

+
+ + +
+
+ +
+
+
+
+
+
+
+
+ + +
+
+
+ +
+
+
+ ) } diff --git a/pwa/app/services/diagram.services.tsx b/pwa/app/services/diagram.services.tsx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/pwa/app/services/points.services.tsx b/pwa/app/services/points.services.tsx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/pwa/app/services/temporal.services.tsx b/pwa/app/services/temporal.services.tsx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/pwa/package-lock.json b/pwa/package-lock.json index 4c2bd3393f5bbde764458c8218d9a75fc7457529..916116cdb1b0efe7feb7b9f9ddbdd1bab9813d96 100644 --- a/pwa/package-lock.json +++ b/pwa/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "@tailwindcss/postcss": "^4.1.18", + "lucide-react": "^0.563.0", "next": "^15", "postcss": "^8.5.6", "react": "^19", @@ -3797,6 +3798,15 @@ "loose-envify": "cli.js" } }, + "node_modules/lucide-react": { + "version": "0.563.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.563.0.tgz", + "integrity": "sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", diff --git a/pwa/package.json b/pwa/package.json index e99606b8587a1c107eb0428925af87cc2cbaa0ab..8a88c39d592a42e54bfd5ea46f6901dc2f490f14 100644 --- a/pwa/package.json +++ b/pwa/package.json @@ -13,6 +13,7 @@ }, "dependencies": { "@tailwindcss/postcss": "^4.1.18", + "lucide-react": "^0.563.0", "next": "^15", "postcss": "^8.5.6", "react": "^19", diff --git a/pwa/pnpm-lock.yaml b/pwa/pnpm-lock.yaml index 1a751358bae3ec758c45d596aca9e8b4d3c59521..b4bdbb43c98ca419e6aee1dcc66732cc93dc3002 100644 --- a/pwa/pnpm-lock.yaml +++ b/pwa/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@tailwindcss/postcss': specifier: ^4.1.18 version: 4.1.18 + lucide-react: + specifier: ^0.563.0 + version: 0.563.0(react@19.2.4) next: specifier: ^15 version: 15.5.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4) @@ -1141,6 +1144,11 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true + lucide-react@0.563.0: + resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -2636,6 +2644,10 @@ snapshots: dependencies: js-tokens: 4.0.0 + lucide-react@0.563.0(react@19.2.4): + dependencies: + react: 19.2.4 + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5