Update
This commit is contained in:
@@ -12,179 +12,136 @@ post {
|
|||||||
|
|
||||||
body:json {
|
body:json {
|
||||||
{
|
{
|
||||||
"id": "evt_1Rg71IEEXQJo9EEOmxJtfwVm",
|
"id": "evt_1RgRPrEEXQJo9EEOWggvNEHe",
|
||||||
"object": "event",
|
"object": "event",
|
||||||
"api_version": "2025-05-28.basil",
|
"api_version": "2025-05-28.basil",
|
||||||
"created": 1751387215,
|
"created": 1751465619,
|
||||||
"data": {
|
"data": {
|
||||||
"object": {
|
"object": {
|
||||||
"id": "in_1Rg71FEEXQJo9EEOmxbGjtdH",
|
"id": "cs_test_a1RMSyzQu5Mk2cZYoAYLOCV9hfoc5z9RuYdE4jLY2htoizGr1AJZeAcnDh",
|
||||||
"object": "invoice",
|
"object": "checkout.session",
|
||||||
"account_country": "MY",
|
"adaptive_pricing": {
|
||||||
"account_name": "MEMEAIGEN sandbox",
|
"enabled": true
|
||||||
"account_tax_ids": null,
|
},
|
||||||
"amount_due": 400,
|
"after_expiration": null,
|
||||||
"amount_overpaid": 0,
|
"allow_promotion_codes": null,
|
||||||
"amount_paid": 400,
|
"amount_subtotal": 400,
|
||||||
"amount_remaining": 0,
|
"amount_total": 400,
|
||||||
"amount_shipping": 0,
|
|
||||||
"application": null,
|
|
||||||
"attempt_count": 1,
|
|
||||||
"attempted": true,
|
|
||||||
"auto_advance": false,
|
|
||||||
"automatic_tax": {
|
"automatic_tax": {
|
||||||
"disabled_reason": null,
|
|
||||||
"enabled": false,
|
"enabled": false,
|
||||||
"liability": null,
|
"liability": null,
|
||||||
"provider": null,
|
"provider": null,
|
||||||
"status": null
|
"status": null
|
||||||
},
|
},
|
||||||
"automatically_finalizes_at": null,
|
"billing_address_collection": null,
|
||||||
"billing_reason": "subscription_create",
|
"cancel_url": "https://memeaigen.test/subscribe/cancelled?session_id={CHECKOUT_SESSION_ID}",
|
||||||
"collection_method": "charge_automatically",
|
"client_reference_id": null,
|
||||||
"created": 1751387213,
|
"client_secret": null,
|
||||||
"currency": "usd",
|
"collected_information": {
|
||||||
"custom_fields": null,
|
"shipping_details": null
|
||||||
"customer": "cus_SbGYl34MpG4nv5",
|
|
||||||
"customer_address": null,
|
|
||||||
"customer_email": "memeaigen.com@gmail.com",
|
|
||||||
"customer_name": null,
|
|
||||||
"customer_phone": null,
|
|
||||||
"customer_shipping": null,
|
|
||||||
"customer_tax_exempt": "none",
|
|
||||||
"customer_tax_ids": [],
|
|
||||||
"default_payment_method": null,
|
|
||||||
"default_source": null,
|
|
||||||
"default_tax_rates": [],
|
|
||||||
"description": null,
|
|
||||||
"discounts": [],
|
|
||||||
"due_date": null,
|
|
||||||
"effective_at": 1751387213,
|
|
||||||
"ending_balance": 0,
|
|
||||||
"footer": null,
|
|
||||||
"from_invoice": null,
|
|
||||||
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_1RfMzuEEXQJo9EEO/test_YWNjdF8xUmZNenVFRVhRSm85RUVPLF9TYkplU0VDWWdKSG53bDVZT2VuNjNGZFFaaFJsbFFkLDE0MTkyODAxNg0200EQHRg6hn?s=ap",
|
|
||||||
"invoice_pdf": "https://pay.stripe.com/invoice/acct_1RfMzuEEXQJo9EEO/test_YWNjdF8xUmZNenVFRVhRSm85RUVPLF9TYkplU0VDWWdKSG53bDVZT2VuNjNGZFFaaFJsbFFkLDE0MTkyODAxNg0200EQHRg6hn/pdf?s=ap",
|
|
||||||
"issuer": {
|
|
||||||
"type": "self"
|
|
||||||
},
|
},
|
||||||
"last_finalization_error": null,
|
"consent": null,
|
||||||
"latest_revision": null,
|
"consent_collection": null,
|
||||||
"lines": {
|
"created": 1751465613,
|
||||||
"object": "list",
|
"currency": "usd",
|
||||||
"data": [
|
"currency_conversion": null,
|
||||||
{
|
"custom_fields": [],
|
||||||
"id": "il_1Rg71FEEXQJo9EEOhVjRevMb",
|
"custom_text": {
|
||||||
"object": "line_item",
|
"after_submit": null,
|
||||||
"amount": 400,
|
"shipping_address": null,
|
||||||
"currency": "usd",
|
"submit": null,
|
||||||
"description": "1 × Personal Creator (at $4.00 / month)",
|
"terms_of_service_acceptance": null
|
||||||
"discount_amounts": [],
|
},
|
||||||
"discountable": true,
|
"customer": "cus_SbGYl34MpG4nv5",
|
||||||
"discounts": [],
|
"customer_creation": null,
|
||||||
"invoice": "in_1Rg71FEEXQJo9EEOmxbGjtdH",
|
"customer_details": {
|
||||||
"livemode": false,
|
"address": {
|
||||||
"metadata": {
|
"city": null,
|
||||||
"is_on_session_checkout": "true"
|
"country": "MY",
|
||||||
},
|
"line1": null,
|
||||||
"parent": {
|
"line2": null,
|
||||||
"invoice_item_details": null,
|
"postal_code": null,
|
||||||
"subscription_item_details": {
|
"state": null
|
||||||
"invoice_item": null,
|
},
|
||||||
"proration": false,
|
"email": "memeaigen.com@gmail.com",
|
||||||
"proration_details": {
|
"name": "TEST NAME",
|
||||||
"credited_items": null
|
"phone": null,
|
||||||
},
|
"tax_exempt": "none",
|
||||||
"subscription": "sub_1Rg71FEEXQJo9EEO18sXSEho",
|
"tax_ids": []
|
||||||
"subscription_item": "si_SbJesuW5WgGoZ7"
|
},
|
||||||
},
|
"customer_email": null,
|
||||||
"type": "subscription_item_details"
|
"discounts": [],
|
||||||
},
|
"expires_at": 1751552013,
|
||||||
"period": {
|
"invoice": null,
|
||||||
"end": 1754065613,
|
"invoice_creation": {
|
||||||
"start": 1751387213
|
"enabled": false,
|
||||||
},
|
"invoice_data": {
|
||||||
"pretax_credit_amounts": [],
|
"account_tax_ids": null,
|
||||||
"pricing": {
|
"custom_fields": null,
|
||||||
"price_details": {
|
"description": null,
|
||||||
"price": "price_1RfN2VEEXQJo9EEOzjPI2HGt",
|
"footer": null,
|
||||||
"product": "prod_SaY8TGjiPi5hWu"
|
"issuer": null,
|
||||||
},
|
"metadata": {},
|
||||||
"type": "price_details",
|
"rendering_options": null
|
||||||
"unit_amount_decimal": "400"
|
}
|
||||||
},
|
|
||||||
"quantity": 1,
|
|
||||||
"taxes": []
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"has_more": false,
|
|
||||||
"total_count": 1,
|
|
||||||
"url": "/v1/invoices/in_1Rg71FEEXQJo9EEOmxbGjtdH/lines"
|
|
||||||
},
|
},
|
||||||
"livemode": false,
|
"livemode": false,
|
||||||
|
"locale": null,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"next_payment_attempt": null,
|
"mode": "payment",
|
||||||
"number": "IN7OJLTH-0001",
|
"payment_intent": "pi_3RgRPqEEXQJo9EEO1a43uB5g",
|
||||||
"on_behalf_of": null,
|
"payment_link": null,
|
||||||
"parent": {
|
"payment_method_collection": "if_required",
|
||||||
"quote_details": null,
|
"payment_method_configuration_details": {
|
||||||
"subscription_details": {
|
"id": "pmc_1RfN0QEEXQJo9EEOzYHrN3LV",
|
||||||
"metadata": {
|
"parent": null
|
||||||
"is_on_session_checkout": "true"
|
|
||||||
},
|
|
||||||
"subscription": "sub_1Rg71FEEXQJo9EEO18sXSEho"
|
|
||||||
},
|
|
||||||
"type": "subscription_details"
|
|
||||||
},
|
},
|
||||||
"payment_settings": {
|
"payment_method_options": {
|
||||||
"default_mandate": null,
|
"card": {
|
||||||
"payment_method_options": {
|
"request_three_d_secure": "automatic"
|
||||||
"acss_debit": null,
|
}
|
||||||
"bancontact": null,
|
|
||||||
"card": {
|
|
||||||
"request_three_d_secure": "automatic"
|
|
||||||
},
|
|
||||||
"customer_balance": null,
|
|
||||||
"konbini": null,
|
|
||||||
"sepa_debit": null,
|
|
||||||
"us_bank_account": null
|
|
||||||
},
|
|
||||||
"payment_method_types": null
|
|
||||||
},
|
},
|
||||||
"period_end": 1751387213,
|
"payment_method_types": [
|
||||||
"period_start": 1751387213,
|
"card",
|
||||||
"post_payment_credit_notes_amount": 0,
|
"link"
|
||||||
"pre_payment_credit_notes_amount": 0,
|
],
|
||||||
"receipt_number": null,
|
"payment_status": "paid",
|
||||||
"rendering": null,
|
"permissions": null,
|
||||||
|
"phone_number_collection": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"recovered_from": null,
|
||||||
|
"saved_payment_method_options": {
|
||||||
|
"allow_redisplay_filters": [
|
||||||
|
"always"
|
||||||
|
],
|
||||||
|
"payment_method_remove": "disabled",
|
||||||
|
"payment_method_save": null
|
||||||
|
},
|
||||||
|
"setup_intent": null,
|
||||||
|
"shipping_address_collection": null,
|
||||||
"shipping_cost": null,
|
"shipping_cost": null,
|
||||||
"shipping_details": null,
|
"shipping_options": [],
|
||||||
"starting_balance": 0,
|
"status": "complete",
|
||||||
"statement_descriptor": null,
|
"submit_type": null,
|
||||||
"status": "paid",
|
"subscription": null,
|
||||||
"status_transitions": {
|
"success_url": "https://memeaigen.test/subscribe/success?session_id={CHECKOUT_SESSION_ID}",
|
||||||
"finalized_at": 1751387213,
|
"total_details": {
|
||||||
"marked_uncollectible_at": null,
|
"amount_discount": 0,
|
||||||
"paid_at": 1751387215,
|
"amount_shipping": 0,
|
||||||
"voided_at": null
|
"amount_tax": 0
|
||||||
},
|
},
|
||||||
"subtotal": 400,
|
"ui_mode": "hosted",
|
||||||
"subtotal_excluding_tax": 400,
|
"url": null,
|
||||||
"test_clock": null,
|
"wallet_options": null
|
||||||
"total": 400,
|
|
||||||
"total_discount_amounts": [],
|
|
||||||
"total_excluding_tax": 400,
|
|
||||||
"total_pretax_credit_amounts": [],
|
|
||||||
"total_taxes": [],
|
|
||||||
"webhooks_delivered_at": null
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"livemode": false,
|
"livemode": false,
|
||||||
"pending_webhooks": 2,
|
"pending_webhooks": 2,
|
||||||
"request": {
|
"request": {
|
||||||
"id": null,
|
"id": null,
|
||||||
"idempotency_key": "e50baede-20b6-4a06-a2c4-15f43ca47dd4"
|
"idempotency_key": null
|
||||||
},
|
},
|
||||||
"type": "invoice.paid"
|
"type": "checkout.session.completed"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const VideoDownloadModal = ({ isOpen, onClose, ffmpegCommand, handleDownloadButt
|
|||||||
<Dialog open={isOpen} onOpenChange={onClose}>
|
<Dialog open={isOpen} onOpenChange={onClose}>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>Download Video</DialogTitle>
|
<DialogTitle>Export Video</DialogTitle>
|
||||||
{exportStatus ||
|
{exportStatus ||
|
||||||
(exportProgress > 0 && (
|
(exportProgress > 0 && (
|
||||||
<DialogDescription>
|
<DialogDescription>
|
||||||
@@ -39,7 +39,7 @@ const VideoDownloadModal = ({ isOpen, onClose, ffmpegCommand, handleDownloadButt
|
|||||||
|
|
||||||
{showDebug && <Textarea value={ffmpegCommand} readOnly className="mb-4" />}
|
{showDebug && <Textarea value={ffmpegCommand} readOnly className="mb-4" />}
|
||||||
|
|
||||||
<Button onClick={handleDownloadButton}>{isExporting ? <Spinner className="text-secondary h-4 w-4" /> : 'Download'}</Button>
|
<Button onClick={handleDownloadButton}>{isExporting ? <Spinner className="text-secondary h-4 w-4" /> : 'Export Video'}</Button>
|
||||||
|
|
||||||
{/* Add your content here */}
|
{/* Add your content here */}
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
|
|||||||
@@ -165,22 +165,7 @@ const UpgradeSheet = () => {
|
|||||||
<>
|
<>
|
||||||
{auth.user && plan.tier != 'free' ? (
|
{auth.user && plan.tier != 'free' ? (
|
||||||
<div className="mx-auto space-y-6 rounded-lg border p-4 text-center sm:p-7">
|
<div className="mx-auto space-y-6 rounded-lg border p-4 text-center sm:p-7">
|
||||||
<SparklesText className="text-xl font-bold sm:text-2xl">You're now in the {plan?.name} plan!</SparklesText>
|
<SparklesText className="text-xl font-bold sm:text-xl">You're now in the {plan?.name} plan!</SparklesText>
|
||||||
|
|
||||||
<Button
|
|
||||||
variant="outline"
|
|
||||||
onClick={() => {
|
|
||||||
handleRedirectBillingPortal();
|
|
||||||
}}
|
|
||||||
disabled={isRedirectingToBilling}
|
|
||||||
>
|
|
||||||
{isRedirectingToBilling ? <Spinner className="text-muted-foreground h-4 w-4" /> : 'Manage Subscription'}
|
|
||||||
</Button>
|
|
||||||
|
|
||||||
<div className="text-muted-foreground block rounded border p-3 text-center text-xs">
|
|
||||||
<ShieldIcon className="mr-1 mb-1 inline h-4 w-4" />
|
|
||||||
All our payments are securely processed by Stripe.
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div id="plan-purchase" className="mx-auto space-y-6 rounded-lg border p-4 text-center sm:p-7">
|
<div id="plan-purchase" className="mx-auto space-y-6 rounded-lg border p-4 text-center sm:p-7">
|
||||||
@@ -210,11 +195,6 @@ const UpgradeSheet = () => {
|
|||||||
)}
|
)}
|
||||||
</Button>
|
</Button>
|
||||||
<div className="text-muted-foreground text-xs">* Launch pricing limited to first 1000 users</div>
|
<div className="text-muted-foreground text-xs">* Launch pricing limited to first 1000 users</div>
|
||||||
|
|
||||||
<div className="text-muted-foreground block rounded border p-3 text-center text-xs">
|
|
||||||
<ShieldIcon className="mr-1 mb-1 inline h-4 w-4" />
|
|
||||||
All our payments are securely processed by Stripe.
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
@@ -269,19 +249,40 @@ const UpgradeSheet = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="faq" className="space-y-4 rounded-lg border p-4 sm:p-7">
|
<div className="flex flex-col justify-center space-y-2 rounded border p-3">
|
||||||
<div className="text-center text-xl font-extrabold sm:text-2xl">Frequently Asked Questions</div>
|
<div className="mx-auto">
|
||||||
<Accordion type="single" collapsible className="w-full" defaultValue="item-1">
|
<Button
|
||||||
{faqData.map((faq, index) => (
|
variant="outline"
|
||||||
<AccordionItem key={index} value={`item-${index + 1}`}>
|
onClick={() => {
|
||||||
<AccordionTrigger className="text-left text-sm break-words sm:text-base">{faq.q}</AccordionTrigger>
|
handleRedirectBillingPortal();
|
||||||
<AccordionContent className="flex flex-col gap-4 text-balance">
|
}}
|
||||||
<div className="overflow-wrap-anywhere text-sm break-words" dangerouslySetInnerHTML={{ __html: faq.a }} />
|
disabled={isRedirectingToBilling}
|
||||||
</AccordionContent>
|
>
|
||||||
</AccordionItem>
|
{isRedirectingToBilling ? <Spinner className="text-muted-foreground h-4 w-4" /> : 'Manage Billing'}
|
||||||
))}
|
</Button>
|
||||||
</Accordion>
|
</div>
|
||||||
|
|
||||||
|
<div className="text-muted-foreground text-center text-xs">
|
||||||
|
<ShieldIcon className="mr-1 mb-1 inline h-4 w-4" />
|
||||||
|
All our billing & payments are securely processed by Stripe.
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{!(auth.user && plan.tier != 'free') && (
|
||||||
|
<div id="faq" className="space-y-4 rounded-lg border p-4 sm:p-7">
|
||||||
|
<div className="text-center text-xl font-extrabold sm:text-2xl">Frequently Asked Questions</div>
|
||||||
|
<Accordion type="single" collapsible className="w-full" defaultValue="item-1">
|
||||||
|
{faqData.map((faq, index) => (
|
||||||
|
<AccordionItem key={index} value={`item-${index + 1}`}>
|
||||||
|
<AccordionTrigger className="text-left text-sm break-words sm:text-base">{faq.q}</AccordionTrigger>
|
||||||
|
<AccordionContent className="flex flex-col gap-4 text-balance">
|
||||||
|
<div className="overflow-wrap-anywhere text-sm break-words" dangerouslySetInnerHTML={{ __html: faq.a }} />
|
||||||
|
</AccordionContent>
|
||||||
|
</AccordionItem>
|
||||||
|
))}
|
||||||
|
</Accordion>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<SheetFooter>
|
<SheetFooter>
|
||||||
|
|||||||
Reference in New Issue
Block a user