Skip to content

Commit 3acb61b

Browse files
authored
fix: react state loop from hooks useMediaQuery (#6031)
* fix: react state loop from hooks useMediaQuerry * chore: update test cases hooks media query
1 parent 6603460 commit 3acb61b

File tree

2 files changed

+3
-35
lines changed

2 files changed

+3
-35
lines changed

web-app/src/hooks/__tests__/useMediaQuery.test.ts

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -266,14 +266,7 @@ describe('useSmallScreenStore', () => {
266266
})
267267

268268
describe('useSmallScreen', () => {
269-
beforeEach(() => {
270-
// Reset the store state before each test
271-
act(() => {
272-
useSmallScreenStore.getState().setIsSmallScreen(false)
273-
})
274-
})
275-
276-
it('should return small screen state and update store', () => {
269+
it('should return small screen state', () => {
277270
const mockMediaQueryList = {
278271
matches: true,
279272
addEventListener: vi.fn(),
@@ -285,7 +278,6 @@ describe('useSmallScreen', () => {
285278
const { result } = renderHook(() => useSmallScreen())
286279

287280
expect(result.current).toBe(true)
288-
expect(useSmallScreenStore.getState().isSmallScreen).toBe(true)
289281
})
290282

291283
it('should update when media query changes', () => {
@@ -309,7 +301,6 @@ describe('useSmallScreen', () => {
309301
})
310302

311303
expect(result.current).toBe(true)
312-
expect(useSmallScreenStore.getState().isSmallScreen).toBe(true)
313304
})
314305

315306
it('should use correct media query for small screen detection', () => {
@@ -325,20 +316,4 @@ describe('useSmallScreen', () => {
325316

326317
expect(mockMatchMedia).toHaveBeenCalledWith('(max-width: 768px)')
327318
})
328-
329-
it('should persist state across multiple hook instances', () => {
330-
const mockMediaQueryList = {
331-
matches: true,
332-
addEventListener: vi.fn(),
333-
removeEventListener: vi.fn(),
334-
}
335-
336-
mockMatchMedia.mockReturnValue(mockMediaQueryList)
337-
338-
const { result: result1 } = renderHook(() => useSmallScreen())
339-
const { result: result2 } = renderHook(() => useSmallScreen())
340-
341-
expect(result1.current).toBe(true)
342-
expect(result2.current).toBe(true)
343-
})
344319
})

web-app/src/hooks/useMediaQuery.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,7 @@ export function useMediaQuery(
7777
return matches || false
7878
}
7979

80-
// Specific hook for small screen detection with state management
80+
// Specific hook for small screen detection
8181
export const useSmallScreen = (): boolean => {
82-
const { isSmallScreen, setIsSmallScreen } = useSmallScreenStore()
83-
const mediaQuery = useMediaQuery('(max-width: 768px)')
84-
85-
useEffect(() => {
86-
setIsSmallScreen(mediaQuery)
87-
}, [mediaQuery, setIsSmallScreen])
88-
89-
return isSmallScreen
82+
return useMediaQuery('(max-width: 768px)')
9083
}

0 commit comments

Comments
 (0)