33 *
44 * SPDX-License-Identifier: MIT
55 */
6- import { HStack , MenuDivider , useDisclosure } from "@chakra-ui/react" ;
6+ import { HStack , MenuDivider } from "@chakra-ui/react" ;
77import { ReactNode , useMemo } from "react" ;
88import { useIntl } from "react-intl" ;
99import { useLocation } from "react-router" ;
10+ import { keyboardShortcuts , useShortcut } from "../../keyboard-shortcut-hooks" ;
1011import { useStore } from "../../store" ;
1112import AboutDialog from "../AboutDialog" ;
1213import ConnectFirstDialog from "../ConnectFirstDialog" ;
13- import FeedbackForm from "../FeedbackForm" ;
1414import HelpMenu from "../HelpMenu" ;
1515import HelpMenuItems , { tourMap } from "../HelpMenuItems" ;
1616import { LanguageDialog } from "../LanguageDialog" ;
@@ -27,11 +27,16 @@ interface ItemsRightProps {
2727
2828const ItemsRight = ( { menuItems, toolbarItems } : ItemsRightProps ) => {
2929 const intl = useIntl ( ) ;
30- const languageDisclosure = useDisclosure ( ) ;
31- const settingsDisclosure = useDisclosure ( ) ;
32- const aboutDialogDisclosure = useDisclosure ( ) ;
33- const feedbackDisclosure = useDisclosure ( ) ;
34- const connectFirstDisclosure = useDisclosure ( ) ;
30+ const closeDialog = useStore ( ( s ) => s . closeDialog ) ;
31+ const languageDialogOnOpen = useStore ( ( s ) => s . languageDialogOnOpen ) ;
32+ const isLanguageDialogOpen = useStore ( ( s ) => s . isLanguageDialogOpen ) ;
33+ const settingsDialogOnOpen = useStore ( ( s ) => s . settingsDialogOnOpen ) ;
34+ const isSettingsDialogOpen = useStore ( ( s ) => s . isSettingsDialogOpen ) ;
35+ const aboutDialogOnOpen = useStore ( ( s ) => s . aboutDialogOnOpen ) ;
36+ const isAboutDialogOpen = useStore ( ( s ) => s . isAboutDialogOpen ) ;
37+ const feedbackOnOpen = useStore ( ( s ) => s . feedbackFormOnOpen ) ;
38+ const connectFirstDialogOnOpen = useStore ( ( s ) => s . connectFirstDialogOnOpen ) ;
39+ const isConnectFirstDialogOpen = useStore ( ( s ) => s . isConnectFirstDialogOpen ) ;
3540 const setPostConnectTourTrigger = useStore (
3641 ( s ) => s . setPostConnectTourTrigger
3742 ) ;
@@ -52,43 +57,31 @@ const ItemsRight = ({ menuItems, toolbarItems }: ItemsRightProps) => {
5257 }
5358 }
5459 } , [ tourTriggerName ] ) ;
60+ useShortcut ( keyboardShortcuts . settings , settingsDialogOnOpen ) ;
5561 return (
5662 < >
57- < LanguageDialog
58- isOpen = { languageDisclosure . isOpen }
59- onClose = { languageDisclosure . onClose }
60- />
61- < SettingsDialog
62- isOpen = { settingsDisclosure . isOpen }
63- onClose = { settingsDisclosure . onClose }
64- />
63+ < LanguageDialog isOpen = { isLanguageDialogOpen } onClose = { closeDialog } />
64+ < SettingsDialog isOpen = { isSettingsDialogOpen } onClose = { closeDialog } />
6565 < ConnectFirstDialog
66- isOpen = { connectFirstDisclosure . isOpen }
67- onClose = { connectFirstDisclosure . onClose }
66+ isOpen = { isConnectFirstDialogOpen }
67+ onClose = { closeDialog }
6868 onChooseConnect = { ( ) => setPostConnectTourTrigger ( tourTrigger ) }
6969 explanationTextId = "connect-to-tour-body"
7070 options = { { postConnectTourTrigger : tourTrigger } }
7171 />
72- < AboutDialog
73- isOpen = { aboutDialogDisclosure . isOpen }
74- onClose = { aboutDialogDisclosure . onClose }
75- />
76- < FeedbackForm
77- isOpen = { feedbackDisclosure . isOpen }
78- onClose = { feedbackDisclosure . onClose }
79- />
72+ < AboutDialog isOpen = { isAboutDialogOpen } onClose = { closeDialog } />
8073 < HStack spacing = { 3 } display = { { base : "none" , lg : "flex" } } >
8174 { toolbarItems }
8275 < SettingsMenu
83- onLanguageDialogOpen = { languageDisclosure . onOpen }
84- onSettingsDialogOpen = { settingsDisclosure . onOpen }
76+ onLanguageDialogOpen = { languageDialogOnOpen }
77+ onSettingsDialogOpen = { settingsDialogOnOpen }
8578 />
8679 </ HStack >
8780 < HelpMenu
8881 display = { { base : "none" , md : "block" , lg : "block" } }
89- onAboutDialogOpen = { aboutDialogDisclosure . onOpen }
90- onConnectFirstDialogOpen = { connectFirstDisclosure . onOpen }
91- onFeedbackOpen = { feedbackDisclosure . onOpen }
82+ onAboutDialogOpen = { aboutDialogOnOpen }
83+ onConnectFirstDialogOpen = { connectFirstDialogOnOpen }
84+ onFeedbackOpen = { feedbackOnOpen }
9285 tourTrigger = { tourTrigger }
9386 />
9487 < ToolbarMenu
@@ -97,8 +90,8 @@ const ItemsRight = ({ menuItems, toolbarItems }: ItemsRightProps) => {
9790 label = { intl . formatMessage ( { id : "main-menu" } ) }
9891 >
9992 { menuItems }
100- < LanguageMenuItem onOpen = { languageDisclosure . onOpen } />
101- < SettingsMenuItem onOpen = { settingsDisclosure . onOpen } />
93+ < LanguageMenuItem onOpen = { languageDialogOnOpen } />
94+ < SettingsMenuItem onOpen = { settingsDialogOnOpen } />
10295 </ ToolbarMenu >
10396 { /* Toolbar items when sm window size. */ }
10497 < ToolbarMenu
@@ -107,13 +100,13 @@ const ItemsRight = ({ menuItems, toolbarItems }: ItemsRightProps) => {
107100 label = { intl . formatMessage ( { id : "main-menu" } ) }
108101 >
109102 { menuItems }
110- < LanguageMenuItem onOpen = { languageDisclosure . onOpen } />
111- < SettingsMenuItem onOpen = { settingsDisclosure . onOpen } />
103+ < LanguageMenuItem onOpen = { languageDialogOnOpen } />
104+ < SettingsMenuItem onOpen = { settingsDialogOnOpen } />
112105 < MenuDivider />
113106 < HelpMenuItems
114- onAboutDialogOpen = { aboutDialogDisclosure . onOpen }
115- onConnectFirstDialogOpen = { connectFirstDisclosure . onOpen }
116- onFeedbackOpen = { feedbackDisclosure . onOpen }
107+ onAboutDialogOpen = { aboutDialogOnOpen }
108+ onConnectFirstDialogOpen = { connectFirstDialogOnOpen }
109+ onFeedbackOpen = { feedbackOnOpen }
117110 tourTrigger = { tourTrigger }
118111 />
119112 </ ToolbarMenu >
0 commit comments