More improvements to the app-wide usage indicators

This commit is contained in:
Matt Aitken
2024-06-28 15:13:26 +01:00
parent fead06b797
commit ada2c5c99e
4 changed files with 29 additions and 18 deletions
@@ -28,7 +28,7 @@ export function FreePlanUsage({ to, percentage }: { to: string; percentage: numb
<Paragraph className="text-2sm text-text-bright">Free Plan</Paragraph>
</div>
<Link to={to} className="text-2sm text-text-link">
Learn more
Upgrade
</Link>
</div>
<div className="relative mt-3 h-1 rounded-full bg-background-dimmed">
@@ -6,6 +6,7 @@ import { v3BillingPath } from "~/utils/pathBuilder";
import { LinkButton } from "../../primitives/Buttons";
import { Icon } from "../../primitives/Icon";
import { Paragraph } from "../../primitives/Paragraph";
import { DateTime } from "~/components/primitives/DateTime";
export function UpgradePrompt() {
const organization = useOrganization();
@@ -15,6 +16,11 @@ export function UpgradePrompt() {
return null;
}
const nextMonth = new Date();
nextMonth.setMonth(nextMonth.getMonth() + 1);
nextMonth.setDate(1);
nextMonth.setHours(0, 0, 0, 0);
return (
<div
className="flex h-10 items-center justify-between border border-error bg-repeat py-0 pl-3 pr-2"
@@ -24,7 +30,9 @@ export function UpgradePrompt() {
<Icon icon={ExclamationCircleIcon} className="h-5 w-5 text-error" />
<Paragraph variant="small" className="text-error">
You have exceeded the monthly $
{(plan.v3Subscription?.plan?.limits.includedUsage ?? 500) / 100} free credits.
{(plan.v3Subscription?.plan?.limits.includedUsage ?? 500) / 100} free credits. No runs
will execute in Prod until <DateTime date={nextMonth} includeTime={false} />, or you
upgrade.
</Paragraph>
</div>
<LinkButton
@@ -105,6 +105,7 @@ export function SideMenu({ user, project, organization, organizations }: SideMen
const borderRef = useRef<HTMLDivElement>(null);
const [showHeaderDivider, setShowHeaderDivider] = useState(false);
const currentPlan = useCurrentPlan();
const { isManagedCloud } = useFeatures();
useEffect(() => {
const handleScroll = () => {
@@ -179,20 +180,24 @@ export function SideMenu({ user, project, organization, organizations }: SideMen
iconColor="text-sky-500"
data-action="team"
/>
<SideMenuItem
name="Usage"
icon={ChartBarIcon}
to={v3UsagePath(organization)}
iconColor="text-green-600"
data-action="usage"
/>
<SideMenuItem
name="Billing"
icon={CurrencyDollarIcon}
to={v3BillingPath(organization)}
iconColor="text-sun-600"
data-action="billing"
/>
{isManagedCloud && (
<>
<SideMenuItem
name="Usage"
icon={ChartBarIcon}
to={v3UsagePath(organization)}
iconColor="text-green-600"
data-action="usage"
/>
<SideMenuItem
name="Billing"
icon={CurrencyDollarIcon}
to={v3BillingPath(organization)}
iconColor="text-sun-600"
data-action="billing"
/>
</>
)}
{organization.projects.some((proj) => proj.version === "V2") && (
<SideMenuItem
name="Usage (v2)"
@@ -27,8 +27,6 @@ export function useCurrentPlan(matches?: UIMatch[]) {
matches,
});
console.log(data?.currentPlan);
return data?.currentPlan;
}