All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.dist.utils.create-context.cjs Maven / Gradle / Ivy

Go to download

A collection of unstyled, accessible UI components for React, utilizing state machines for seamless interaction.

The newest version!
'use client';
'use strict';

Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });

const react = require('react');

function getErrorMessage(hook, provider) {
  return `${hook} returned \`undefined\`. Seems you forgot to wrap component within ${provider}`;
}
function createContext(options = {}) {
  const {
    name,
    strict = true,
    hookName = "useContext",
    providerName = "Provider",
    errorMessage,
    defaultValue
  } = options;
  const Context = react.createContext(defaultValue);
  Context.displayName = name;
  function useContext() {
    const context = react.useContext(Context);
    if (!context && strict) {
      const error = new Error(errorMessage ?? getErrorMessage(hookName, providerName));
      error.name = "ContextError";
      Error.captureStackTrace?.(error, useContext);
      throw error;
    }
    return context;
  }
  return [Context.Provider, useContext, Context];
}

exports.createContext = createContext;




© 2015 - 2025 Weber Informatics LLC | Privacy Policy