diff --git a/frontend/components/CreateProposalForm.tsx b/frontend/components/CreateProposalForm.tsx index d08444e8..948816fb 100644 --- a/frontend/components/CreateProposalForm.tsx +++ b/frontend/components/CreateProposalForm.tsx @@ -14,9 +14,11 @@ import toast from 'react-hot-toast'; import { motion, AnimatePresence } from 'framer-motion'; import CategoryTags from './common/CategoryTags'; import { predictProposalSuccess } from '@/utils/successPredictor'; -import { Target, AlertCircle, Sparkles, Brain, CheckCircle2 } from 'lucide-react'; +import { Target, AlertCircle, Sparkles, Brain, CheckCircle2, Wallet } from 'lucide-react'; import { useTransaction } from '@/hooks/useTransaction'; import { ContractVersionGuard } from './common/ContractVersionGuard'; +import { useTreasuryBalance } from '@/hooks/useTreasuryBalance'; +import { validateAmountAgainstTreasury } from '@/lib/validation'; const NETWORK = STACKS_MAINNET; @@ -32,6 +34,7 @@ export default function CreateProposalForm({ userAddress }: CreateProposalFormPr const [amountError, setAmountError] = useState(''); const [error, setError] = useState(''); const [success, setSuccess] = useState(''); + const { balanceInStx, loading: treasuryLoading, error: treasuryError } = useTreasuryBalance(); const { isLoading, execute } = useTransaction({ type: 'create-proposal', @@ -151,6 +154,37 @@ export default function CreateProposalForm({ userAddress }: CreateProposalFormPr + {/* Treasury Balance Display */} +
Treasury Available
+ {treasuryLoading ? ( +Loading balance...
+ ) : treasuryError ? ( +Failed to load treasury balance
+ ) : ( ++ {balanceInStx !== null ? `${balanceInStx.toFixed(2)} STX` : '0.00 STX'} available for funding +
+ )} +