File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 77
88type Home struct {
99 app.Compo
10+
11+ removeEventListener func ()
1012}
1113
1214func (c * Home ) Render () app.UI {
@@ -185,3 +187,44 @@ func (c *Home) Render() app.UI {
185187 },
186188 }
187189}
190+
191+ func (c * Home ) OnMount (ctx app.Context ) {
192+ darkModeMediaQuery := app .Window ().Call ("matchMedia" , "(prefers-color-scheme: dark)" )
193+
194+ updateTheme := func () {
195+ app .
196+ Window ().
197+ Get ("document" ).
198+ Get ("documentElement" ).
199+ Get ("classList" ).
200+ Call ("toggle" , "pf-v6-theme-dark" , darkModeMediaQuery .Get ("matches" ))
201+ }
202+
203+ updateThemeEventListener := app .FuncOf (func (this app.Value , args []app.Value ) any {
204+ updateTheme ()
205+
206+ return nil
207+ })
208+
209+ darkModeMediaQuery .Call (
210+ "addEventListener" ,
211+ "change" ,
212+ updateThemeEventListener ,
213+ )
214+
215+ c .removeEventListener = func () {
216+ darkModeMediaQuery .Call (
217+ "removeEventListener" ,
218+ "change" ,
219+ updateThemeEventListener ,
220+ )
221+ }
222+
223+ updateTheme ()
224+ }
225+
226+ func (c * Home ) OnDismount () {
227+ if c .removeEventListener != nil {
228+ c .removeEventListener ()
229+ }
230+ }
You can’t perform that action at this time.
0 commit comments