
package.dist.utils.create-context.cjs Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of react Show documentation
Show all versions of react Show documentation
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