import { useState, useEffect } from 'react' import { getBaseDomain } from '@junwon/config' import { useVisa } from '../providers/VisaProvider' import { YStack, Button, Paragraph } from '@junwon/aesthetics' import { Link } from '../components/Link' import { VisaCard } from '../components/VisaCard' export function ManageMembership() { const { isSignedIn, loading, getStripePortalLink } = useVisa() const [portalLink, setPortalLink] = useState('') const [error, setError] = useState('') const baseDomain = getBaseDomain('visa-web') useEffect(() => { async function fetchPortalLink() { if (!isSignedIn || !baseDomain) return setError('') try { const link = await getStripePortalLink(baseDomain) setPortalLink(link) } catch (err) { setError('Stripe server is experiencing issues. Please try again later or contact support.') console.log('Failed to get Stripe portal link:', err) } } fetchPortalLink() }, [baseDomain, isSignedIn, getStripePortalLink]) return ( {loading ? 'Loading...' : ''} {error ? error : ''} {isSignedIn && ( )} ) }