@@ -9,6 +9,11 @@ import { InnerNavigationLink } from 'firefox-profiler/components/shared/InnerNav
99import { ListOfPublishedProfiles } from './ListOfPublishedProfiles' ;
1010
1111import explicitConnect from 'firefox-profiler/utils/connect' ;
12+ import {
13+ isDarkMode ,
14+ setLightMode ,
15+ setDarkMode ,
16+ } from 'firefox-profiler/utils/dark-mode' ;
1217import PerfScreenshot from 'firefox-profiler-res/img/jpg/perf-screenshot-2021-05-06.jpg' ;
1318import FirefoxPopupScreenshot from 'firefox-profiler-res/img/jpg/firefox-profiler-button-2021-05-06.jpg' ;
1419import {
@@ -214,6 +219,7 @@ type HomeProps = ConnectedProps<
214219
215220type HomeState = {
216221 popupInstallPhase : PopupInstallPhase ;
222+ darkMode : boolean ;
217223} ;
218224
219225type PopupInstallPhase =
@@ -256,6 +262,7 @@ class HomeImpl extends React.PureComponent<HomeProps, HomeState> {
256262
257263 this . state = {
258264 popupInstallPhase : popupInstallPhase as PopupInstallPhase ,
265+ darkMode : isDarkMode ( ) ,
259266 } ;
260267 }
261268
@@ -574,8 +581,18 @@ class HomeImpl extends React.PureComponent<HomeProps, HomeState> {
574581 this . props . triggerLoadingFromUrl ( url ) ;
575582 } ;
576583
584+ _onDarkModeChange = ( event : React . ChangeEvent < HTMLInputElement > ) => {
585+ if ( event . target . checked ) {
586+ setDarkMode ( ) ;
587+ } else {
588+ setLightMode ( ) ;
589+ }
590+ this . setState ( { darkMode : isDarkMode ( ) } ) ;
591+ } ;
592+
577593 override render ( ) {
578594 const { specialMessage } = this . props ;
595+ const { darkMode } = this . state ;
579596
580597 return (
581598 < div className = "home" >
@@ -686,6 +703,20 @@ class HomeImpl extends React.PureComponent<HomeProps, HomeState> {
686703 { /* End of grid container */ }
687704 </ section >
688705 < DragAndDropOverlay />
706+ < div className = "homeDarkModeBox" >
707+ < label className = "photon-label" htmlFor = "home-dark-mode" >
708+ < input
709+ id = "home-dark-mode"
710+ className = "photon-checkbox photon-checkbox-default"
711+ type = "checkbox"
712+ checked = { darkMode }
713+ onChange = { this . _onDarkModeChange }
714+ />
715+ < Localized id = "Home--dark-mode-title" >
716+ < span > Dark mode</ span >
717+ </ Localized >
718+ </ label >
719+ </ div >
689720 </ main >
690721 </ div >
691722 ) ;
0 commit comments