@hashiprobr/react-create-state-context
Version:
React function for simplifying the creation of state contexts
27 lines (19 loc) • 624 B
JavaScript
import React, { createContext, useState, useMemo } from 'react';
export default function createStateContext(defaultValue) {
const Context = createContext();
const OriginalProvider = Context.Provider;
function Provider(props) {
const [value, setValue] = useState(defaultValue);
const state = useMemo(() => [value, setValue], [value]);
return (
<OriginalProvider
{...props}
value={state}
>
{props.children}
</OriginalProvider>
);
}
Context.Provider = Provider;
return Context;
}