diff --git a/components/_util/responsiveObserver.ts b/components/_util/responsiveObserver.ts index be7dea6f41..998fc777eb 100644 --- a/components/_util/responsiveObserver.ts +++ b/components/_util/responsiveObserver.ts @@ -69,13 +69,13 @@ export default function useResponsiveObserver() { return React.useMemo(() => { const subscribers = new Map(); let subUid = -1; - let screens = {}; + let screens: Partial> = {}; return { matchHandlers: {} as { [prop: string]: { mql: MediaQueryList; - listener: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null; + listener: (this: MediaQueryList, ev: MediaQueryListEvent) => void; }; }, dispatch(pointMap: ScreenMap) { @@ -84,7 +84,9 @@ export default function useResponsiveObserver() { return subscribers.size >= 1; }, subscribe(func: SubscribeFunc): number { - if (!subscribers.size) this.register(); + if (!subscribers.size) { + this.register(); + } subUid += 1; subscribers.set(subUid, func); func(screens); @@ -92,7 +94,9 @@ export default function useResponsiveObserver() { }, unsubscribe(paramToken: number) { subscribers.delete(paramToken); - if (!subscribers.size) this.unregister(); + if (!subscribers.size) { + this.unregister(); + } }, unregister() { Object.keys(responsiveMap).forEach((screen) => { @@ -117,7 +121,6 @@ export default function useResponsiveObserver() { mql, listener, }; - listener(mql); }); }, @@ -129,7 +132,7 @@ export default function useResponsiveObserver() { export const matchScreen = (screens: ScreenMap, screenSizes?: ScreenSizeMap) => { if (screenSizes && typeof screenSizes === 'object') { for (let i = 0; i < responsiveArray.length; i++) { - const breakpoint: Breakpoint = responsiveArray[i]; + const breakpoint = responsiveArray[i]; if (screens[breakpoint] && screenSizes[breakpoint] !== undefined) { return screenSizes[breakpoint]; }