33 * See the LICENSE file in the repository root folder for details.
44 */
55
6- import React , { useState } from 'react' ;
7- import { Box , Typography , Chip , Collapse , IconButton } from '@mui/material' ;
8- import { ExpandMore as ExpandMoreIcon , DirectionsCar as CarIcon } from '@mui/icons-material' ;
6+ import { Box , Typography , Chip } from '@mui/material' ;
7+ import { DirectionsCar as CarIcon } from '@mui/icons-material' ;
98import { Car } from 'shared' ;
109import { useGlobalCarFilter } from '../app/AppGlobalCarFilterContext' ;
1110import LoadingIndicator from './LoadingIndicator' ;
@@ -17,15 +16,9 @@ interface GlobalCarFilterDropdownProps {
1716
1817const GlobalCarFilterDropdown : React . FC < GlobalCarFilterDropdownProps > = ( { compact = false , sx = { } } ) => {
1918 const { selectedCar, allCars, setSelectedCar, isLoading, error } = useGlobalCarFilter ( ) ;
20- const [ expanded , setExpanded ] = useState ( false ) ;
21-
22- const handleToggle = ( ) => {
23- setExpanded ( ! expanded ) ;
24- } ;
2519
2620 const handleCarSelect = ( car : Car | null ) => {
2721 setSelectedCar ( car ) ;
28- setExpanded ( false ) ;
2922 } ;
3023
3124 if ( isLoading ) {
@@ -60,7 +53,6 @@ const GlobalCarFilterDropdown: React.FC<GlobalCarFilterDropdownProps> = ({ compa
6053 return (
6154 < Box sx = { { display : 'flex' , flexDirection : 'column' , gap : 1 , ...sx } } >
6255 < Box
63- onClick = { handleToggle }
6456 sx = { {
6557 display : 'flex' ,
6658 alignItems : 'center' ,
@@ -78,67 +70,57 @@ const GlobalCarFilterDropdown: React.FC<GlobalCarFilterDropdownProps> = ({ compa
7870 { currentCarLabel }
7971 </ Typography >
8072 </ Box >
81- < IconButton size = "small" sx = { { color : 'white' } } >
82- < ExpandMoreIcon
83- sx = { {
84- transform : expanded ? 'rotate(180deg)' : 'rotate(0deg)' ,
85- transition : 'transform 0.3s'
86- } }
87- />
88- </ IconButton >
8973 </ Box >
90- < Collapse in = { expanded } >
91- < Box
74+ < Box
75+ sx = { {
76+ display : 'flex' ,
77+ gap : 1 ,
78+ overflowX : 'auto' ,
79+ py : 1 ,
80+ '&::-webkit-scrollbar' : {
81+ height : 6
82+ } ,
83+ '&::-webkit-scrollbar-thumb' : {
84+ backgroundColor : 'rgba(255,255,255,0.3)' ,
85+ borderRadius : 3
86+ }
87+ } }
88+ >
89+ < Chip
90+ label = "All Cars"
91+ onClick = { ( ) => handleCarSelect ( null ) }
92+ variant = "outlined"
9293 sx = { {
93- display : 'flex' ,
94- gap : 1 ,
95- overflowX : 'auto' ,
96- py : 1 ,
97- '&::-webkit-scrollbar' : {
98- height : 6
99- } ,
100- '&::-webkit-scrollbar-thumb' : {
101- backgroundColor : 'rgba(255,255,255,0.3)' ,
102- borderRadius : 3
103- }
94+ borderColor : 'white' ,
95+ color : 'white' ,
96+ backgroundColor : 'transparent' ,
97+ fontWeight : ! selectedCar ? 'bold' : 'normal' ,
98+ borderWidth : ! selectedCar ? 2 : 1 ,
99+ '&:hover' : { backgroundColor : 'rgba(255,255,255,0.1)' } ,
100+ whiteSpace : 'nowrap'
104101 } }
105- >
106- < Chip
107- label = "All Cars"
108- onClick = { ( ) => handleCarSelect ( null ) }
109- variant = "outlined"
110- sx = { {
111- borderColor : 'white' ,
112- color : 'white' ,
113- backgroundColor : 'transparent' ,
114- fontWeight : ! selectedCar ? 'bold' : 'normal' ,
115- borderWidth : ! selectedCar ? 2 : 1 ,
116- '&:hover' : { backgroundColor : 'rgba(255,255,255,0.1)' } ,
117- whiteSpace : 'nowrap'
118- } }
119- />
120- { sortedCars . map ( ( car ) => {
121- const isSelected = selectedCar ? car . id === selectedCar . id : false ;
122- return (
123- < Chip
124- key = { car . id }
125- label = { car . name }
126- onClick = { ( ) => handleCarSelect ( car ) }
127- variant = "outlined"
128- sx = { {
129- borderColor : 'white' ,
130- color : 'white' ,
131- backgroundColor : 'transparent' ,
132- fontWeight : isSelected ? 'bold' : 'normal' ,
133- borderWidth : isSelected ? 2 : 1 ,
134- '&:hover' : { backgroundColor : 'rgba(255,255,255,0.1)' } ,
135- whiteSpace : 'nowrap'
136- } }
137- />
138- ) ;
139- } ) }
140- </ Box >
141- </ Collapse >
102+ />
103+ { sortedCars . map ( ( car ) => {
104+ const isSelected = selectedCar ? car . id === selectedCar . id : false ;
105+ return (
106+ < Chip
107+ key = { car . id }
108+ label = { car . name }
109+ onClick = { ( ) => handleCarSelect ( car ) }
110+ variant = "outlined"
111+ sx = { {
112+ borderColor : 'white' ,
113+ color : 'white' ,
114+ backgroundColor : 'transparent' ,
115+ fontWeight : isSelected ? 'bold' : 'normal' ,
116+ borderWidth : isSelected ? 2 : 1 ,
117+ '&:hover' : { backgroundColor : 'rgba(255,255,255,0.1)' } ,
118+ whiteSpace : 'nowrap'
119+ } }
120+ />
121+ ) ;
122+ } ) }
123+ </ Box >
142124 </ Box >
143125 ) ;
144126 }
0 commit comments