[autofix.ci] apply automated fixes

This commit is contained in:
autofix-ci[bot] 2026-09-02 01:12:31 +00:00 committed by GitHub
parent 2e2e0c8c29
commit 0dcfcc19da
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 30 additions and 17 deletions

View File

@ -26,7 +26,8 @@ export const PlanStep = ({ onNext }: Props) => {
const { data } = api.stripe.getProducts.useQuery();
const { mutateAsync: createCheckoutSession } =
api.stripe.createCheckoutSession.useMutation();
const { mutateAsync: startFreeTrial } = api.stripe.startFreeTrial.useMutation();
const { mutateAsync: startFreeTrial } =
api.stripe.startFreeTrial.useMutation();
const utils = api.useUtils();
const handleCheckout = async (tier: "hobby" | "startup") => {
@ -95,17 +96,19 @@ export const PlanStep = ({ onNext }: Props) => {
No card required cancel anytime.
</p>
<ul className="flex flex-col gap-1.5 mt-4">
{["1 server included", "Unlimited apps & databases", "Community support"].map(
(f) => (
<li
key={f}
className="flex items-center gap-2 text-sm text-zinc-300 dark:text-zinc-700"
>
<CheckIcon className="size-3.5 text-zinc-500 shrink-0" />
{f}
</li>
),
)}
{[
"1 server included",
"Unlimited apps & databases",
"Community support",
].map((f) => (
<li
key={f}
className="flex items-center gap-2 text-sm text-zinc-300 dark:text-zinc-700"
>
<CheckIcon className="size-3.5 text-zinc-500 shrink-0" />
{f}
</li>
))}
</ul>
</div>
<Button
@ -169,7 +172,10 @@ export const PlanStep = ({ onNext }: Props) => {
For small to mid-size teams
</p>
<p className="text-3xl font-semibold mt-4 tabular-nums">
${calculatePriceStartup(STARTUP_SERVERS_INCLUDED, false).toFixed(2)}
$
{calculatePriceStartup(STARTUP_SERVERS_INCLUDED, false).toFixed(
2,
)}
<span className="text-sm font-normal text-muted-foreground">
{" "}
/mo

View File

@ -10,12 +10,14 @@ const points = [
{
icon: GitBranchIcon,
title: "Deploy from Git or Docker",
description: "Push a repo, a compose file, or a container image and go live.",
description:
"Push a repo, a compose file, or a container image and go live.",
},
{
icon: PuzzleIcon,
title: "One-click templates",
description: "WordPress, databases, and dozens of open source apps, pre-wired.",
description:
"WordPress, databases, and dozens of open source apps, pre-wired.",
},
{
icon: ServerIcon,

View File

@ -333,7 +333,10 @@ export const stripeRouter = createTRPCRouter({
{ expand: ["items.data.price"] },
);
if (subscription.status !== "active" && subscription.status !== "trialing") {
if (
subscription.status !== "active" &&
subscription.status !== "trialing"
) {
throw new TRPCError({
code: "BAD_REQUEST",
message: "Subscription is not active",

View File

@ -130,7 +130,9 @@ export const getBillingStatus = async (
);
const plan = planFromPriceIds(priceIds);
const trialingSub = subscriptions.data.find((sub) => sub.status === "trialing");
const trialingSub = subscriptions.data.find(
(sub) => sub.status === "trialing",
);
const trialEndsAt = trialingSub?.trial_end
? new Date(trialingSub.trial_end * 1000)
: null;