mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
wip <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit # Release Notes * **New Features** * Added a new Learn application offering foundational Supabase courses with interactive documentation * Courses include Architecture, Authentication, Data Fundamentals, Security, Storage, Realtime, and Edge Functions * Chapter tracking and progress indicators for course completions * Responsive sidebar navigation with search/command menu * Theme switching support (light, dark, classic dark modes) * Mobile-friendly course interface <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Alan Daniel <stylesshjs@gmail.com> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
36 lines
961 B
TypeScript
36 lines
961 B
TypeScript
'use client'
|
|
|
|
import { createContext, useContext } from 'react'
|
|
|
|
/**
|
|
* Context type for mobile menu state and controls
|
|
*/
|
|
export interface MobileMenuContextType {
|
|
/** Current state of the mobile menu */
|
|
open: boolean
|
|
/** Function to set the mobile menu state */
|
|
setOpen: (open: boolean) => void
|
|
/** Function to toggle the mobile menu state */
|
|
toggle: () => void
|
|
}
|
|
|
|
// Create context with null as default value to indicate it's not provided
|
|
export const MobileMenuContext = createContext<MobileMenuContextType | null>(null)
|
|
|
|
/**
|
|
* Hook to access the mobile menu state and controls
|
|
* Must be used within a MobileMenuProvider
|
|
*/
|
|
export function useMobileMenu(): MobileMenuContextType {
|
|
const context = useContext(MobileMenuContext)
|
|
|
|
if (context === null) {
|
|
throw new Error(
|
|
'useMobileMenu must be used within a MobileMenuProvider. ' +
|
|
'Ensure your component is wrapped with MobileMenuProvider.'
|
|
)
|
|
}
|
|
|
|
return context
|
|
}
|