@@ -6,36 +6,29 @@ use wasm_bindgen::{prelude::Closure, JsCast};
66pub enum PreferredColorScheme {
77 Light ,
88 Dark ,
9- Err ( String ) ,
109}
1110
1211static INIT : Once = Once :: new ( ) ;
1312
1413/// Retrieves (as well as listens for changes) to the user's preferred color scheme (dark or light) so your application can adapt accordingly.
15- pub fn use_preferred_color_scheme ( cx : & ScopeState ) -> PreferredColorScheme {
14+ pub fn use_preferred_color_scheme ( cx : & ScopeState ) -> Result < PreferredColorScheme , String > {
1615 // This code is kinda messy..
1716 let window = match web_sys:: window ( ) {
1817 Some ( w) => w,
1918 None => {
20- return PreferredColorScheme :: Err (
21- "not running in wasm context: window doesn't exist" . to_string ( ) ,
22- )
19+ return Err ( "Not running in wasm context: window doesn't exist" . to_string ( ) )
2320 }
2421 } ;
2522
2623 let media_query_list = match window. match_media ( "(prefers-color-scheme: dark)" ) {
2724 Ok ( opt) => match opt {
2825 Some ( m) => m,
2926 None => {
30- return PreferredColorScheme :: Err (
31- "failed to determine preferred scheme" . to_string ( ) ,
32- )
27+ return Err ( "Failed to determine preferred scheme" . to_string ( ) )
3328 }
3429 } ,
3530 Err ( e) => {
36- return PreferredColorScheme :: Err ( e. as_string ( ) . unwrap_or (
37- "failed to determine preferred scheme and couldn't retrieve error" . to_string ( ) ,
38- ) )
31+ return Err ( e. as_string ( ) . unwrap_or ( "Failed to determine preferred scheme and couldn't retrieve error" . to_string ( ) ) )
3932 }
4033 } ;
4134
@@ -57,7 +50,7 @@ pub fn use_preferred_color_scheme(cx: &ScopeState) -> PreferredColorScheme {
5750 media_query_list. set_onchange ( Some ( cb. unchecked_ref ( ) ) ) ;
5851 } ) ;
5952
60- determine_scheme ( media_query_list. matches ( ) )
53+ Ok ( determine_scheme ( media_query_list. matches ( ) ) )
6154}
6255
6356fn determine_scheme ( value : bool ) -> PreferredColorScheme {
0 commit comments