import React from 'react'; import { Dialog, DialogTitle, DialogContent, DialogActions, Typography, Button, Box, Alert, Stack, alpha, } from '@mui/material'; import { Block as BlockIcon, Upgrade as UpgradeIcon, Info as InfoIcon, } from '@mui/icons-material'; import { PreflightCheckResponse } from '../../services/billingService'; import { useNavigate } from 'react-router-dom'; interface PreflightBlockDialogProps { open: boolean; onClose: () => void; response: PreflightCheckResponse | null; operationName?: string; } export const PreflightBlockDialog: React.FC = ({ open, onClose, response, operationName = 'This operation', }) => { const navigate = useNavigate(); if (!response) return null; const blockedOperation = response.operations.find((op) => !op.allowed); const message = blockedOperation?.message || 'Operation blocked by subscription limits'; const limitInfo = blockedOperation?.limit_info; const handleUpgrade = () => { navigate('/pricing'); onClose(); }; return ( Operation Blocked {operationName} cannot proceed {message} {limitInfo && ( Usage Limits Current: {limitInfo.current_usage.toLocaleString()} Limit: {limitInfo.limit.toLocaleString()} Remaining: {limitInfo.remaining.toLocaleString()} )} {response.estimated_cost > 0 && ( Estimated Cost: ${response.estimated_cost.toFixed(4)} )} ); };