Files
supabase/apps/design-system/context/mobile-sidebar-context.tsx
Ivan Vasilov 1cd1ebfc7f chire: Sort imports in all packages, cms, design-system and ui-library apps (#41610)
Sorted all imports in all packages, `cms`, `design-system` and
`ui-library` apps by running `pnpm format` on them.

All changes in this PR are done by the script.
2026-02-05 13:54:10 +01:00

36 lines
973 B
TypeScript

'use client'
import React, { ReactNode, useCallback, useState } 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>
}