CI / install-and-build (pull_request) Successful in 1m29s
CI / format (pull_request) Successful in 51s
CI / typecheck-source (pull_request) Successful in 41s
CI / typecheck-tests (pull_request) Successful in 39s
CI / test (pull_request) Successful in 51s
CI / lint (pull_request) Successful in 21s
Co-Authored-By: gpt-5.6-terra <noreply@openai.com>
29 lines
938 B
TypeScript
29 lines
938 B
TypeScript
import {
|
|
createDispatchHook,
|
|
createSelectorHook,
|
|
createStoreHook,
|
|
Provider as RawProvider,
|
|
type ProviderProps,
|
|
type ReactReduxContextValue,
|
|
} from "react-redux";
|
|
import type { Store, State } from "./store.js";
|
|
import { createContext } from "react";
|
|
|
|
const AbodeStoreContext = createContext<ReactReduxContextValue | null>(null);
|
|
AbodeStoreContext.displayName = "AbodeStoreContext";
|
|
|
|
export function Provider(
|
|
props: Omit<ProviderProps, "context" | "store" | "serverState"> & {
|
|
store: Store;
|
|
serverState?: State;
|
|
},
|
|
) {
|
|
return <RawProvider context={AbodeStoreContext} {...props} />;
|
|
}
|
|
Object.assign(Provider, { displayName: "AbodeStoreProvider" });
|
|
export const useSelector =
|
|
createSelectorHook(AbodeStoreContext).withTypes<State>();
|
|
export const useStore = createStoreHook(AbodeStoreContext).withTypes<Store>();
|
|
export const useDispatch =
|
|
createDispatchHook(AbodeStoreContext).withTypes<Store["dispatch"]>();
|