From 5a9065b280dad0e626cabb792cd2b92a12ce73c4 Mon Sep 17 00:00:00 2001 From: Uha Kruthi Kommi Date: Sat, 10 Jan 2026 18:01:50 -0500 Subject: [PATCH 1/5] chnages --- package-lock.json | 63 +-- .../BMDashboard/ItemList/ItemListView.jsx | 88 ++--- .../ItemList/ItemListView.module.css | 365 ++++-------------- .../BMDashboard/ItemList/ItemsTable.jsx | 196 ++++++---- .../BMDashboard/ItemList/RecordsModal.jsx | 206 +++++----- .../ItemList/RecordsModal.module.css | 77 +++- .../BMDashboard/ItemList/SelectForm.jsx | 43 ++- .../BMDashboard/ItemList/SelectItem.jsx | 93 ++--- yarn.lock | 29 +- 9 files changed, 473 insertions(+), 687 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8e384ead86..a78cf7ccb3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -621,7 +621,6 @@ "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-5.0.51.tgz", "integrity": "sha512-/88LJDZ7FHKtpyJibXOnJWZ8gFRp32mLb8KzEFrMuiIC/dsZgTf/oYVw6L4tLKooPXfXqUtrJb2tWFMGR04EMg==", "license": "MIT", - "peer": true, "dependencies": { "@antv/algorithm": "^0.1.26", "@antv/component": "^2.1.7", @@ -819,7 +818,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "license": "MIT", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", @@ -3031,7 +3029,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -3055,7 +3052,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -3236,7 +3232,6 @@ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -3280,7 +3275,6 @@ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -4055,7 +4049,6 @@ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", "license": "MIT", - "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.7.2" }, @@ -4165,8 +4158,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", @@ -6063,7 +6055,6 @@ "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.1.tgz", "integrity": "sha512-Xf6Shbo03YmcBedZMwSpEFOwpYDtU7tC+rhAHTrA9FHk0FpsDqiQ9jUa1j/9s3HLs7KWb5mDcGnlwdh9Q9KAag==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.28.2", "@mui/core-downloads-tracker": "^7.3.1", @@ -6174,7 +6165,6 @@ "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.1.tgz", "integrity": "sha512-mIidecvcNVpNJMdPDmCeoSL5zshKBbYPcphjuh6ZMjhybhqhZ4mX6k9zmIWh6XOXcqRQMg5KrcjnO0QstrNj3w==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.28.2", "@mui/private-theming": "^7.3.1", @@ -6783,7 +6773,6 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -6997,8 +6986,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@reduxjs/toolkit/node_modules/redux-thunk": { "version": "3.1.0", @@ -7469,7 +7457,6 @@ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -8307,7 +8294,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.12.tgz", "integrity": "sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -8995,7 +8981,6 @@ "integrity": "sha512-xHif5tkQOZK4YjA44rrzmvXMI1cb1Qato3P+NL/gwyoK5LdZx0f5Q59Il25JtuhN/htBvrT+Copt3Q4Ma4gJbg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vitest/utils": "3.2.2", "fflate": "^0.8.2", @@ -9208,7 +9193,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -9253,7 +9237,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -9740,7 +9723,6 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz", "integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==", "license": "MIT", - "peer": true, "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", @@ -9830,7 +9812,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -9985,6 +9966,7 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "license": "MIT", + "peer": true, "engines": { "node": "*" } @@ -10155,7 +10137,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.25", "caniuse-lite": "^1.0.30001754", @@ -10439,7 +10420,6 @@ "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.0.tgz", "integrity": "sha512-aYeC/jDgSEx8SHWZvANYMioYMZ2KX02W6f6uVfyteuCGcadDLcYVHdfdygsTQkQ4TKn5lghoojAsPj5pu0SnvQ==", "license": "MIT", - "peer": true, "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -11566,7 +11546,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -11741,7 +11720,6 @@ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -11766,8 +11744,7 @@ "version": "1.11.18", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz", "integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/debug": { "version": "4.4.3", @@ -12181,6 +12158,7 @@ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "license": "MIT", + "peer": true, "engines": { "node": ">= 4" } @@ -12510,7 +12488,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -19102,8 +19079,7 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/js-tokens": { "version": "4.0.0", @@ -19130,7 +19106,6 @@ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", @@ -19332,8 +19307,7 @@ "version": "1.9.4", "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", - "license": "BSD-2-Clause", - "peer": true + "license": "BSD-2-Clause" }, "node_modules/leaflet.heat": { "version": "0.2.0", @@ -19449,6 +19423,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "license": "MIT", + "peer": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -19924,7 +19899,6 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "license": "MIT", - "peer": true, "engines": { "node": "*" } @@ -19964,7 +19938,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "@bundled-es-modules/cookie": "^2.0.1", "@bundled-es-modules/statuses": "^1.0.1", @@ -20736,7 +20709,6 @@ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -20771,7 +20743,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -20821,7 +20792,6 @@ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -20852,7 +20822,6 @@ "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -20919,7 +20888,6 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -21714,7 +21682,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -21858,7 +21825,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -21996,7 +21962,6 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.15.4", "@types/react-redux": "^7.1.20", @@ -22058,7 +22023,6 @@ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -22545,7 +22509,6 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.9.2" } @@ -23063,7 +23026,6 @@ "integrity": "sha512-aFOZHGf+ur+bp1bCHZ+u8otKGh77ZtmFyXDo4tlYvT7PWql41Kwd8wdkPqhhT+h2879IVblcHFglIMofsFd1EA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -24631,7 +24593,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -24643,8 +24604,7 @@ "version": "7.9.1", "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-7.9.1.tgz", "integrity": "sha512-zaOHwmiP1EqTeLRXAvVriDb00JYnfEjWGPdKEuac7MiZJ5aiDMZ4Unc98Gmajn+PBljOmO1GKV6G0KwWn3+k8A==", - "license": "GPL-2.0-or-later", - "peer": true + "license": "GPL-2.0-or-later" }, "node_modules/tinypool": { "version": "1.1.1", @@ -24969,7 +24929,6 @@ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -25316,7 +25275,6 @@ "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -25433,7 +25391,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -25447,7 +25404,6 @@ "integrity": "sha512-fyNn/Rp016Bt5qvY0OQvIUCwW2vnaEBLxP42PmKbNIoasSYjML+8xyeADOPvBe+Xfl/ubIw4og7Lt9jflRsCNw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.2", @@ -25587,7 +25543,6 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.103.0.tgz", "integrity": "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==", "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", diff --git a/src/components/BMDashboard/ItemList/ItemListView.jsx b/src/components/BMDashboard/ItemList/ItemListView.jsx index cf6451b90d..96ecb92541 100644 --- a/src/components/BMDashboard/ItemList/ItemListView.jsx +++ b/src/components/BMDashboard/ItemList/ItemListView.jsx @@ -1,21 +1,20 @@ import { useState, useEffect } from 'react'; -import { useSelector } from 'react-redux'; import PropTypes from 'prop-types'; -import DatePicker from 'react-datepicker'; -import 'react-datepicker/dist/react-datepicker.css'; +import { useSelector } from 'react-redux'; + import BMError from '../shared/BMError'; import SelectForm from './SelectForm'; import SelectItem from './SelectItem'; import ItemsTable from './ItemsTable'; -import styles from './ItemListView.module.css'; + +import styles from './itemListView.module.css'; export function ItemListView({ itemType, items, errors, UpdateItemModal, dynamicColumns }) { + const darkMode = useSelector(state => state.theme.darkMode); const [filteredItems, setFilteredItems] = useState(items); const [selectedProject, setSelectedProject] = useState('all'); const [selectedItem, setSelectedItem] = useState('all'); const [isError, setIsError] = useState(false); - const [selectedTime, setSelectedTime] = useState(new Date()); - const darkMode = useSelector(state => state.theme.darkMode); useEffect(() => { if (items) setFilteredItems([...items]); @@ -24,6 +23,7 @@ export function ItemListView({ itemType, items, errors, UpdateItemModal, dynamic useEffect(() => { let filterItems; if (!items) return; + if (selectedProject === 'all' && selectedItem === 'all') { setFilteredItems([...items]); } else if (selectedProject !== 'all' && selectedItem === 'all') { @@ -46,64 +46,41 @@ export function ItemListView({ itemType, items, errors, UpdateItemModal, dynamic if (isError) { return ( -
-

- {itemType} - {' List'} -

+
+

{itemType} List

); } return ( -
-

{itemType}

-
- +
+

{itemType}

+ +
+ {items && ( -
- - setSelectedTime(date)} - showTimeSelect - timeFormat="HH:mm" - timeIntervals={15} - dateFormat="yyyy-MM-dd HH:mm:ss" - placeholderText="Select date and time" - inputId="itemListTime" // This is the key line - className={darkMode ? styles.darkDatePickerInput : styles.lightDatePickerInput} - calendarClassName={darkMode ? styles.darkDatePicker : styles.lightDatePicker} - popperClassName={ - darkMode ? styles.darkDatePickerPopper : styles.lightDatePickerPopper - } - /> + <> -
+ )} -
- - - -
+ {filteredItems && ( { - if (type === 'UsageRecord') { - // For UsageRecord, show the chart directly - const projectId = data.project?._id || data.projectId; - if (projectId) { - setChartProjectId(projectId); - setShowChartModal(true); - } else { - // If no project ID, fall back to the regular modal - setModal(true); - setRecord(data); - setRecordType(type); - } - } else { - // For other record types, show the regular modal - setModal(true); - setRecord(data); - setRecordType(type); - } + setModal(true); + setRecord(data); + setRecordType(type); }; const sortData = columnName => { @@ -108,7 +89,6 @@ export default function ItemsTable({ return ( <> - {/* Regular Records Modal for Update and Purchase records */} + + {darkMode && ( + + )} +
+ + + {selectedProject === 'all' ? ( - ) : ( - + )} {selectedItem === 'all' ? ( - ) : ( - + )} {dynamicColumns.map(({ label }) => ( - + ))} - - - + + - + {sortedData && sortedData.length > 0 ? ( sortedData.map(el => { return ( - - - + + + {dynamicColumns.map(({ label, key }) => ( - + ))} - - - + + @@ -102,27 +90,27 @@ export function Record({ record, recordType, setRecord }) { - - {record?.updateRecord && record?.updateRecord.length ? ( - record.updateRecord.map(data => { - return ( - - - - - - - - ); - }) + + + {record?.updateRecord?.length ? ( + record.updateRecord.map(data => ( + + + + + + + + )) ) : ( - + @@ -132,11 +120,12 @@ export function Record({ record, recordType, setRecord }) { ); } + if (recordType === 'Purchase') { return ( <> - - + + @@ -144,49 +133,53 @@ export function Record({ record, recordType, setRecord }) { + - - {record?.purchaseRecord && record?.purchaseRecord.length ? ( + + + {record?.purchaseRecord?.length ? ( record.purchaseRecord.map( - ({ _id, date, status, brandPref, priority, quantity, requestedBy }) => { - return ( - - - - - - - - - - - ); - }, + ({ _id, date, status, brandPref, priority, quantity, requestedBy }) => ( + + + + + + + + + + + ), ) ) : ( - + @@ -196,5 +189,6 @@ export function Record({ record, recordType, setRecord }) { ); } + return null; } diff --git a/src/components/BMDashboard/ItemList/RecordsModal.module.css b/src/components/BMDashboard/ItemList/RecordsModal.module.css index 6214e8d08e..d43fbcd732 100644 --- a/src/components/BMDashboard/ItemList/RecordsModal.module.css +++ b/src/components/BMDashboard/ItemList/RecordsModal.module.css @@ -1,4 +1,4 @@ -.recordsModalTableContainer { +.records_modal_table_container { overflow: scroll; height: 75vh; text-align: center; @@ -6,13 +6,51 @@ white-space: nowrap; } +/* 🌙 Dark Mode */ +:global(.dark-mode) .records_modal_table_container { + background-color: #3A506B; /* Yinmn Blue */ + color: #ffffff; +} + +/* Email links — Azure blue in dark mode */ +:global(.dark-mode) .records_modal_table_container a { + color: #4FA3FF; /* Azure */ + text-decoration: underline; +} + +:global(.dark-mode) .records_modal_table_container a:hover { + color: #6BB6FF; /* lighter Azure on hover */ +} + +/* Header row (first row) — Space Cadet */ +:global(.dark-mode) .records_modal_table_container thead tr th { + background-color: #1C2541 !important; /* Space Cadet */ + color: #ffffff !important; + border-color: #3A506B !important; +} + +/* Body rows — Yinmn Blue */ +:global(.dark-mode) .records_modal_table_container tbody tr td { + background-color: #3A506B !important; /* Yinmn Blue */ + color: #ffffff !important; + border-color: #1C2541 !important; +} + +/* Hover on any body row — Space Cadet */ +:global(.dark-mode) .records_modal_table_container tbody tr:hover td { + background-color: #1C2541 !important; /* Space Cadet */ + color: #ffffff !important; +} + +/* Responsive */ @media (min-width: 1200px) { - .recordsModalTableContainer { + .records_modal_table_container { font-size: medium; } } -.approveButton { +/* Buttons */ +.approve_button { background-color: green; color: white; border: none; @@ -22,7 +60,13 @@ margin-right: 8px; } -.rejectButton { +:global(.dark-mode) .approve_button { + background-color: #1C2541; /* Space Cadet */ + color: #ffffff; + border: 1px solid #3A506B; +} + +.reject_button { background-color: red; color: white; border: none; @@ -30,4 +74,29 @@ cursor: pointer; border-radius: 4px; margin-right: 8px; +} + +:global(.dark-mode) .reject_button { + background-color: #1C2541; /* Space Cadet */ + color: #ffffff; + border: 1px solid #3A506B; +} + +/* Scrollbar */ +:global(.dark-mode) .records_modal_table_container::-webkit-scrollbar { + background: #1C2541; +} + +:global(.dark-mode) .records_modal_table_container::-webkit-scrollbar-thumb { + background: #3A506B; + border-radius: 6px; +} +:global(.dark-mode) .blue_link { + color: #4FA3FF !important; /* Azure blue */ + text-decoration: none !important; +} + +:global(.dark-mode) .blue_link:hover { + color: #6BB6FF !important; /* lighter blue */ + text-decoration: none !important; } \ No newline at end of file diff --git a/src/components/BMDashboard/ItemList/SelectForm.jsx b/src/components/BMDashboard/ItemList/SelectForm.jsx index 47f6f1f7db..4a7ae9d88c 100644 --- a/src/components/BMDashboard/ItemList/SelectForm.jsx +++ b/src/components/BMDashboard/ItemList/SelectForm.jsx @@ -1,13 +1,9 @@ import { Form, FormGroup, Label, Input } from 'reactstrap'; -import styles from './ItemListView.module.css'; +import { useSelector } from 'react-redux'; + +export default function SelectForm({ items, setSelectedProject, setSelectedItem }) { + const darkMode = useSelector(state => state.theme.darkMode); -export default function SelectForm({ - items, - setSelectedProject, - setSelectedItem, - setSelectedCondition, - setSelectedToolStatus, -}) { let projectsSet = []; if (items.length) { projectsSet = [...new Set(items.map(el => el.project?.name))]; @@ -15,35 +11,50 @@ export default function SelectForm({ const handleChange = event => { setSelectedItem('all'); - setSelectedCondition('all'); - setSelectedToolStatus('all'); setSelectedProject(event.target.value); }; return ( - - - + + + {items.length ? ( <> - + {projectsSet.map(name => { return ( - ); })} ) : ( - + )} diff --git a/src/components/BMDashboard/ItemList/SelectItem.jsx b/src/components/BMDashboard/ItemList/SelectItem.jsx index dcdd02d47e..876d09b410 100644 --- a/src/components/BMDashboard/ItemList/SelectItem.jsx +++ b/src/components/BMDashboard/ItemList/SelectItem.jsx @@ -1,89 +1,54 @@ import { Form, FormGroup, Label, Input } from 'reactstrap'; -import styles from './ItemListView.module.css'; export default function SelectItem({ items, selectedProject, selectedItem, setSelectedItem, - selectedToolStatus, - setSelectedToolStatus, - selectedCondition, - setSelectedCondition, label, + darkMode, }) { let itemSet = []; - if (items?.length) { - if (label === 'Tool') { - if (selectedProject === 'all') { - itemSet = [...new Set(items.filter(m => m.itemType?.name).map(m => m.itemType.name))]; - } else { - itemSet = [ - ...new Set( - items - .filter(mat => mat.project?.name === selectedProject && mat.itemType?.name) - .map(m => m.itemType.name), - ), - ]; - } - } else if (label === 'Tool Status') { - itemSet = ['Using', 'Available', 'Under Maintenance']; - } else if (label === 'Condition') { - if (selectedProject === 'all') { - itemSet = [...new Set(items.filter(m => m.condition).map(m => m.condition))]; - } else { - itemSet = [ - ...new Set( - items - .filter(mat => mat.project?.name === selectedProject && mat.condition) - .map(m => m.condition), - ), - ]; - } - } + if (items.length) { + if (selectedProject === 'all') itemSet = [...new Set(items.map(m => m.itemType?.name))]; + else + itemSet = [ + ...new Set( + items.filter(mat => mat.project?.name === selectedProject).map(m => m.itemType?.name), + ), + ]; } return ( - - - + + { - const val = e.target.value; - if (label === 'Tool Status') { - setSelectedToolStatus(val); - } else if (label === 'Condition') { - setSelectedCondition(val); - } else { - setSelectedItem(val); - } - }} - disabled={!itemSet.length} + value={selectedItem} + onChange={e => setSelectedItem(e.target.value)} + disabled={!items.length} > - {itemSet.length ? ( + {items.length ? ( <> - - {itemSet.map(item => ( - - ))} + + {itemSet.map(name => { + return ( + + ); + })} ) : ( - + )} diff --git a/yarn.lock b/yarn.lock index 66b3394b54..135c3c1162 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1760,10 +1760,10 @@ "@ephox/katamari" "^9.1.6" "@ephox/sand" "^6.0.10" -"@esbuild/win32-x64@0.25.9": +"@esbuild/darwin-arm64@0.25.9": version "0.25.9" - resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz" - integrity sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ== + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz" + integrity sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.7.0": version "4.7.0" @@ -2577,10 +2577,10 @@ resolved "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz" integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg== -"@parcel/watcher-win32-x64@2.5.1": +"@parcel/watcher-darwin-arm64@2.5.1": version "2.5.1" - resolved "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz" - integrity sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA== + resolved "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz" + integrity sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== "@parcel/watcher@^2.4.1": version "2.5.1" @@ -2748,10 +2748,10 @@ resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz" integrity sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA== -"@rollup/rollup-win32-x64-msvc@4.49.0": +"@rollup/rollup-darwin-arm64@4.49.0": version "4.49.0" - resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.49.0.tgz" - integrity sha512-gEtqFbzmZLFk2xKh7g0Rlo8xzho8KrEFEkzvHbfUGkrgXOpZ4XagQ6n+wIZFNh1nTb8UD16J4nFSFKXYgnbdBg== + resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.49.0.tgz" + integrity sha512-99kMMSMQT7got6iYX3yyIiJfFndpojBmkHfTc1rIje8VbjhmqBXE+nb7ZZP3A5skLyujvT0eIUCUsxAe6NjWbw== "@rtsao/scc@^1.1.0": version "1.1.0" @@ -3459,10 +3459,10 @@ resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== -"@unrs/resolver-binding-win32-x64-msvc@1.11.1": +"@unrs/resolver-binding-darwin-arm64@1.11.1": version "1.11.1" - resolved "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz" - integrity sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g== + resolved "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz" + integrity sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g== "@vitejs/plugin-react@^4.5.0": version "4.7.0" @@ -6451,6 +6451,11 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@^2.3.2, fsevents@^2.3.3, fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" From eed92bc1088fc0e09b7a5b06ecce1ceddc52a505 Mon Sep 17 00:00:00 2001 From: Uha Kruthi Kommi Date: Sat, 10 Jan 2026 18:12:48 -0500 Subject: [PATCH 2/5] check --- src/components/BMDashboard/ItemList/ItemListView.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/BMDashboard/ItemList/ItemListView.jsx b/src/components/BMDashboard/ItemList/ItemListView.jsx index 96ecb92541..26494ffac6 100644 --- a/src/components/BMDashboard/ItemList/ItemListView.jsx +++ b/src/components/BMDashboard/ItemList/ItemListView.jsx @@ -7,7 +7,7 @@ import SelectForm from './SelectForm'; import SelectItem from './SelectItem'; import ItemsTable from './ItemsTable'; -import styles from './itemListView.module.css'; +import styles from './ItemListView.module.css'; export function ItemListView({ itemType, items, errors, UpdateItemModal, dynamicColumns }) { const darkMode = useSelector(state => state.theme.darkMode); From 9726cd184b0884de4ad9b4c97cfd05890a7141b9 Mon Sep 17 00:00:00 2001 From: Uha Kruthi Kommi Date: Sat, 10 Jan 2026 18:20:09 -0500 Subject: [PATCH 3/5] checks --- src/components/BMDashboard/ItemList/RecordsModal.jsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/BMDashboard/ItemList/RecordsModal.jsx b/src/components/BMDashboard/ItemList/RecordsModal.jsx index 77dc95373c..dc1fad4a23 100644 --- a/src/components/BMDashboard/ItemList/RecordsModal.jsx +++ b/src/components/BMDashboard/ItemList/RecordsModal.jsx @@ -45,6 +45,10 @@ export default function RecordsModal({ modal, setModal, record, setRecord, recor export function Record({ record, recordType, setRecord }) { const dispatch = useDispatch(); const darkMode = useSelector(state => state.theme.darkMode); + const formatQuantity = (value, unit) => { + if (value == null) return '-'; + return unit ? `${value} ${unit}` : `${value}`; + }; const handleApprove = async (purchaseId, quantity) => { try { @@ -96,8 +100,8 @@ export function Record({ record, recordType, setRecord }) { record.updateRecord.map(data => ( - - + + @@ -215,13 +217,24 @@ function UpdateMaterial({ record, bulk, sendUpdatedRecord, cancel, setModal }) { ) : ( - -
-
+ +
+
{/* materialImage */} -
@@ -230,7 +243,12 @@ function UpdateMaterial({ record, bulk, sendUpdatedRecord, cancel, setModal }) { - @@ -239,7 +257,12 @@ function UpdateMaterial({ record, bulk, sendUpdatedRecord, cancel, setModal }) { - @@ -254,7 +277,12 @@ function UpdateMaterial({ record, bulk, sendUpdatedRecord, cancel, setModal }) { - @@ -264,7 +292,12 @@ function UpdateMaterial({ record, bulk, sendUpdatedRecord, cancel, setModal }) { {updateRecord.newAvailable !== undefined && ( - @@ -282,6 +315,7 @@ function UpdateMaterial({ record, bulk, sendUpdatedRecord, cancel, setModal }) { for="updateMaterialQuantityUsed" sm={4} className={`${styles.materialFormLabel}`} + style={darkMode ? { color: '#4DA8DA' } : {}} > Quantity Used @@ -324,6 +358,7 @@ function UpdateMaterial({ record, bulk, sendUpdatedRecord, cancel, setModal }) { for="updateMaterialquantityWasted" sm={4} className={`${styles.materialFormLabel}`} + style={darkMode ? { color: '#4DA8DA' } : {}} > Quantity Wasted @@ -377,6 +412,7 @@ function UpdateMaterial({ record, bulk, sendUpdatedRecord, cancel, setModal }) { - - + <> + {darkMode && ( + + )} + + + Update Material Form + + +
+ +
+
+ + + +
+ ); } return null;
sortData('ProjectName')}> + sortData('ProjectName')} + > Project Project + Project + sortData('InventoryItemType')}> + sortData('InventoryItemType')} + > Name Name + Name + {label} + {label} + Usage RecordUpdatesPurchases + Updates + + Purchases +
{el.project?.name}{el.itemType?.name}
{el.project?.name}{el.itemType?.name}{getNestedValue(el, key)} + {getNestedValue(el, key)} + - - - + ); } + return null; } export function Record({ record, recordType, setRecord }) { - const handleUndefined = value => { - return value !== undefined && value !== null ? value : 'N/A'; - }; - const dispatch = useDispatch(); - // const handleApprove = async (purchaseId, quantity) => { - // await dispatch(approvePurchase(purchaseId, quantity)); - // }; + const darkMode = useSelector(state => state.theme.darkMode); - // const handleReject = async purchaseId => { - // await dispatch(rejectPurchase(purchaseId)); - // }; const handleApprove = async (purchaseId, quantity) => { try { const response = await dispatch(approvePurchase(purchaseId, quantity)); - // Only update the state if the purchase was successfully approved if (response && response.status === 200) { - const updatedPurchases = record.purchaseRecord.map(purchase => { - if (purchase._id === purchaseId) { - return { - ...purchase, - status: 'Approved', - }; - } - return purchase; - }); + const updatedPurchases = record.purchaseRecord.map(purchase => + purchase._id === purchaseId ? { ...purchase, status: 'Approved' } : purchase, + ); + setRecord({ ...record, purchaseRecord: updatedPurchases, }); } - } catch (error) { - // Optionally, you can handle UI feedback for the error - } + } catch (error) {} }; + const handleReject = async purchaseId => { try { const response = await dispatch(rejectPurchase(purchaseId)); - // Only update the state if the purchase was successfully rejected if (response && response.status === 200) { - const updatedPurchases = record.purchaseRecord.map(purchase => { - if (purchase._id === purchaseId) { - return { - ...purchase, - status: 'Rejected', - }; - } - return purchase; - }); + const updatedPurchases = record.purchaseRecord.map(purchase => + purchase._id === purchaseId ? { ...purchase, status: 'Rejected' } : purchase, + ); + setRecord({ ...record, purchaseRecord: updatedPurchases, }); } - } catch (error) { - // Optionally, you can handle UI feedback for the error - } + } catch (error) {} }; if (recordType === 'Update') { return ( <> -
Date Quantity Used Quantity WastedEmail
{moment.utc(data.date).format('LL')}{`${handleUndefined(data.quantityUsed)} ${record.itemType?.unit || ''}`} - {`${handleUndefined(data.quantityWasted)} ${record.itemType?.unit || ''}`} - - - {`${data.createdBy.firstName} ${data.createdBy.lastName}`} - - {data?.createdBy?.email}
{moment.utc(data.date).format('LL')}{`${data.quantityUsed} ${record.itemType?.unit}` || '-'}{`${data.quantityWasted} ${record.itemType?.unit}` || '-'} + + {`${data.createdBy.firstName} ${data.createdBy.lastName}`} + + {data?.createdBy?.email}
There are no updates for this item.
Priority Brand QuantityEmail Date StatusAction
{priority}{brandPref}{handleUndefined(quantity)} - - {`${requestedBy.firstName} ${requestedBy.lastName}`} - - {requestedBy.email}{moment(date).format('MM/DD/YY')}{status} - - -
{priority}{brandPref}{quantity || '-'} + + {`${requestedBy.firstName} ${requestedBy.lastName}`} + + {requestedBy.email}{moment(date).format('MM/DD/YY')}{status} + + + +
There are no purchase records.
{moment.utc(data.date).format('LL')}{`${data.quantityUsed} ${record.itemType?.unit}` || '-'}{`${data.quantityWasted} ${record.itemType?.unit}` || '-'}{formatQuantity(data.quantityUsed, record.itemType?.unit)}{formatQuantity(data.quantityWasted, record.itemType?.unit)} Date: Sat, 10 Jan 2026 18:22:50 -0500 Subject: [PATCH 4/5] checks --- src/components/BMDashboard/ItemList/RecordsModal.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/BMDashboard/ItemList/RecordsModal.jsx b/src/components/BMDashboard/ItemList/RecordsModal.jsx index dc1fad4a23..cae553e9a0 100644 --- a/src/components/BMDashboard/ItemList/RecordsModal.jsx +++ b/src/components/BMDashboard/ItemList/RecordsModal.jsx @@ -2,7 +2,7 @@ import { Modal, ModalHeader, ModalBody, ModalFooter, Button, Table } from 'react import moment from 'moment'; import { useDispatch, useSelector } from 'react-redux'; -import styles from './recordsModal.module.css'; +import styles from './RecordsModal.module.css'; import { approvePurchase, rejectPurchase } from '../../../actions/bmdashboard/materialsActions'; export default function RecordsModal({ modal, setModal, record, setRecord, recordType }) { From 455325748446c80c02b6ae10cef8791214fa3c59 Mon Sep 17 00:00:00 2001 From: Uha Kruthi Kommi Date: Sat, 10 Jan 2026 18:43:48 -0500 Subject: [PATCH 5/5] changes --- .../BMDashboard/ItemList/ItemsTable.jsx | 6 +- .../BMDashboard/ItemList/RecordsModal.jsx | 62 ++++++++++++------- .../UpdateMaterials/UpdateMaterial.jsx | 52 +++++++++++++--- .../UpdateMaterials/UpdateMaterial.module.css | 52 ++++++++++++++++ .../UpdateMaterials/UpdateMaterialModal.jsx | 46 ++++++++++---- 5 files changed, 177 insertions(+), 41 deletions(-) diff --git a/src/components/BMDashboard/ItemList/ItemsTable.jsx b/src/components/BMDashboard/ItemList/ItemsTable.jsx index c91b267758..0cef3d69a0 100644 --- a/src/components/BMDashboard/ItemList/ItemsTable.jsx +++ b/src/components/BMDashboard/ItemList/ItemsTable.jsx @@ -241,7 +241,11 @@ export default function ItemsTable({ - - + <> + {darkMode && ( + + )} + + + {recordType} Record + + + +
+ + +
+
+
+ + + + +
+ ); } diff --git a/src/components/BMDashboard/UpdateMaterials/UpdateMaterial.jsx b/src/components/BMDashboard/UpdateMaterials/UpdateMaterial.jsx index d9ca706fd8..7c006f46ec 100644 --- a/src/components/BMDashboard/UpdateMaterials/UpdateMaterial.jsx +++ b/src/components/BMDashboard/UpdateMaterials/UpdateMaterial.jsx @@ -144,6 +144,8 @@ function UpdateMaterial({ record, bulk, sendUpdatedRecord, cancel, setModal }) { ); } }; + + const darkMode = useSelector(state => state.theme.darkMode); return bulk === true ? ( <>