diff --git a/.changeset/friendly-emus-beam.md b/.changeset/friendly-emus-beam.md new file mode 100644 index 00000000..f4c8c106 --- /dev/null +++ b/.changeset/friendly-emus-beam.md @@ -0,0 +1,16 @@ +--- +"@dojoengine/sdk": patch +"template-vite-ts": patch +"@dojoengine/core": patch +"@dojoengine/create-burner": patch +"@dojoengine/create-dojo": patch +"@dojoengine/predeployed-connector": patch +"@dojoengine/react": patch +"@dojoengine/state": patch +"@dojoengine/torii-client": patch +"@dojoengine/torii-wasm": patch +"@dojoengine/utils": patch +"@dojoengine/utils-wasm": patch +--- + +fix: createStore now fit to either vanilla or react store diff --git a/packages/sdk/src/react/hooks.ts b/packages/sdk/src/react/hooks.ts index 3be947b2..7555556d 100644 --- a/packages/sdk/src/react/hooks.ts +++ b/packages/sdk/src/react/hooks.ts @@ -2,8 +2,9 @@ import { useContext } from "react"; import { BigNumberish } from "starknet"; import { SchemaType } from "../types"; import { DojoContext, DojoContextType } from "./provider"; -import { create } from "zustand"; +import { create, StoreApi, UseBoundStore } from "zustand"; import { createDojoStoreFactory } from "../state/zustand"; +import { GameState } from "../state"; /** * Factory function to create a React Zustand store based on a given SchemaType. @@ -12,7 +13,10 @@ import { createDojoStoreFactory } from "../state/zustand"; * @returns A Zustand hook tailored to the provided schema. */ export function createDojoStore() { - return createDojoStoreFactory(create); + // hacktually until I find a proper type input to createDojoStoreFactory + return createDojoStoreFactory(create) as unknown as UseBoundStore< + StoreApi> + >; } /** diff --git a/packages/sdk/src/state/zustand.ts b/packages/sdk/src/state/zustand.ts index c8e2055e..4aaf0524 100644 --- a/packages/sdk/src/state/zustand.ts +++ b/packages/sdk/src/state/zustand.ts @@ -1,4 +1,4 @@ -import { type StateCreator, type StoreApi } from "zustand"; +import { UseBoundStore, type StateCreator, type StoreApi } from "zustand"; import { immer } from "zustand/middleware/immer"; import { Draft, WritableDraft, applyPatches, produceWithPatches } from "immer";