/** * @ai-summary Dialog shown when users reach their vehicle limit * @ai-context Displays tier comparison and upgrade prompt for vehicle limits */ import React from 'react'; import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, Box, Chip, useMediaQuery, useTheme, IconButton, } from '@mui/material'; import LockOutlinedIcon from '@mui/icons-material/LockOutlined'; import CloseIcon from '@mui/icons-material/Close'; import type { SubscriptionTier } from '../../features/settings/types/profile.types'; interface VehicleLimitDialogProps { open: boolean; onClose: () => void; currentCount: number; limit: number; currentTier: SubscriptionTier; } const tierDisplayNames: Record = { free: 'Free', pro: 'Pro', enterprise: 'Enterprise', }; const tierColors: Record = { free: 'default', pro: 'primary', enterprise: 'secondary', }; const getUpgradePrompt = (tier: SubscriptionTier): string => { if (tier === 'free') { return 'Free tier is limited to 2 vehicles. Upgrade to Pro for up to 5 vehicles, or Enterprise for unlimited.'; } else if (tier === 'pro') { return 'Pro tier is limited to 5 vehicles. Upgrade to Enterprise for unlimited vehicles.'; } return 'Upgrade to access additional vehicles.'; }; const getRequiredTier = (tier: SubscriptionTier): SubscriptionTier => { if (tier === 'free') return 'pro'; if (tier === 'pro') return 'enterprise'; return 'pro'; }; export const VehicleLimitDialog: React.FC = ({ open, onClose, currentCount, limit, currentTier, }) => { const theme = useTheme(); const isSmall = useMediaQuery(theme.breakpoints.down('sm')); const requiredTier = getRequiredTier(currentTier); const upgradePrompt = getUpgradePrompt(currentTier); const handleUpgradeClick = () => { // Navigate to upgrade page when Stripe integration is added // For now, just close the dialog onClose(); }; return ( {isSmall && ( theme.palette.grey[500], }} > )} Vehicle Limit Reached {/* Current status */} Additional Vehicles {upgradePrompt} {/* Current count indicator */} You have {currentCount} of {limit} vehicles {/* Tier comparison */} Your Plan Upgrade to {/* Benefits preview */} Upgrade to unlock {requiredTier === 'enterprise' ? 'unlimited vehicles' : 'more vehicles'} and other premium capabilities. ); }; export default VehicleLimitDialog;