diff --git a/packages/ui/src/forum/modals/CreateThreadModal/CreateThreadModal.tsx b/packages/ui/src/forum/modals/CreateThreadModal/CreateThreadModal.tsx index 02a7f1bda9..67ce558f3d 100644 --- a/packages/ui/src/forum/modals/CreateThreadModal/CreateThreadModal.tsx +++ b/packages/ui/src/forum/modals/CreateThreadModal/CreateThreadModal.tsx @@ -55,6 +55,11 @@ export const CreateThreadModal = () => { canAfford || send('FAIL') } } + + if (state.matches('beforeTransaction') && balance && minimumTransactionCost) { + const canAfford = balance.transferable.gte(minimumTransactionCost) + send(canAfford ? 'PASS' : 'FAIL') + } }, [state.value, member?.id, minimumTransactionCost, balance]) if (state.matches('generalDetails') && member) { diff --git a/packages/ui/src/forum/modals/CreateThreadModal/machine.ts b/packages/ui/src/forum/modals/CreateThreadModal/machine.ts index 942bc8b6f9..ddacd117bb 100644 --- a/packages/ui/src/forum/modals/CreateThreadModal/machine.ts +++ b/packages/ui/src/forum/modals/CreateThreadModal/machine.ts @@ -31,6 +31,7 @@ type CreateThreadState = | { value: 'requirementsVerification'; context: EmptyObject } | { value: 'requirementsFailed'; context: EmptyObject } | { value: 'generalDetails'; context: DetailsContext } + | { value: 'beforeTransaction'; context: TransactionContext } | { value: 'transaction'; context: TransactionContext } | { value: 'success'; context: Required } | { value: 'error'; context: CreateThreadContext & { transactionEvents: EventRecord[] } } @@ -78,6 +79,12 @@ export const createThreadMachine = createMachine