{"version":3,"file":"Checkout-CM7S3rK6.js","sources":["../../../app/javascript/entrypoints/Checkout/Checkout.jsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { useStripe, useElements } from \"@stripe/react-stripe-js\";\nimport { Box, Grid, Button, Alert, CircularProgress, Typography } from \"@mui/material\";\nimport { useNavigate } from \"react-router-dom\";\nimport { db } from \"../../shared/firebase\";\nimport { doc, getDoc } from \"firebase/firestore\";\nimport { useAuth } from \"../../shared/useAuth\";\nimport AccountSetup from \"./components/AccountSetup\";\nimport GiftDeliveryDetails from \"./components/GiftDeliveryDetails\";\nimport ExclusiveAddons from \"./components/ExclusiveAddons\";\nimport PaymentInformation from \"./components/PaymentInformation\";\nimport OrderSummary from \"./components/OrderSummary\";\nimport useFormData from \"./hooks/useFormData\";\nimport useTotalPrice from \"./hooks/useTotalPrice\";\nimport { handleSubmit } from \"./utils/checkoutHelpers\";\nimport ContainerBox from \"../../shared/ContainerBox\";\n\nconst Checkout = () => {\n const stripe = useStripe();\n const elements = useElements();\n const { user, loading } = useAuth();\n const { formData, handleChange, error, setError } = useFormData();\n const totalPrice = useTotalPrice(formData);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [userSubscription, setUserSubscription] = useState(null);\n const [subIsLoading, setSubIsLoading] = useState(true);\n const [showSubscriptionMessage, setShowSubscriptionMessage] = useState(false);\n\n // Redirect for null questionnaire data\n const questionnaireData = JSON.parse(\n localStorage.getItem(\"questionnaireData\")\n );\n const navigate = useNavigate();\n\n useEffect(() => {\n const fetchUserSubscription = async () => {\n if (user) {\n try {\n setSubIsLoading(true);\n const userDoc = await getDoc(doc(db, \"users\", user.uid));\n const userData = userDoc.data();\n setUserSubscription({\n subscriptionSource: userData?.subscriptionSource || 0,\n subscriptionLevel: userData?.subscriptionLevel || 0,\n });\n } catch (error) {\n console.error('Error fetching user subscription:', error);\n setError('Failed to load user subscription. Please try again.');\n } finally {\n setSubIsLoading(false);\n }\n } else {\n setSubIsLoading(false);\n }\n };\n\n fetchUserSubscription();\n }, [user]);\n\n useEffect(() => {\n if (userSubscription && userSubscription.subscriptionLevel > 0) {\n const timer = setTimeout(() => {\n setShowSubscriptionMessage(true);\n }, 3000);\n\n return () => clearTimeout(timer);\n }\n }, [userSubscription]);\n\n if (!questionnaireData) {\n navigate(\"/questionnaire\");\n }\n\n if (loading || subIsLoading) {\n return (\n \n \n \n );\n }\n\n if (userSubscription && userSubscription.subscriptionLevel > 0) {\n if (!showSubscriptionMessage) {\n return (\n \n \n \n );\n }\n\n return (\n \n \n You have an active digital subscription!\n \n \n As a subscriber, you can create a new album and share it with anyone you'd like without going through this checkout process.\n \n navigate(\"/album/create\")}\n >\n Create an album\n \n \n );\n }\n\n return (\n \n handleSubmit(\n e,\n stripe,\n elements,\n formData,\n setError,\n setIsSubmitting\n )\n }\n id=\"payment-form\"\n >\n \n \n \n \n \n \n {error && (\n \n {error}\n \n )}\n \n \n {isSubmitting ? \"Processing...\" : \"Pay\"}\n \n \n \n \n \n \n \n \n );\n};\n\nexport default Checkout;\n"],"names":["Checkout","stripe","useStripe","elements","useElements","user","loading","useAuth","formData","handleChange","error","setError","useFormData","totalPrice","useTotalPrice","isSubmitting","setIsSubmitting","useState","userSubscription","setUserSubscription","subIsLoading","setSubIsLoading","showSubscriptionMessage","setShowSubscriptionMessage","questionnaireData","navigate","useNavigate","useEffect","userData","getDoc","doc","db","timer","React","Box","CircularProgress","ContainerBox","Typography","Button","e","handleSubmit","Grid","AccountSetup","GiftDeliveryDetails","ExclusiveAddons","PaymentInformation","Alert","OrderSummary"],"mappings":"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"}