@@ -11,18 +11,32 @@ import { ReactElement } from "react";
1111export default function MoreButton ( ) : ReactElement
1212{
1313 const [ tilesView , setTilesView ] = useSettings ( "tilesView" ) ;
14+ const [ compactView , setCompactView ] = useSettings ( "compactView" ) ;
1415
1516 const SettingsIcon : ic . FluentIcon = ic . bundleIcon ( ic . Settings20Filled , ic . Settings20Regular ) ;
16- const ViewIcon : ic . FluentIcon = ic . bundleIcon ( ic . GridKanban20Filled , ic . GridKanban20Regular ) ;
17+ const GridIcon : ic . FluentIcon = ic . bundleIcon ( ic . GridKanban20Filled , ic . GridKanban20Regular ) ;
18+ const CompactIcon : ic . FluentIcon = ic . bundleIcon ( ic . ArrowMinimizeVerticalFilled , ic . ArrowMinimizeVerticalRegular ) ;
1719 const FeedbackIcon : ic . FluentIcon = ic . bundleIcon ( ic . PersonFeedback20Filled , ic . PersonFeedback20Regular ) ;
1820 const LearnIcon : ic . FluentIcon = ic . bundleIcon ( ic . QuestionCircle20Filled , ic . QuestionCircle20Regular ) ;
1921 const BmcIcon : ic . FluentIcon = ic . bundleIcon ( BuyMeACoffee20Filled , BuyMeACoffee20Regular ) ;
2022
23+ const checkedValues = useMemo ( ( ) => ( {
24+ view : [
25+ tilesView ? "tiles" : "" ,
26+ compactView ? "compact" : ""
27+ ]
28+ } ) , [ tilesView , compactView ] ) ;
29+
30+ const onCheckedValueChange = ( _ : unknown , e : fui . MenuCheckedValueChangeData ) =>
31+ {
32+ setTilesView ( e . checkedItems . includes ( "tiles" ) ) ;
33+ setCompactView ( e . checkedItems . includes ( "compact" ) ) ;
34+ } ;
35+
2136 return (
2237 < fui . Menu
2338 hasIcons hasCheckmarks
24- checkedValues = { { tilesView : tilesView ? [ "true" ] : [ ] } }
25- onCheckedValueChange = { ( _ , e ) => setTilesView ( e . checkedItems . length > 0 ) }
39+ checkedValues = { checkedValues } onCheckedValueChange = { onCheckedValueChange }
2640 >
2741 < fui . Tooltip relationship = "label" content = { i18n . t ( "common.tooltips.more" ) } >
2842 < fui . MenuTrigger disableButtonEnhancement >
@@ -36,9 +50,12 @@ export default function MoreButton(): ReactElement
3650 < fui . MenuItem icon = { < SettingsIcon /> } onClick = { ( ) => browser . runtime . openOptionsPage ( ) } >
3751 { i18n . t ( "options_page.title" ) }
3852 </ fui . MenuItem >
39- < fui . MenuItemCheckbox name = "tilesView " value = "true " icon = { < ViewIcon /> } >
53+ < fui . MenuItemCheckbox name = "view " value = "tiles " icon = { < GridIcon /> } >
4054 { i18n . t ( "main.header.menu.tiles_view" ) }
4155 </ fui . MenuItemCheckbox >
56+ < fui . MenuItemCheckbox name = "view" value = "compact" icon = { < CompactIcon /> } >
57+ { i18n . t ( "main.header.menu.compact_view" ) }
58+ </ fui . MenuItemCheckbox >
4259
4360 < fui . MenuDivider />
4461
0 commit comments