@@ -10,7 +10,14 @@ import ItemsTable from './ItemsTable';
1010import UpdateHistoryModal from '../UpdateHistory/UpdateHistoryModal' ;
1111import styles from './ItemListView.module.css' ;
1212
13- export function ItemListView ( { itemType, items, errors, UpdateItemModal, dynamicColumns } ) {
13+ export function ItemListView ( {
14+ itemType,
15+ items,
16+ errors,
17+ UpdateItemModal,
18+ dynamicColumns,
19+ children,
20+ } ) {
1421 const [ filteredItems , setFilteredItems ] = useState ( items ) ;
1522 const [ selectedProject , setSelectedProject ] = useState ( 'all' ) ;
1623 const [ selectedItem , setSelectedItem ] = useState ( 'all' ) ;
@@ -66,10 +73,11 @@ export function ItemListView({ itemType, items, errors, UpdateItemModal, dynamic
6673 < main className = { `${ styles . itemsListContainer } ${ darkMode ? styles . darkMode : '' } ` } >
6774 < h3 > { itemType } </ h3 >
6875 < section >
69- < span >
76+ < div
77+ style = { { display : 'flex' , flexDirection : 'column' , gap : '15px' , marginBottom : '20px' } }
78+ >
7079 { items && (
7180 < div className = { `${ styles . selectInput } ` } >
72- { /* Wrap the Time label and Datepicker in a flex group */ }
7381 < div className = { `${ styles . filterGroup } ` } >
7482 < label htmlFor = "itemListTime" > Time:</ label >
7583 < DatePicker
@@ -88,20 +96,29 @@ export function ItemListView({ itemType, items, errors, UpdateItemModal, dynamic
8896 }
8997 />
9098 </ div >
91- < SelectForm
92- items = { items }
93- setSelectedProject = { setSelectedProject }
94- setSelectedItem = { setSelectedItem }
95- />
96- < SelectItem
97- items = { items }
98- selectedProject = { selectedProject }
99- selectedItem = { selectedItem }
100- setSelectedItem = { setSelectedItem }
101- label = { itemType }
102- />
99+
100+ < div className = { `${ styles . filterGroup } ` } >
101+ < SelectForm
102+ items = { items }
103+ setSelectedProject = { setSelectedProject }
104+ setSelectedItem = { setSelectedItem }
105+ />
106+ </ div >
107+
108+ { itemType !== 'Materials' && (
109+ < div className = { `${ styles . filterGroup } ` } >
110+ < SelectItem
111+ items = { items }
112+ selectedProject = { selectedProject }
113+ selectedItem = { selectedItem }
114+ setSelectedItem = { setSelectedItem }
115+ label = { itemType }
116+ />
117+ </ div >
118+ ) }
103119 </ div >
104120 ) }
121+
105122 < div className = { `${ styles . buttonsRow } ` } >
106123 < button type = "button" className = { `${ styles . btnPrimary } ` } >
107124 Add Material
@@ -117,7 +134,7 @@ export function ItemListView({ itemType, items, errors, UpdateItemModal, dynamic
117134 View Update History
118135 </ button >
119136 </ div >
120- </ span >
137+ </ div >
121138
122139 < UpdateHistoryModal
123140 isOpen = { updateHistoryModalOpen }
@@ -126,6 +143,25 @@ export function ItemListView({ itemType, items, errors, UpdateItemModal, dynamic
126143 selectedProject = { selectedProject }
127144 />
128145
146+ { children && (
147+ < div
148+ style = { {
149+ display : 'flex' ,
150+ justifyContent : 'space-between' ,
151+ alignItems : 'center' ,
152+ marginBottom : '15px' ,
153+ flexWrap : 'wrap' ,
154+ gap : '15px' ,
155+ backgroundColor : darkMode ? '#2d2d2d' : '#f8f9fa' ,
156+ padding : '12px 15px' ,
157+ borderRadius : '6px' ,
158+ border : darkMode ? '1px solid #444' : '1px solid #dee2e6' ,
159+ } }
160+ >
161+ { children }
162+ </ div >
163+ ) }
164+
129165 { filteredItems && (
130166 < ItemsTable
131167 selectedProject = { selectedProject }
@@ -171,10 +207,12 @@ ItemListView.propTypes = {
171207 key : PropTypes . string . isRequired ,
172208 } ) ,
173209 ) . isRequired ,
210+ children : PropTypes . node ,
174211} ;
175212
176213ItemListView . defaultProps = {
177214 errors : { } ,
215+ children : null ,
178216} ;
179217
180218export default ItemListView ;
0 commit comments