Skip to content

Commit

Permalink
dope
Browse files Browse the repository at this point in the history
  • Loading branch information
Zizzamia committed Aug 12, 2024
1 parent d3bfed1 commit 28db987
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
18 changes: 15 additions & 3 deletions src/transaction/components/TransactionProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import { useCallsStatus } from '../hooks/useCallsStatus';
import { useWriteContract } from '../hooks/useWriteContract';
import { useWriteContracts } from '../hooks/useWriteContracts';
import type {
LifeCycleStateName,
LifeCycleState,
TransactionContextType,
TransactionProviderReact,
} from '../types';
Expand Down Expand Up @@ -60,9 +60,11 @@ export function TransactionProvider({
const config = useConfig();
const [errorMessage, setErrorMessage] = useState('');
const [isToastVisible, setIsToastVisible] = useState(false);
const [lifeCycleState, setLifeCycleState] = useState<LifeCycleState>({
stateName: 'init',
stateData: {},
}); // Component lifecycle
const [receiptArray, setReceiptArray] = useState<TransactionReceipt[]>([]);
const [stateName, setStateName] = useState<LifeCycleStateName>('init'); // Components lifecycle state name
const [stateData, setStateData] = useState({}); // Components lifecycle state data
const [transactionId, setTransactionId] = useState('');
const [transactionHashArray, setTransactionHashArray] = useState<Address[]>(
[],
Expand Down Expand Up @@ -94,6 +96,16 @@ export function TransactionProvider({
hash: writeContractTransactionHash || transactionHash,
});

// Component lifecycle emitters
useEffect(() => {
// Emit Error
if (lifeCycleState.stateName === 'error') {
onError?.(lifeCycleState.stateData);
}
// Emit State
onState?.(lifeCycleState.stateName, lifeCycleState.stateData);
}, [onState, lifeCycleState.stateData, lifeCycleState.stateName]);

const getTransactionReceipts = useCallback(async () => {
const receipts = [];
for (const hash of transactionHashArray) {
Expand Down
10 changes: 9 additions & 1 deletion src/transaction/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,15 @@ import type {
/**
* Note: exported as public Type
*/
export type LifeCycleStateName = 'init';
export type LifeCycleState =
| {
stateName: 'init';
stateData: {};
}
| {
stateName: 'error';
stateData: TransactionError;
};

export type IsSpinnerDisplayedProps = {
errorMessage?: string;
Expand Down

0 comments on commit 28db987

Please sign in to comment.