@evolu/react
Version:
Evolu for React
21 lines (19 loc) • 667 B
text/typescript
import { Evolu } from "@evolu/common/local-first";
import { useContext } from "react";
import { EvoluContext } from "./EvoluContext.js";
import type { createUseEvolu } from "./createUseEvolu.js";
/**
* React Hook returning a generic instance of {@link Evolu}.
*
* This is intended for internal usage. Applications should use
* {@link createUseEvolu}, which provides a correctly typed instance.
*/
export const useEvolu = (): Evolu => {
const evolu = useContext(EvoluContext);
if (evolu == null) {
throw new Error(
"Could not find Evolu context value. Ensure the component is wrapped in an <EvoluProvider>.",
);
}
return evolu as Evolu;
};