@@ -10,13 +10,16 @@ import Yoga.Prelude.View
1010
1111import Data.Array as Array
1212import Fahrtwind as F
13+import MediaQuery (matchMedia, matches)
14+import MediaQuery.Types (MediaQueryList)
15+import MediaQuery.Types as MediaQueryList
1316import React.Basic.DOM as R
1417import React.Basic.Emotion as E
1518import React.Basic.Hooks as React
1619import Web.Event.EventTarget (addEventListener, eventListener, removeEventListener)
1720import Web.HTML (window)
1821import Web.HTML.Event.EventTypes as Event
19−import Yoga.Block.Container.Style (DarkOrLightMode(..), matchMedia, matches, setDarkOrLightMode)
22+import Yoga.Block.Container.Style (DarkOrLightMode(..), setDarkOrLightMode)
2023import Yoga.Block.Container.Style as Styles
2124
2225type PropsF f =
@@ -32,10 +35,10 @@ type Props =
3235component ∷ ∀ p q. Union p q Props => ReactComponent { | p }
3336component = rawComponent
3437
35−mkPrefersDark ∷ Effect Styles.MediaQueryList
38+mkPrefersDark ∷ Effect MediaQueryList
3639mkPrefersDark = matchMedia "(prefers-color-scheme: dark)" =<< window
3740
38−mkPrefersLight ∷ Effect Styles.MediaQueryList
41+mkPrefersLight ∷ Effect MediaQueryList
3942mkPrefersLight = matchMedia "(prefers-color-scheme: light)" =<< window
4043
4144rawComponent ∷ ∀ p. ReactComponent { | p }
@@ -64,18 +67,18 @@ rawComponent =
6467 whenM (matches prefersDarkMediaQuery) do
6568 setSystemThemeVariant (Just DarkMode)
6669 notifySystemThemeChanged DarkMode
67− addEventListener Event.change darkModeListener true (Styles.toEventTarget prefersDarkMediaQuery)
70+ addEventListener Event.change darkModeListener true (MediaQueryList.toEventTarget prefersDarkMediaQuery)
6871 -- Light Mode listener
6972 lightModeListener <-
7073 eventListener \_ -> do
7174 whenM (matches prefersLightMediaQuery) do
7275 setSystemThemeVariant (Just LightMode)
7376 notifySystemThemeChanged LightMode
74− addEventListener Event.change darkModeListener true (Styles.toEventTarget prefersDarkMediaQuery)
75− addEventListener Event.change lightModeListener true (Styles.toEventTarget prefersLightMediaQuery)
77+ addEventListener Event.change darkModeListener true (MediaQueryList.toEventTarget prefersDarkMediaQuery)
78+ addEventListener Event.change lightModeListener true (MediaQueryList.toEventTarget prefersLightMediaQuery)
7679 pure do
77− removeEventListener Event.change darkModeListener true (Styles.toEventTarget prefersDarkMediaQuery)
78− removeEventListener Event.change lightModeListener true (Styles.toEventTarget prefersLightMediaQuery)
80+ removeEventListener Event.change darkModeListener true (MediaQueryList.toEventTarget prefersDarkMediaQuery)
81+ removeEventListener Event.change lightModeListener true (MediaQueryList.toEventTarget prefersLightMediaQuery)
7982 pure
8083 $ fragment
8184 [ R.div' </ { ref }