mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
- move navigation components to `apps/studio/components/layouts/Navigation` - add [FloatingMobileToolbar](https://github.com/supabase/supabase/pull/43444/changes#diff-3dffe47fd51ca851d612d8728e03b2dc344ec213d4f3a46a824d3fa32a7cc851) as quick access to tools such as search, assistant, inline editor, etc - behind feature flag and feature preview (true by default as it's a bit annoying to have to enable it all the time as previews are stored in local-storage) - fix sidebar panels closing on viewport resizing (regression from previous pr) https://github.com/user-attachments/assets/d6881e3b-5128-4306-bb82-3ca39c755dba <img width="986" height="697" alt="Screenshot 2026-03-12 at 12 40 11" src="https://github.com/user-attachments/assets/da8511e2-7d01-4237-b814-596031c747c5" />
23 lines
614 B
TypeScript
23 lines
614 B
TypeScript
'use client'
|
|
|
|
import { useEffect, useState } from 'react'
|
|
|
|
export type Viewport = { width: number; height: number }
|
|
|
|
function getViewport(): Viewport {
|
|
if (typeof window === 'undefined') return { width: 0, height: 0 }
|
|
return { width: window.innerWidth, height: window.innerHeight }
|
|
}
|
|
|
|
export function useViewport(): Viewport {
|
|
const [viewport, setViewport] = useState<Viewport>(getViewport)
|
|
|
|
useEffect(() => {
|
|
const onResize = () => setViewport(getViewport())
|
|
window.addEventListener('resize', onResize)
|
|
return () => window.removeEventListener('resize', onResize)
|
|
}, [])
|
|
|
|
return viewport
|
|
}
|