From eeb55e492779a5aa3bca2da01a3dfbe18bf4f650 Mon Sep 17 00:00:00 2001 From: Matt Leonowicz Date: Thu, 11 Jul 2019 15:19:17 +0200 Subject: [PATCH] useMedia - initialize state with call to media query Initializing state with result from call to window.matchMedia avoids possible initial flicker of returned value, when media query matched initially --- src/useMedia.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/useMedia.ts b/src/useMedia.ts index e3a5df88..ae3968c3 100644 --- a/src/useMedia.ts +++ b/src/useMedia.ts @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react'; -const useMedia = (query: string, defaultState: boolean = false) => { - const [state, setState] = useState(defaultState); +const useMedia = (query: string) => { + const [state, setState] = useState(() => window.matchMedia(query).matches); useEffect(() => { let mounted = true;