From 866527c21268a68457d393136ab7a34c353b4f2c Mon Sep 17 00:00:00 2001 From: ChiragBellara Date: Wed, 3 Dec 2025 16:44:54 -0800 Subject: [PATCH 1/7] Added Dropdowns and fixed conditions to fitler table --- .../ItemList/ItemListView.module.css | 9 ++- .../BMDashboard/ItemList/SelectForm.jsx | 10 ++- .../BMDashboard/ItemList/SelectItem.jsx | 76 +++++++++++++------ .../ToolItemList/ToolItemListView.jsx | 76 +++++++++++++++---- .../ToolItemList/ToolItemListView.module.css | 7 +- .../ToolItemList/ToolItemsTable.jsx | 4 +- 6 files changed, 135 insertions(+), 47 deletions(-) diff --git a/src/components/BMDashboard/ItemList/ItemListView.module.css b/src/components/BMDashboard/ItemList/ItemListView.module.css index 4a829def15..30562f8431 100644 --- a/src/components/BMDashboard/ItemList/ItemListView.module.css +++ b/src/components/BMDashboard/ItemList/ItemListView.module.css @@ -24,6 +24,10 @@ height: 2rem; } +.itemsCell td{ + vertical-align: middle; +} + .itemsCell button { cursor: pointer; } @@ -52,8 +56,7 @@ .selectInput label { font-weight: bold; - text-align: right; - min-width: 100px; + text-align: center; white-space: nowrap; margin-bottom: 8px; } @@ -62,7 +65,7 @@ .selectInput select { height: 38px; width: 100%; - min-width: 220px; + min-width: 180px; max-width: 240px; padding: 5px; border: 1px solid #ccc; diff --git a/src/components/BMDashboard/ItemList/SelectForm.jsx b/src/components/BMDashboard/ItemList/SelectForm.jsx index 27f62b6848..47f6f1f7db 100644 --- a/src/components/BMDashboard/ItemList/SelectForm.jsx +++ b/src/components/BMDashboard/ItemList/SelectForm.jsx @@ -1,7 +1,13 @@ import { Form, FormGroup, Label, Input } from 'reactstrap'; import styles from './ItemListView.module.css'; -export default function SelectForm({ items, setSelectedProject, setSelectedItem }) { +export default function SelectForm({ + items, + setSelectedProject, + setSelectedItem, + setSelectedCondition, + setSelectedToolStatus, +}) { let projectsSet = []; if (items.length) { projectsSet = [...new Set(items.map(el => el.project?.name))]; @@ -9,6 +15,8 @@ export default function SelectForm({ items, setSelectedProject, setSelectedItem const handleChange = event => { setSelectedItem('all'); + setSelectedCondition('all'); + setSelectedToolStatus('all'); setSelectedProject(event.target.value); }; diff --git a/src/components/BMDashboard/ItemList/SelectItem.jsx b/src/components/BMDashboard/ItemList/SelectItem.jsx index 88901967ed..529bd94085 100644 --- a/src/components/BMDashboard/ItemList/SelectItem.jsx +++ b/src/components/BMDashboard/ItemList/SelectItem.jsx @@ -6,44 +6,72 @@ export default function SelectItem({ selectedProject, selectedItem, setSelectedItem, + selectedToolStatus, + setSelectedToolStatus, + selectedCondition, + setSelectedCondition, label, }) { let itemSet = []; if (items?.length) { - if (selectedProject === 'all') { - itemSet = [ - ...new Set( - items - .filter(m => m.itemType?.name) // Filter out items with null/undefined names - .map(m => m.itemType.name), - ), - ]; - } else { - itemSet = [ - ...new Set( - items - .filter(mat => mat.project?.name === selectedProject && mat.itemType?.name) - .map(m => m.itemType.name), - ), - ]; + 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), + ), + ]; + } } } return (
- - + + + setSelectedItem(e.target.value)} - disabled={!items.length} + value={ + label === 'Tool' + ? selectedItem + : label === 'Tool Status' + ? selectedToolStatus + : selectedCondition + } + onChange={e => { + const val = e.target.value; + if (label === 'Tool') { + setSelectedItem(val); + } else if (label === 'Tool Status') { + setSelectedToolStatus(val); + } else if (label === 'Condition') { + setSelectedCondition(val); + } + }} + disabled={!itemSet.length} > - {items.length ? ( + {itemSet.length ? ( <>