import { useCallback, useState } from 'react' import { useTranslation } from 'react-i18next' import { useDispatch, useSelector } from 'react-redux' import { useNavigate } from 'react-router-dom' import { selectors } from '@/store' import { usePayment } from '@/payment' import { actions } from '@/store' import { ApplePayBanner, ApplePayButton, GooglePayBanner, GooglePayButton, CardButton, CardModal } from './methods' import ErrorModal from './ErrorModal' import UserHeader from '../UserHeader' import Title from '../Title' import Loader from '../Loader' import secure from './secure.png' import routes from '@/routes' import './styles.css' function PaymentPage(): JSX.Element { const { t } = useTranslation() const { applePay } = usePayment() const [openCardModal, setOpenCardModal] = useState(false) const [openErrorModal, setOpenErrorModal] = useState(false) const dispatch = useDispatch() const navigate = useNavigate() const isLoading = applePay === null const isApplePayAvailable = import.meta.env.PROD && applePay?.canMakePayments() const email = useSelector(selectors.selectEmail) const onSuccess = useCallback(() => { dispatch(actions.status.update('subscribed')) navigate(routes.client.wallpaper()) }, [dispatch, navigate]) const onError = useCallback((error: Error) => { console.error(error) setOpenErrorModal(true) }, []) return ( <>
{ isLoading ? : ( <>
{ isApplePayAvailable ? : } 100% Secure
{t('choose_payment')} { isApplePayAvailable ? : }
{t('or').toUpperCase()}
setOpenCardModal(true)} />

{t('will_be_charged', { strongText: {t('trial_price')} })}

setOpenCardModal(false)} onSuccess={onSuccess} onError={onError} /> setOpenErrorModal(false)} /> )}
) } export default PaymentPage