All files / webview/contexts MessageRouterContext.tsx

100% Statements 9/9
100% Branches 2/2
100% Functions 3/3
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17      5x     48x 48x 48x       586x 586x 584x    
import { createContext, type ReactNode, useContext, useMemo } from 'react'
import { type MessageRouter, useMessageRouter } from '../hooks/useMessageRouter'
 
const MessageRouterCtx = createContext<MessageRouter | null>(null)
 
export function MessageRouterProvider({ children }: { children: ReactNode }) {
  const { register } = useMessageRouter()
  const value = useMemo(() => ({ register }), [register])
  return <MessageRouterCtx.Provider value={value}>{children}</MessageRouterCtx.Provider>
}
 
export function useRouter(): MessageRouter {
  const ctx = useContext(MessageRouterCtx)
  if (!ctx) throw new Error('useRouter must be used within MessageRouterProvider')
  return ctx
}