import { useQuery } from '@tanstack/react-query'; import { Gift, Info } from 'lucide-react'; import { getPercentage } from '../../lib/number'; import { getAiCourseLimitOptions } from '../../queries/ai-course'; import { billingDetailsOptions } from '../../queries/billing'; import { queryClient } from '../../stores/query-client'; import { isLoggedIn } from '../../lib/jwt'; type AICourseLimitProps = { onUpgrade: () => void; onShowLimits: () => void; }; export function AICourseLimit(props: AICourseLimitProps) { const { onUpgrade, onShowLimits } = props; const { data: limits, isLoading } = useQuery( getAiCourseLimitOptions(), queryClient, ); const { data: userBillingDetails, isLoading: isBillingDetailsLoading } = useQuery(billingDetailsOptions(), queryClient); if (!isLoggedIn()) { return null; } if (isLoading || !limits || isBillingDetailsLoading || !userBillingDetails) { return (
); } const { used, limit } = limits; const totalPercentage = getPercentage(used, limit); // has consumed 85% of the limit const isPaidUser = userBillingDetails.status === 'active'; return ( <> {!isPaidUser && ( )} {!isPaidUser && ( )} {!isPaidUser && ( )} ); }