From a967e2774dc68b6fd7c1f6ce4b4227ba78a3ffb3 Mon Sep 17 00:00:00 2001 From: JuruSysadmin Date: Wed, 16 Jul 2025 09:39:32 -0300 Subject: [PATCH] =?UTF-8?q?ajuste=20na=20ordena=C3=A7=C3=A3o=20da=20timeli?= =?UTF-8?q?ne?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 + pnpm-lock.yaml | 241 ++++++++++++++++++ src/app/orders/find/page.tsx | 8 - src/components/orders/OrderTimeline.tsx | 7 +- src/components/orders/OrdersTable.tsx | 66 ++--- src/components/orders/OrdersTableBody.tsx | 24 +- .../components/OrderRowExpandable.tsx | 2 +- src/components/sidebar.tsx | 5 +- 8 files changed, 297 insertions(+), 59 deletions(-) diff --git a/package.json b/package.json index 64eec09..ab88a22 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,8 @@ "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", "@hookform/resolvers": "^3.9.1", + "@mantine/core": "^8.1.3", + "@mantine/hooks": "^8.1.3", "@material-tailwind/react": "^2.1.10", "@mui/material": "^7.0.2", "@radix-ui/react-accordion": "^1.2.2", @@ -71,6 +73,7 @@ "i18next": "^25.0.1", "input-otp": "1.4.1", "lucide-react": "^0.454.0", + "mantine-react-table": "2.0.0-beta.9", "next": "^15.2.4", "next-themes": "^0.4.4", "nprogress": "^0.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a1224db..19b9bfc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,12 @@ importers: '@hookform/resolvers': specifier: ^3.9.1 version: 3.10.0(react-hook-form@7.58.0(react@19.1.0)) + '@mantine/core': + specifier: ^8.1.3 + version: 8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': + specifier: ^8.1.3 + version: 8.1.3(react@19.1.0) '@material-tailwind/react': specifier: ^2.1.10 version: 2.1.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -179,6 +185,9 @@ importers: lucide-react: specifier: ^0.454.0 version: 0.454.0(react@19.1.0) + mantine-react-table: + specifier: 2.0.0-beta.9 + version: 2.0.0-beta.9(@mantine/core@8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@6.0.22(@mantine/core@8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.1.3(react@19.1.0))(dayjs@1.11.13)(react@19.1.0))(@mantine/hooks@8.1.3(react@19.1.0))(@tabler/icons-react@3.34.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next: specifier: ^15.2.4 version: 15.3.3(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -1277,6 +1286,12 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' + '@floating-ui/react@0.26.28': + resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} @@ -1497,6 +1512,31 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@mantine/core@8.1.3': + resolution: {integrity: sha512-2WOPC8GSN3MApet0MccSn6LaXRhcP6SVtZnbuHoqJ/atrfK7kLE66ILr4OXov7JAj1ASJ4Xk0bOXmu5fBExAvQ==} + peerDependencies: + '@mantine/hooks': 8.1.3 + react: ^18.x || ^19.x + react-dom: ^18.x || ^19.x + + '@mantine/dates@6.0.22': + resolution: {integrity: sha512-RwZzaRtyCdwXWrszjoDFUrYdy2s6sAZgXZzp+ytp0KJDm63+H+4ri1Qkv7bWKVBgrTP7alsxCIGHV2weEOZKog==} + peerDependencies: + '@mantine/core': 6.0.22 + '@mantine/hooks': 6.0.22 + dayjs: '>=1.0.0' + react: '>=16.8.0' + + '@mantine/hooks@8.1.3': + resolution: {integrity: sha512-yL4SbyYjrkmtIhscswajNz9RL0iO2+V8CMtOi0KISch2rPNvTAJNumFuZaXgj4UHeDc0JQYSmcZ+EW8NGm7xcQ==} + peerDependencies: + react: ^18.x || ^19.x + + '@mantine/utils@6.0.22': + resolution: {integrity: sha512-RSKlNZvxhMCkOFZ6slbYvZYbWjHUM+PxDQnupIOxIdsTZQQjx/BFfrfJ7kQFOP+g7MtpOds8weAetEs5obwMOQ==} + peerDependencies: + react: '>=16.8.0' + '@material-tailwind/react@2.1.10': resolution: {integrity: sha512-xGU/mLDKDBp/qZ8Dp2XR7fKcTpDuFeZEBqoL9Bk/29kakKxNxjUGYSRHEFLsyOFf4VIhU6WGHdIS7tOA3QGJHA==} peerDependencies: @@ -2459,6 +2499,14 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@tabler/icons-react@3.34.0': + resolution: {integrity: sha512-OpEIR2iZsIXECtAIMbn1zfKfQ3zKJjXyIZlkgOGUL9UkMCFycEiF2Y8AVfEQsyre/3FnBdlWJvGr0NU47n2TbQ==} + peerDependencies: + react: '>= 16' + + '@tabler/icons@3.34.0': + resolution: {integrity: sha512-jtVqv0JC1WU2TTEBN32D9+R6mc1iEBuPwLnBsWaR02SIEciu9aq5806AWkCHuObhQ4ERhhXErLEK7Fs+tEZxiA==} + '@tailwindcss/node@4.1.10': resolution: {integrity: sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==} @@ -2547,6 +2595,10 @@ packages: '@tailwindcss/postcss@4.1.10': resolution: {integrity: sha512-B+7r7ABZbkXJwpvt2VMnS6ujcDoR2OOcFaqrLIo1xbcdxje4Vf+VgJdBzNNbrAjBj/rLZ66/tlQ1knIGNLKOBQ==} + '@tanstack/match-sorter-utils@8.19.4': + resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} + engines: {node: '>=12'} + '@tanstack/query-core@5.80.7': resolution: {integrity: sha512-s09l5zeUKC8q7DCCCIkVSns8zZrK4ZDT6ryEjxNBFi68G4z2EBobBS7rdOY3r6W1WbUDpc1fe5oY+YO/+2UVUg==} @@ -2555,6 +2607,13 @@ packages: peerDependencies: react: ^18 || ^19 + '@tanstack/react-table@8.20.5': + resolution: {integrity: sha512-WEHopKw3znbUZ61s9i0+i9g8drmDo6asTWbrQh8Us63DAk/M0FkmIqERew6P71HI75ksZ2Pxyuf4vvKh9rAkiA==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + '@tanstack/react-table@8.21.3': resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} engines: {node: '>=12'} @@ -2562,16 +2621,29 @@ packages: react: '>=16.8' react-dom: '>=16.8' + '@tanstack/react-virtual@3.11.2': + resolution: {integrity: sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/react-virtual@3.13.10': resolution: {integrity: sha512-nvrzk4E9mWB4124YdJ7/yzwou7IfHxlSef6ugCFcBfRmsnsma3heciiiV97sBNxyc3VuwtZvmwXd0aB5BpucVw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/table-core@8.20.5': + resolution: {integrity: sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==} + engines: {node: '>=12'} + '@tanstack/table-core@8.21.3': resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} engines: {node: '>=12'} + '@tanstack/virtual-core@3.11.2': + resolution: {integrity: sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==} + '@tanstack/virtual-core@3.13.10': resolution: {integrity: sha512-sPEDhXREou5HyZYqSWIqdU580rsF6FGeN7vpzijmP3KTiOGjOMZASz4Y6+QKjiFQwhWrR58OP8izYaNGVxvViA==} @@ -4497,6 +4569,19 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + mantine-react-table@2.0.0-beta.9: + resolution: {integrity: sha512-ZdfcwebWaPERoDvAuk43VYcBCzamohARVclnbuepT0PHZ0wRcDPMBR+zgaocL+pFy8EXUGwvWTOKNh25ITpjNQ==} + engines: {node: '>=16'} + peerDependencies: + '@mantine/core': ^7.9 + '@mantine/dates': ^7.9 + '@mantine/hooks': ^7.9 + '@tabler/icons-react': '>=2.23.0' + clsx: '>=2' + dayjs: '>=1.11' + react: '>=18.0' + react-dom: '>=18.0' + material-ripple-effects@2.0.1: resolution: {integrity: sha512-hHlUkZAuXbP94lu02VgrPidbZ3hBtgXBtjlwR8APNqOIgDZMV8MCIcsclL8FmGJQHvnORyvoQgC965vPsiyXLQ==} @@ -5120,6 +5205,12 @@ packages: react-is@19.1.0: resolution: {integrity: sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==} + react-number-format@5.4.4: + resolution: {integrity: sha512-wOmoNZoOpvMminhifQYiYSTCLUDOiUbBunrMrMjA+dV52sY+vck1S4UhR6PkgnoCquvvMSeJjErXZ4qSaWCliA==} + peerDependencies: + react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-remove-scroll-bar@2.3.8: resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} @@ -5167,6 +5258,12 @@ packages: '@types/react': optional: true + react-textarea-autosize@8.5.9: + resolution: {integrity: sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==} + engines: {node: '>=10'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} peerDependencies: @@ -5236,6 +5333,9 @@ packages: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true + remove-accents@0.5.0: + resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} + request-progress@3.0.0: resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} @@ -5838,6 +5938,33 @@ packages: '@types/react': optional: true + use-composed-ref@1.4.0: + resolution: {integrity: sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-isomorphic-layout-effect@1.2.1: + resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-latest@1.3.0: + resolution: {integrity: sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + use-sidecar@1.1.3: resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} @@ -7162,6 +7289,14 @@ snapshots: react-dom: 19.1.0(react@19.1.0) tabbable: 6.2.0 + '@floating-ui/react@0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/react-dom': 2.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@floating-ui/utils': 0.2.9 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + tabbable: 6.2.0 + '@floating-ui/utils@0.2.9': {} '@hookform/resolvers@3.10.0(react-hook-form@7.58.0(react@19.1.0))': @@ -7442,6 +7577,36 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@mantine/core@8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/react': 0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.1.3(react@19.1.0) + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-number-format: 5.4.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-remove-scroll: 2.7.1(@types/react@19.1.8)(react@19.1.0) + react-textarea-autosize: 8.5.9(@types/react@19.1.8)(react@19.1.0) + type-fest: 4.41.0 + transitivePeerDependencies: + - '@types/react' + + '@mantine/dates@6.0.22(@mantine/core@8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.1.3(react@19.1.0))(dayjs@1.11.13)(react@19.1.0)': + dependencies: + '@mantine/core': 8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.1.3(react@19.1.0) + '@mantine/utils': 6.0.22(react@19.1.0) + dayjs: 1.11.13 + react: 19.1.0 + + '@mantine/hooks@8.1.3(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@mantine/utils@6.0.22(react@19.1.0)': + dependencies: + react: 19.1.0 + '@material-tailwind/react@2.1.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react': 0.19.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -8420,6 +8585,13 @@ snapshots: dependencies: tslib: 2.8.1 + '@tabler/icons-react@3.34.0(react@19.1.0)': + dependencies: + '@tabler/icons': 3.34.0 + react: 19.1.0 + + '@tabler/icons@3.34.0': {} + '@tailwindcss/node@4.1.10': dependencies: '@ampproject/remapping': 2.3.0 @@ -8492,6 +8664,10 @@ snapshots: postcss: 8.5.6 tailwindcss: 4.1.10 + '@tanstack/match-sorter-utils@8.19.4': + dependencies: + remove-accents: 0.5.0 + '@tanstack/query-core@5.80.7': {} '@tanstack/react-query@5.80.7(react@19.1.0)': @@ -8499,20 +8675,36 @@ snapshots: '@tanstack/query-core': 5.80.7 react: 19.1.0 + '@tanstack/react-table@8.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@tanstack/table-core': 8.20.5 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + '@tanstack/react-table@8.21.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/table-core': 8.21.3 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) + '@tanstack/react-virtual@3.11.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@tanstack/virtual-core': 3.11.2 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + '@tanstack/react-virtual@3.13.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/virtual-core': 3.13.10 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) + '@tanstack/table-core@8.20.5': {} + '@tanstack/table-core@8.21.3': {} + '@tanstack/virtual-core@3.11.2': {} + '@tanstack/virtual-core@3.13.10': {} '@testing-library/cypress@10.0.3(cypress@14.4.1)': @@ -10831,6 +11023,20 @@ snapshots: dependencies: tmpl: 1.0.5 + mantine-react-table@2.0.0-beta.9(@mantine/core@8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/dates@6.0.22(@mantine/core@8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.1.3(react@19.1.0))(dayjs@1.11.13)(react@19.1.0))(@mantine/hooks@8.1.3(react@19.1.0))(@tabler/icons-react@3.34.0(react@19.1.0))(clsx@2.1.1)(dayjs@1.11.13)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@mantine/core': 8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/dates': 6.0.22(@mantine/core@8.1.3(@mantine/hooks@8.1.3(react@19.1.0))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.1.3(react@19.1.0))(dayjs@1.11.13)(react@19.1.0) + '@mantine/hooks': 8.1.3(react@19.1.0) + '@tabler/icons-react': 3.34.0(react@19.1.0) + '@tanstack/match-sorter-utils': 8.19.4 + '@tanstack/react-table': 8.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/react-virtual': 3.11.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + clsx: 2.1.1 + dayjs: 1.11.13 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + material-ripple-effects@2.0.1: {} math-intrinsics@1.1.0: {} @@ -11490,6 +11696,11 @@ snapshots: react-is@19.1.0: {} + react-number-format@5.4.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll-bar@2.3.8(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 @@ -11538,6 +11749,15 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 + react-textarea-autosize@8.5.9(@types/react@19.1.8)(react@19.1.0): + dependencies: + '@babel/runtime': 7.27.6 + react: 19.1.0 + use-composed-ref: 1.4.0(@types/react@19.1.8)(react@19.1.0) + use-latest: 1.3.0(@types/react@19.1.8)(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + react-transition-group@4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.27.6 @@ -11622,6 +11842,8 @@ snapshots: dependencies: jsesc: 3.0.2 + remove-accents@0.5.0: {} + request-progress@3.0.0: dependencies: throttleit: 1.0.1 @@ -12266,6 +12488,25 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 + use-composed-ref@1.4.0(@types/react@19.1.8)(react@19.1.0): + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.8 + + use-isomorphic-layout-effect@1.2.1(@types/react@19.1.8)(react@19.1.0): + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.1.8 + + use-latest@1.3.0(@types/react@19.1.8)(react@19.1.0): + dependencies: + react: 19.1.0 + use-isomorphic-layout-effect: 1.2.1(@types/react@19.1.8)(react@19.1.0) + optionalDependencies: + '@types/react': 19.1.8 + use-sidecar@1.1.3(@types/react@19.1.8)(react@19.1.0): dependencies: detect-node-es: 1.1.0 diff --git a/src/app/orders/find/page.tsx b/src/app/orders/find/page.tsx index 3aabde8..382a658 100644 --- a/src/app/orders/find/page.tsx +++ b/src/app/orders/find/page.tsx @@ -46,15 +46,7 @@ export default function FindOrdersPage() { - console.log("User:", user); - console.log("Decoded Token:", decodedToken); - console.log("Auth Loading:", authLoading); - console.log("Auth Error:", authError); - console.log("Is Authenticated:", isAuthenticated); - - - const [isFiltersExpanded, setIsFiltersExpanded] = useState(true); const { storeOptions, loading: loadingStores, stores } = useStores(true); const [usePreloadClients, setUsePreloadClients] = useState(false); diff --git a/src/components/orders/OrderTimeline.tsx b/src/components/orders/OrderTimeline.tsx index 2527b2a..1c7e185 100644 --- a/src/components/orders/OrderTimeline.tsx +++ b/src/components/orders/OrderTimeline.tsx @@ -188,7 +188,7 @@ export default function Timeline({ orderId = "", className }: TimelineProps) { const data = await ordersApi.getLeadtime(orderId); if (!data) throw new Error("Dados da API indisponíveis"); - + setApiData(Array.isArray(data) ? data : []); } catch (err) { setError(`Erro ao buscar dados: ${err instanceof Error ? err.message : "Desconhecido"}`); @@ -203,7 +203,10 @@ export default function Timeline({ orderId = "", className }: TimelineProps) { // Process API data with memoization to avoid unnecessary recalculations const processedLeadtimes = useMemo(() => { - return apiData.length > 0 ? mapApiDataToLeadtimes(apiData, orderId) : []; + if (!apiData.length) return []; + return mapApiDataToLeadtimes(apiData, orderId).sort( + (a, b) => new Date(a.date).getTime() - new Date(b.date).getTime() + ); }, [apiData, orderId]); // Update leadtimes state when processed data changes diff --git a/src/components/orders/OrdersTable.tsx b/src/components/orders/OrdersTable.tsx index 9c060a0..71de439 100644 --- a/src/components/orders/OrdersTable.tsx +++ b/src/components/orders/OrdersTable.tsx @@ -14,7 +14,7 @@ import { useOrderData } from "../../../src/hooks/useOrderData"; import { useSort } from "@/src/hooks/useSort"; import { NewColumnsNotification } from "@/src/components/ui/NewColumnsNotification"; -export type ColumnKey = +export type ColumnKey = | "Data" | "Data previsão de entrega" | "Agendamento" @@ -86,20 +86,20 @@ export function OrdersTable({ transfers, }: OrdersTableProps) { const { getStoreName } = useStoreNameResolver(stores); - + // Find the selected order based on selectedOrderId - const selectedOrder = useMemo(() => + const selectedOrder = useMemo(() => selectedOrderId ? orders.find(order => order.orderId === selectedOrderId) : undefined , [selectedOrderId, orders]); - + // Use custom hook for order-related data fetching - const { - orderStatus, - orderLeadtime, - selectedDelivery, - tv8Deliveries + const { + orderStatus, + orderLeadtime, + selectedDelivery, + tv8Deliveries } = useOrderData(selectedOrderId, selectedOrder); - + // Define column accessors for sorting const columnAccessors = useMemo(() => ({ "Data": (order: Order) => new Date(order.createDate || ""), @@ -172,16 +172,16 @@ export function OrdersTable({ const renderPagination = useCallback(() => (
- {orders.length > 0 + {orders.length > 0 ? `Mostrando ${indexOfFirstOrder + 1}-${indexOfLastOrder} de ${orders.length} pedidos` : "Nenhum pedido encontrado" }
- +
- - + Página {currentPage} de {totalPages} - -
), [ - orders, - orderedVisibleColumns, - getColumnClass, - handleDragStart, - handleDragEnd, - handleDragOver, - handleDrop, - sortConfig, - handleSort, - sortedItems, - selectedOrderId, - getStoreName, + orders, + orderedVisibleColumns, + getColumnClass, + handleDragStart, + handleDragEnd, + handleDragOver, + handleDrop, + sortConfig, + handleSort, + sortedItems, + selectedOrderId, + getStoreName, handleRowClick, renderPagination ]); return (
- diff --git a/src/components/orders/OrdersTableBody.tsx b/src/components/orders/OrdersTableBody.tsx index 14647d2..3814d70 100644 --- a/src/components/orders/OrdersTableBody.tsx +++ b/src/components/orders/OrdersTableBody.tsx @@ -26,15 +26,15 @@ const EmptyRow = memo(({ colSpan }: { colSpan: number }) => ( )); // Componente de linha de pedido memoizado -const OrderRow = memo(({ - order, - isSelected, - visibleColumns, - onSelect, - getStoreName -}: { - order: Order; - isSelected: boolean; +const OrderRow = memo(({ + order, + isSelected, + visibleColumns, + onSelect, + getStoreName +}: { + order: Order; + isSelected: boolean; visibleColumns: string[]; onSelect: (orderId: string) => void; getStoreName: (storeId?: string) => string; @@ -45,7 +45,7 @@ const OrderRow = memo(({ store: getStoreName(order.storeId), storeId: order.storeId, // Preserve original storeId }; - + return ( ; } - + return currentOrders.map((order) => ( {content}; } -export const OrdersTableBody = memo(OrdersTableBodyComponent); \ No newline at end of file +export const OrdersTableBody = memo(OrdersTableBodyComponent); \ No newline at end of file diff --git a/src/components/orders/tabela-pedidos/components/OrderRowExpandable.tsx b/src/components/orders/tabela-pedidos/components/OrderRowExpandable.tsx index e36e164..771c4f6 100644 --- a/src/components/orders/tabela-pedidos/components/OrderRowExpandable.tsx +++ b/src/components/orders/tabela-pedidos/components/OrderRowExpandable.tsx @@ -35,7 +35,7 @@ interface Props { /** * Componente responsável por renderizar uma linha da tabela de pedidos com colunas dinâmicas. - * + * * @param {Props} props - Propriedades do componente. * @returns {JSX.Element} Linha da tabela renderizada com base nas colunas visíveis. */ diff --git a/src/components/sidebar.tsx b/src/components/sidebar.tsx index 27ba25e..40b3f62 100644 --- a/src/components/sidebar.tsx +++ b/src/components/sidebar.tsx @@ -32,7 +32,7 @@ const routes = [ color: "text-pink-700", submenu: [{ label: "Buscar Pedidos", href: "/orders/find" }], }, - + ]; export default function Sidebar() { @@ -50,7 +50,6 @@ export default function Sidebar() { }; const handleLogout = () => { - console.log('Sidebar - iniciando logout'); }; return ( @@ -162,7 +161,7 @@ export default function Sidebar() { Configurações -