diff --git a/frontend/src/components/AdminPanel.test.tsx b/frontend/src/components/AdminPanel.test.tsx index cffc3c35..3abbf3d5 100644 --- a/frontend/src/components/AdminPanel.test.tsx +++ b/frontend/src/components/AdminPanel.test.tsx @@ -19,6 +19,10 @@ vi.mock('../hooks/useTransaction', () => ({ useTransaction: vi.fn(), })) +vi.mock('../context/NetworkContext', () => ({ + useNetwork: () => ({ network: 'testnet', mismatch: { isMismatch: false } }), +})) + const mockAddToast = vi.fn() const mockUpdateFees = vi.fn() const mockExecute = vi.fn() diff --git a/frontend/src/components/AdminPanel.tsx b/frontend/src/components/AdminPanel.tsx index f6fa184d..33714698 100644 --- a/frontend/src/components/AdminPanel.tsx +++ b/frontend/src/components/AdminPanel.tsx @@ -5,6 +5,7 @@ import { useStellarContext } from '../context/StellarContext' import { useToast } from '../context/ToastContext' import { useFactoryState } from '../hooks/useFactoryState' import { useTransaction } from '../hooks/useTransaction' +import { useNetworkGuard } from '../hooks/useNetworkGuard' // Stroops → display XLM (7 decimals) function stroopsToDisplay(stroops: string): string { @@ -26,6 +27,7 @@ export const AdminPanel: React.FC = () => { const { stellarService } = useStellarContext() const { addToast } = useToast() const { state, isLoading: stateLoading, refetch } = useFactoryState() + const { blocked: networkBlocked, reason: networkReason } = useNetworkGuard() const [baseFee, setBaseFee] = useState('') const [metadataFee, setMetadataFee] = useState('') @@ -149,11 +151,17 @@ export const AdminPanel: React.FC = () => { type="submit" variant="primary" loading={isPending} - disabled={isPending} + disabled={isPending || networkBlocked} className="w-full" > {isPending ? 'Submitting…' : 'Submit Changes'} + + {networkBlocked && networkReason && ( +
+ {networkReason} +
+ )}+ {networkReason} +
+ )}+ {networkReason} +
+ )} {!hasSufficientBalance && (