import * as React from 'react';
import { Link } from 'react-router-dom';
import Stack from '@mui/material/Stack';
import Box from '@mui/material/Box';
import Button from '@mui/material/Button';
import Chip from '@mui/material/Chip';
import Card from '@mui/material/Card';
import CardActions from '@mui/material/CardActions';
import CardContent from '@mui/material/CardContent';
import Divider from '@mui/material/Divider';
import Grid from '@mui/material/Grid';
import Typography from '@mui/material/Typography';
import { TBillingCardAction } from 'types';
import TrialOverAlert from 'components/TrialOverAlert/index.ee';
import SubscriptionCancelledAlert from 'components/SubscriptionCancelledAlert/index.ee';
import CheckoutCompletedAlert from 'components/CheckoutCompletedAlert/index.ee';
import * as URLS from 'config/urls';
import useBillingAndUsageData from 'hooks/useBillingAndUsageData.ee';
import useFormatMessage from 'hooks/useFormatMessage';
const capitalize = (str: string) =>
str[0].toUpperCase() + str.slice(1, str.length);
type BillingCardProps = {
name: string;
title?: string;
action?: TBillingCardAction;
};
function BillingCard(props: BillingCardProps) {
const { name, title = '', action } = props;
return (
theme.palette.background.default,
}}
>
{name}
{title}
);
}
function Action(props: { action?: TBillingCardAction }) {
const { action } = props;
if (!action) return ;
const { text, type } = action;
if (type === 'link') {
if (action.src.startsWith('http')) {
return (
);
} else {
return (
);
}
}
if (type === 'text') {
return (
{text}
);
}
return ;
}
export default function UsageDataInformation() {
const formatMessage = useFormatMessage();
const billingAndUsageData = useBillingAndUsageData();
return (
{formatMessage('usageDataInformation.subscriptionPlan')}
{billingAndUsageData?.subscription?.status && (
)}
{formatMessage('usageDataInformation.yourUsage')}
{formatMessage('usageDataInformation.yourUsageDescription')}
{formatMessage('usageDataInformation.yourUsageTasks')}
{billingAndUsageData?.usage.task}
{/* free plan has `null` status so that we can show the upgrade button */}
{billingAndUsageData?.subscription?.status === null && (
)}
);
}