Files
supabase/apps/learn/hooks/use-mobile-menu.ts
dda0b526ac Feat/learn (#41566)
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>
2026-02-04 21:36:24 -03:30

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
}