@@ -46,6 +46,7 @@ import {
4646} from '../../../../state/selectors/proBackendData' ;
4747import { focusVisibleBoxShadowOutsetStr } from '../../../../styles/focusVisible' ;
4848import { createButtonOnKeyDownForClickEventHandler } from '../../../../util/keyboardShortcuts' ;
49+ import { useDebugMode } from '../../../../state/selectors/debug' ;
4950
5051function SessionIconForSettings ( props : Omit < SessionIconProps , 'iconSize' | 'style' > ) {
5152 return (
@@ -272,33 +273,40 @@ const StyledButtonSessionInfo = styled.span<{ opacity?: number }>`
272273` ;
273274
274275const SessionInfo = ( ) => {
275- const [ clickCount , setClickCount ] = useState ( 0 ) ;
276-
276+ const [ , setClickCount ] = useState ( 0 ) ;
277277 const dispatch = getAppDispatch ( ) ;
278+ const inDebugMode = useDebugMode ( ) ;
279+
280+ const onClickLogo = ( ) => showLinkVisitWarningDialog ( 'https://token.getsession.org/' , dispatch ) ;
278281
279- const openVersion = createButtonOnKeyDownForClickEventHandler ( ( ) =>
282+ const onClickVersion = ( ) =>
280283 showLinkVisitWarningDialog (
281284 `https://github.com/session-foundation/session-desktop/releases/tag/v${ window . versionInfo . version } ` ,
282285 dispatch
283- )
284- ) ;
286+ ) ;
285287
286- const openCommit = createButtonOnKeyDownForClickEventHandler ( ( ) => {
287- setClickCount ( clickCount + 1 ) ;
288- if ( clickCount === 10 ) {
289- dispatch ( setDebugMode ( true ) ) ;
290- setClickCount ( 0 ) ;
291- }
292- } ) ;
288+ const onClickCommit = ( ) =>
289+ setClickCount ( n => {
290+ if ( n === 9 ) {
291+ dispatch ( setDebugMode ( ! inDebugMode ) ) ;
292+ ToastUtils . pushToastSuccess (
293+ 'toggle-debug-mode' ,
294+ tr ( inDebugMode ? 'debugModeDisabledToastDev' : 'debugModeEnabledToastDev' )
295+ ) ;
296+ return 0 ;
297+ }
298+ return n + 1 ;
299+ } ) ;
300+
301+ const onKeyDownVersion = createButtonOnKeyDownForClickEventHandler ( onClickVersion ) ;
302+ const onKeyDownCommit = createButtonOnKeyDownForClickEventHandler ( onClickCommit ) ;
293303
294304 return (
295305 < StyledVersionInfo >
296306 < SessionIconButton
297307 iconSize = "medium"
298308 iconType = "sessionTokenLogoWithText"
299- onClick = { ( ) => {
300- showLinkVisitWarningDialog ( 'https://token.getsession.org/' , dispatch ) ;
301- } }
309+ onClick = { onClickLogo }
302310 // disable transition here as the transition does the opposite that usual (hovering makes it more opaque/bright)
303311 style = { { transition : 'none' } }
304312 />
@@ -308,18 +316,10 @@ const SessionInfo = () => {
308316 $alignItems = "center"
309317 $flexGap = "var(--margins-sm)"
310318 >
311- < StyledButtonSessionInfo
312- onKeyDown = { openVersion }
313- onClick = { ( ) => void openVersion ( null as any ) }
314- tabIndex = { 0 }
315- >
319+ < StyledButtonSessionInfo onKeyDown = { onKeyDownVersion } onClick = { onClickVersion } tabIndex = { 0 } >
316320 v{ window . versionInfo . version }
317321 </ StyledButtonSessionInfo >
318- < StyledButtonSessionInfo
319- onKeyDown = { openCommit }
320- onClick = { ( ) => void openCommit ( null as any ) }
321- tabIndex = { 0 }
322- >
322+ < StyledButtonSessionInfo onKeyDown = { onKeyDownCommit } onClick = { onClickCommit } tabIndex = { 0 } >
323323 { window . versionInfo . commitHash ?. slice ( 0 , 8 ) }
324324 </ StyledButtonSessionInfo >
325325 </ Flex >
0 commit comments