UNPKG

@msquared/etherbase-client

Version:

React hooks for interacting with Etherbase smart contracts

24 lines (23 loc) 844 B
"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; }