on c19b2a8 help sign in
bridge/src/store/txnCursor.js
35 lines 793 B history raw
1import React, { createContext, forwardRef, useContext, useState } from 'react';
3export const TxnCursorContext = createContext(null);
5function _useTxnCursor() {
6 const [txnCursor, setTxnCursor] = useState({});
8 return {
9 txnCursor,
10 setTxnCursor,
11 };
14export function TxnCursorProvider({ children }) {
15 const txnCursor = _useTxnCursor();
17 return (
18 <TxnCursorContext.Provider value={txnCursor}>
19 {children}
20 </TxnCursorContext.Provider>
21 );
24// Hook version
25export function useTxnCursor() {
26 return useContext(TxnCursorContext);
29// HOC version
30export const withTxnCursor = Component =>
31 forwardRef((props, ref) => (
32 <TxnCursorContext.Consumer>
33 {txnCursor => <Component ref={ref} {...txnCursor} {...props} />}
34 </TxnCursorContext.Consumer>
35 ));