UNPKG

@aioha/react-provider

Version:

React provider for Aioha

35 lines 1.29 kB
import React, { createContext, useContext, useEffect, useState } from 'react'; export const AiohaContext = createContext(undefined); export const AiohaProvider = ({ aioha, children }) => { const [user, setUser] = useState(aioha.getCurrentUser()); const [provider, setProvider] = useState(aioha.getCurrentProvider()); const [otherUsers, setOtherUsers] = useState(aioha.getOtherLogins()); const update = () => { setUser(aioha.getCurrentUser()); setProvider(aioha.getCurrentProvider()); setOtherUsers(aioha.getOtherLogins()); }; useEffect(() => { aioha.on('connect', update); aioha.on('disconnect', update); aioha.on('account_changed', update); return () => { aioha.off('connect', update); aioha.off('disconnect', update); aioha.off('account_changed', update); }; }, []); return (React.createElement(AiohaContext.Provider, { value: { aioha, user, provider, otherUsers } }, children)); }; export const useAioha = () => { const ctx = useContext(AiohaContext); if (!ctx) throw new Error('useAioha must be used within an AiohaProvider'); return ctx; }; //# sourceMappingURL=index.js.map