import { useState, useEffect } from 'react'; import PageMeta from '../../components/common/PageMeta'; import { useToast } from '../../components/ui/toast/ToastContainer'; import { fetchAPI } from '../../services/api'; import { Card } from '../../components/ui/card'; import Badge from '../../components/ui/badge/Badge'; interface Subscription { id: number; account_name: string; status: string; current_period_start: string; current_period_end: string; } export default function Subscriptions() { const toast = useToast(); const [subscriptions, setSubscriptions] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { loadSubscriptions(); }, []); const loadSubscriptions = async () => { try { setLoading(true); const response = await fetchAPI('/v1/auth/subscriptions/'); setSubscriptions(response.results || []); } catch (error: any) { toast.error(`Failed to load subscriptions: ${error.message}`); } finally { setLoading(false); } }; const getStatusColor = (status: string) => { switch (status) { case 'active': return 'success'; case 'past_due': return 'warning'; case 'canceled': return 'error'; default: return 'primary'; } }; return (

Subscriptions

Manage account subscriptions

{loading ? (
Loading...
) : (
{subscriptions.map((subscription) => ( ))}
Account Status Period Start Period End
{subscription.account_name} {subscription.status} {new Date(subscription.current_period_start).toLocaleDateString()} {new Date(subscription.current_period_end).toLocaleDateString()}
)}
); }