k8ordo
  • UI
  • Form
  • State
  • Router
  • Static
  • Server
Switch to dark mode
  • Get Started
  • Theming
  • i18n
  • Components
  • Hooks
  • Helpers
  • AI
Open navigation
Styling
  • cn
React
  • mergeRefs
  • mergeProps
  • chain
  • createSafeContext
k8ordo

React libraries that use Baseline features without holding back.

Packages
  • @k8ordo/ui
  • @k8ordo/form
  • @k8ordo/state
  • @k8ordo/router
  • @k8ordo/static
  • @k8ordo/server
UI
  • Get Started
  • Theming
  • i18n
  • Components
  • Hooks
  • Helpers
  • AI Chat
  • Generative UI
  • AI Agents
  • Storybook
Resources
  • GitHub
  • npm

© 2026 k8o — MIT License

Typeset in Noto Sans JP & M PLUS 2

Helpers

Styling
  • cn
React
  • mergeRefs
  • mergeProps
  • chain
  • createSafeContext

createSafeContext

A utility that creates a Context that throws clearly when accessed outside its Provider.

Import

Usage

Basic Usage

count: 0

Parameters

errorMessage
Type: string
Default: -
PropTypeDefault
errorMessagestring-

Return Value

[Context, useSafeContext]
Type: readonly [Context<T | null>, () => T]
Default: -
PropTypeDefault
[Context, useSafeContext]readonly [Context<T | null>, () => T]-
import { createSafeContext } from '@k8ordo/ui';
const [CounterContext, useCounter] = createSafeContext<CounterValue>(
  'useCounter must be used within CounterProvider',
);

const Provider: FC<PropsWithChildren> = ({ children }) => (
  <CounterContext value={...}>{children}</CounterContext>
);

const Child = () => {
  const { count } = useCounter(); // throws if used outside Provider
  return <span>{count}</span>;
};