@@ -5,7 +5,14 @@ import { useSelector, useDispatch } from "react-redux";
5
5
import { AppState } from "../../../../../../shell/store/types" ;
6
6
import { MediaSortOrder } from "../../../../../../shell/store/media-revamp" ;
7
7
import { useParams } from "../../../../../../shell/hooks/useParams" ;
8
+ import { FilterButton } from "../../../../../../shell/components/Filters" ;
8
9
10
+ type SortOrder = "AtoZ" | "ZtoA" | "dateadded" ;
11
+ const SORT_ORDER : Record < SortOrder , string > = {
12
+ dateadded : "Date Added" ,
13
+ AtoZ : "Name (A to Z)" ,
14
+ ZtoA : "Name (Z to A)" ,
15
+ } as const ;
9
16
export const Sort : FC = ( ) => {
10
17
const dispatch = useDispatch ( ) ;
11
18
const [ anchorEl , setAnchorEl ] = useState < null | HTMLElement > ( null ) ;
@@ -17,32 +24,36 @@ export const Sort: FC = () => {
17
24
const handleClose = ( ) => {
18
25
setAnchorEl ( null ) ;
19
26
} ;
20
- type SortOrder = "AtoZ" | "ZtoA" | "dateadded" ;
21
27
const handleChange = ( sortOrder : SortOrder ) => {
22
28
//dispatch(setSortOrder(sortOrder));
23
29
setParams ( sortOrder , "sort" ) ;
24
30
handleClose ( ) ;
25
31
} ;
32
+
26
33
return (
27
34
< >
28
- < Button
29
- endIcon = { < ArrowDropDownIcon /> }
30
- onClick = { handleClick }
31
- variant = "outlined"
32
- size = "small"
33
- color = "inherit"
34
- sx = { {
35
- py : "1px" ,
36
- } }
37
- >
38
- Sort By
39
- </ Button >
35
+ < FilterButton
36
+ filterId = "sortBy"
37
+ isFilterActive = { false }
38
+ buttonText = { `Sort: ${
39
+ SORT_ORDER [ params . get ( "sort" ) as SortOrder ] ?? SORT_ORDER . dateadded
40
+ } `}
41
+ onOpenMenu = { handleClick }
42
+ onRemoveFilter = { ( ) => { } }
43
+ />
40
44
< Menu open = { open } onClose = { handleClose } anchorEl = { anchorEl } >
41
- < MenuItem onClick = { ( ) => handleChange ( "dateadded" ) } >
42
- Date Added
43
- </ MenuItem >
44
- < MenuItem onClick = { ( ) => handleChange ( "AtoZ" ) } > Name (A to Z)</ MenuItem >
45
- < MenuItem onClick = { ( ) => handleChange ( "ZtoA" ) } > Name (Z to A)</ MenuItem >
45
+ { Object . entries ( SORT_ORDER ) . map ( ( [ key , value ] ) => (
46
+ < MenuItem
47
+ onClick = { ( ) => handleChange ( key as SortOrder ) }
48
+ selected = {
49
+ key === "dateadded"
50
+ ? ! params . get ( "sort" ) || params . get ( "sort" ) === key
51
+ : params . get ( "sort" ) === key
52
+ }
53
+ >
54
+ { value }
55
+ </ MenuItem >
56
+ ) ) }
46
57
</ Menu >
47
58
</ >
48
59
) ;
0 commit comments