Skip to content

createStoreContext

Creates a store context which is a regular React context with a default value of null. The generic type parameter is the type of the store creator function.

const StoreContext = createStoreContext<TStoreCreator>();

A store context that defaults to null.

import { createStore } from "dharma-core";
import { createStoreContext } from "dharma-react";
import { useMemo } from "react";
const createCounterStore = (initialCount: number) => {
return createStore({
initialState: { count: initialCount },
actions: ({ set }) => ({
increment: () => set((state) => ({ count: state.count + 1 })),
decrement: () => set((state) => ({ count: state.count - 1 })),
}),
});
};
const StoreContext = createStoreContext<typeof createCounterStore>();
function StoreProvider({
children,
initialCount,
}: {
children: React.ReactNode;
initialCount: number;
}) {
const store = useMemo(() => createCounterStore(initialCount), [initialCount]);
return <StoreContext value={store}>{children}</StoreContext>;
}