@msquared/etherbase-client
Version:
React hooks for interacting with Etherbase smart contracts
24 lines (23 loc) • 844 B
JavaScript
"use client";
import React, { createContext, useContext, useEffect, useState } from "react";
import { initializeApp } from "./config";
const EtherbaseContext = createContext({
initialized: false,
});
export function EtherbaseProvider({ config, children, }) {
const [initialized, setInitialized] = useState(false);
useEffect(() => {
if (!initialized) {
initializeApp(config);
setInitialized(true);
}
}, [config, initialized]);
return (React.createElement(EtherbaseContext.Provider, { value: { initialized } }, initialized ? children : null));
}
export function useEtherbaseContext() {
const context = useContext(EtherbaseContext);
if (context === undefined) {
throw new Error("useEtherbaseContext must be used within an EtherbaseProvider");
}
return context;
}