+ {/* Header */}
+
+
Choose Your Plan
+
+ Get access to Cannon's powerful deployment infrastructure with
+ flexible subscription plans
+
+
+
+ {/* Current Membership Status */}
+ {isConnected && hasActiveMembership && userMembership && (
+
+
+
+
+
+ Active Subscription
+
+
+
+
+
+
Current Plan
+
+ {getPlanName(userMembership.planId)}
+
+
+
+
+ Available Credits
+
+
+ {userMembership.availableCredits}
+
+
+
+
Expires
+
+ {new Date(
+ userMembership.activeUntil * 1000
+ ).toLocaleDateString()}
+
+
+
+
+
+
+
+
+
+ )}
+
+ {/* Wallet Connection Notice */}
+ {!isConnected && (
+
+
+
+ Connect your wallet to view personalized pricing and purchase
+ subscriptions.
+
+
+
+ )}
+
+ {/* Pricing Cards */}
+
+ {plans.map((plan) => {
+ const isCurrentPlan = userMembership?.planId === plan.id;
+ const isPurchasing = purchasingPlanId === plan.id;
+ const monthlyPrice = formatSubscriptionPrice(plan.price, 6);
+ const yearlyPrice = formatSubscriptionPrice(
+ calculateTotalPrice(plan.price, 12),
+ 6
+ );
+
+ return (
+
+ {isCurrentPlan && (
+
+ Current Plan
+
+ )}
+
+
+
+ {getPlanIcon(plan.id)}
+
+
+ {getPlanName(plan.id)}
+
+
+ {plan.quota} credits per {formatDuration(plan.duration)}
+
+
+
+
+ {/* Pricing */}
+
+
+ ${monthlyPrice}
+
+ /term
+
+
+
+ ${yearlyPrice} for 12 terms
+
+
+
+ {/* Features */}
+
+
+
+
+ {plan.quota} deployment credits
+
+
+
+
+
+ {formatDuration(plan.duration)} term duration
+
+
+
+
+ Min {plan.minTerms} terms
+
+
+
+ Max {plan.maxTerms} terms
+
+ {plan.refundable && (
+
+
+
+ Refundable on cancellation
+
+
+ )}
+
+
+ {/* Action Button */}
+
+ {isCurrentPlan ? (
+
+ ) : (
+
+ )}
+
+
+ {/* Balance Warning */}
+ {isConnected &&
+ userBalance <
+ calculateTotalPrice(plan.price, plan.minTerms) && (
+
+ Insufficient USDC balance
+
+ )}
+
+
+ );
+ })}
+
+
+ {/* Additional Information */}
+
+
How It Works
+
+
+
+ 1
+
+
Choose Your Plan
+
+ Select a subscription plan that fits your support and deployment
+ needs
+
+
+
+
+ 2
+
+
Purchase with USDC
+
+ Pay for your subscription using USDC tokens
+
+
+
+
+ 3
+
+
Use your Plan
+
+ Once you complete your purchase, the benefits of your plan will be
+ automatically applied to your account.
+
+
+
+
+
+ );
+}