import { createContext, useContext } from "react";
import { useStore, type StoreApi } from "zustand";
import type { EditorStore } from "@/stores/editorStore";

export const EditorStoreContext = createContext<StoreApi<EditorStore> | null>(null);

export function useEditorCtx<T>(selector: (s: EditorStore) => T): T {
  const store = useContext(EditorStoreContext);
  if (!store) throw new Error("useEditorCtx must be used within EditorStoreContext.Provider");
  return useStore(store, selector);
}
