mirror of
https://github.com/supabase/supabase.git
synced 2026-10-13 13:19:09 +03:00
* feat: tidy up header on mobile * fix: graceful searchbar header * fix: header classes and unused elements * feat: trim down logo on header * fix: logos again * chore: remove dead code * fix: classic dark logo header * fix: page padding tidy ups * fix: some font sizing * feat: updated homepage cards * fix: toc layout * fix: toc again * feat: homepage cards all the same size * fix: footer paddings * fix: pager if only 1 directional item * fix: sidebar padding issues * chore: killing all the defaults * fix: import for side nav * fix: sidebar complaining about dialog title * fix: homepage paddings * fix: killing one more default export * feat: update colours icon to francescos * fix: loose repeated copy
35 lines
972 B
TypeScript
35 lines
972 B
TypeScript
'use client'
|
|
|
|
import React, { ReactNode, useState, useCallback } from 'react'
|
|
import { MobileSidebarContext, MobileSidebarContextType } from '@/hooks/use-mobile-sidebar'
|
|
|
|
interface MobileSidebarProviderProps {
|
|
children: ReactNode
|
|
}
|
|
|
|
/**
|
|
* Provider component for mobile sidebar state
|
|
* Wraps children with context that provides mobile sidebar state and controls
|
|
*/
|
|
export function MobileSidebarProvider({ children }: MobileSidebarProviderProps) {
|
|
const [open, setOpen] = useState(false)
|
|
|
|
// Use useCallback for stable function references
|
|
const handleSetOpen = useCallback((value: boolean) => {
|
|
setOpen(value)
|
|
}, [])
|
|
|
|
const toggle = useCallback(() => {
|
|
setOpen((prev) => !prev)
|
|
}, [])
|
|
|
|
// Memoize the context value to prevent unnecessary re-renders
|
|
const value: MobileSidebarContextType = {
|
|
open,
|
|
setOpen: handleSetOpen,
|
|
toggle,
|
|
}
|
|
|
|
return <MobileSidebarContext.Provider value={value}>{children}</MobileSidebarContext.Provider>
|
|
}
|