@tapcart/app-studio-components
Version:
A library for accessing global components across different environments with a consistent API
32 lines (31 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createComponentSource = exports.ComponentProvider = exports.useComponents = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
// Create a context for components
const ComponentContext = (0, react_1.createContext)({});
/**
* Hook to access global components
* @returns Record of available components
*/
function useComponents() {
return (0, react_1.useContext)(ComponentContext);
}
exports.useComponents = useComponents;
/**
* Provider component that makes components available via useComponents hook
*/
function ComponentProvider({ children, componentSource }) {
return ((0, jsx_runtime_1.jsx)(ComponentContext.Provider, Object.assign({ value: componentSource }, { children: children })));
}
exports.ComponentProvider = ComponentProvider;
/**
* Helper function to create a component source from a map of components
* @param components Map of component names to component implementations
* @returns Component source object
*/
function createComponentSource(components) {
return components;
}
exports.createComponentSource = createComponentSource;