{"version":3,"sources":["../ui/src/components/player-components/login/loginPopover.tsx"],"sourcesContent":["import { authToken, captchaStorageCode, captchaStorageLogin, handleNonMCILogin, useAppDispatch, useAppSelector } from \"redux-share\";\r\nimport Popover from \"../popover/popover\";\r\nimport { shallowEqual } from 'react-redux'\r\nimport { conditions, responseValidator } from \"helpers\";\r\nimport { ConditionName, ICaptchaType, ILoginFormDataInterface } from \"interfaces\";\r\nimport { useState, useEffect, useCallback, FormEvent } from \"react\";\r\nimport IMAGES from \"../../../../../images/importImages\";\r\nimport Image from \"next/image\";\r\nimport { API, apiCaller } from \"../../../../../services\";\r\nimport { setAuthToken, setRefreshToken } from \"redux-share/slices/userSlice\";\r\nimport { setLoginPopover } from \"redux-share/slices/popoversSlice\";\r\nimport { toast } from \"mobin-toast\";\r\nimport dynamic from \"next/dynamic\";\r\n\r\nconst PhoneInput = dynamic(() => import(\"../phoneInput/phoneInput\"));\r\nconst ArrowLeftIcon = dynamic(() => import(\"../../icon-components/arrowLeft\"));\r\nconst CodeInput = dynamic(() => import(\"../codeInput/codeInput\"));\r\nconst Captcha = dynamic(() => import(\"../captcha/captcha\"));\r\nconst CountDown = dynamic(() => import(\"../countDown/countDown\"));\r\n\r\nconst LoginPopover = () => {\r\n\r\n    const dispatch = useAppDispatch();\r\n    useAppSelector(({ popovers: { loginPopover } }) => ({ loginPopover }), shallowEqual);\r\n\r\n    \r\n    const [step, setStep] = useState<\"PhoneNumber\" | \"OTP\" | \"CodeCaptcha\" | \"LoginCaptcha\">(\"PhoneNumber\");\r\n    const [formError, setFormError] = useState<any>({});\r\n    const [codeCaptchaRequired, setCodeCaptchaRequired] = useState<string | null>(null);\r\n    const [loginCaptcha, setLoginCaptcha] = useState<ICaptchaType | undefined>(undefined);\r\n    const [codeCaptcha, setCodeCaptcha] = useState<ICaptchaType | undefined>(undefined);\r\n    const [formData, setFormData] = useState<ILoginFormDataInterface>({ phone: \"\", phoneFormat: \"\" });\r\n    const [isLoading, setIsLoading] = useState<boolean>(false);\r\n    const [resendCodeTime, setResendCodeTime] = useState<number>(0);\r\n\r\n    useEffect(() => {\r\n        if (codeCaptchaRequired) getCaptcha(\"code\");\r\n    }, [codeCaptchaRequired]);\r\n\r\n    useEffect(() => {\r\n        if (formData.code && formData.code.length === 6) handleLoginWithCode();\r\n    }, [formData.code])\r\n\r\n    useEffect(() => {\r\n        if (step === \"OTP\") {\r\n            if ('OTPCredential' in window) {\r\n                const ac = new AbortController();\r\n                navigator.credentials.get({\r\n                    // @ts-ignore\r\n                    otp: { transport: ['sms'] },\r\n                    signal: ac.signal\r\n                }).then(otp => {\r\n                    //@ts-ignore\r\n                    setFormData({ ...formData, code: otp!.code });\r\n                }).catch(err => {\r\n                    console.log(err);\r\n                });\r\n            }\r\n        }\r\n    }, [step]);\r\n\r\n    const getCaptcha = async (type: string) => {\r\n        const { data, status } = await apiCaller({ url: API().auth.captcha()});\r\n        if (responseValidator(status)) {\r\n            if (type === \"login\") {\r\n                setLoginCaptcha({ id: data.id, provider: data.provider, image: data.image })\r\n            } else if (type === \"code\") {\r\n                setCodeCaptcha({ id: data.id, provider: data.provider, image: data.image })\r\n            }\r\n        } else {\r\n            toast({ title: \"خطا در دریافت کپچا.\", type: \"error\" })\r\n        }\r\n    }\r\n\r\n    const handleLoginCaptchaCode = () => {\r\n        const loginCaptchaValue = loginCaptcha?.value;\r\n        if (!loginCaptchaValue) {\r\n            setFormError({ ...formError, captcha_login_value: \"وارد کردن کد کپچا الزامی است\" });\r\n        } else if (loginCaptchaValue && loginCaptchaValue.length < 4) {\r\n            setFormError({ ...formError, captcha_login_value: \"کد کپچا حداقل 4 کاراکتر می باشد\" });\r\n        } else {\r\n            if (loginCaptcha) {\r\n                setFormError({ ...formError, captcha_login_value: \"\" })\r\n                setLoginCaptcha({ ...loginCaptcha, value: loginCaptchaValue });\r\n            }\r\n        }\r\n    }\r\n\r\n    const handleCodeCaptchaCode = (event: FormEvent<HTMLFormElement>) => {\r\n        event.preventDefault();\r\n        const codeCaptchaValue = codeCaptcha?.value;\r\n        if (!codeCaptchaValue) setFormError({ ...formError, captcha_code_value: \"وارد کردن کد کپچا الزامی است\" });\r\n        else if (codeCaptchaValue && codeCaptchaValue.length < 4) setFormError({ ...formError, captcha_code_value: \"کد کپچا حداقل 4 کاراکتر می باشد\" });\r\n        else if (codeCaptchaValue) {\r\n            setFormError({ ...formError, captcha_code_value: \"\" })\r\n            setCodeCaptcha({ ...codeCaptcha, value: codeCaptchaValue });\r\n            generateCode(codeCaptchaValue);\r\n        }\r\n    }\r\n\r\n    const handleEnterPhoneNumber = (event: FormEvent<HTMLFormElement>) => {\r\n        setIsLoading(true);\r\n        event.preventDefault();\r\n        if (new Date().getTime() > (Number(captchaStorageCode.get()) * 1000)) generateCode();\r\n        else {\r\n            setFormError({});\r\n            getCaptcha(\"code\");\r\n            setStep(\"CodeCaptcha\");\r\n        }\r\n    }\r\n\r\n    const handleLoginWithCode = async (event?: FormEvent<HTMLFormElement>) => {\r\n        if (event) event.preventDefault();\r\n        if (!formData.code) {\r\n            setFormError({ ...formError, code: 'وارد کردن کد یک بار مصرف الزامی می باشد' });\r\n        } else if (formData.code && formData.code.length < 6) {\r\n            setFormError({ ...formError, code: \"کد یک بار مصرف را کامل وارد کنید\" });\r\n        } else {\r\n            if (captchaStorageCode.get() && new Date().getTime() > (Number(captchaStorageCode.get()) * 1000)) {\r\n                captchaStorageCode.remove();\r\n                setCodeCaptchaRequired(null);\r\n            } else {\r\n                setCodeCaptchaRequired(captchaStorageCode.get());\r\n            }\r\n            const validateCodeData = {\r\n                phone: formData.phone,\r\n                code: formData.code,\r\n            }\r\n            const { data: _data, status } = await apiCaller({ url: API().auth.validateCode(), method: \"POST\", data: validateCodeData });\r\n            if (responseValidator(status)) {\r\n                const loginData = {\r\n                    phone: formData.phone,\r\n                    captcha_id: loginCaptcha ? loginCaptcha.id : undefined,\r\n                    captcha_value: loginCaptcha ? loginCaptcha.value : undefined,\r\n                    captcha_provider: loginCaptcha ? loginCaptcha.provider : undefined,\r\n                    code: formData.code,\r\n                }\r\n                const { data, status } = await apiCaller({ url: API().auth.login(), method: \"POST\", data: loginData });\r\n                if (responseValidator(status)) {\r\n                    setCodeCaptchaRequired(null);\r\n                    authToken.set(data);\r\n                    dispatch(setLoginPopover(false));\r\n                    dispatch(setAuthToken(data.access));\r\n                    handleNonMCILogin();\r\n                    if (conditions(ConditionName.isProduction)) dispatch(setRefreshToken(data));\r\n                } else {\r\n                    toast({ title: data.detail, type: \"error\" });\r\n                    if (data.code && data.code.length > 0) toast({ title: data.code[0], type: \"error\" });\r\n                    if (loginCaptcha) {\r\n                        if (loginCaptcha.value === \"\" || data.captcha_required) {\r\n                            captchaStorageLogin.set(data.captcha_required);\r\n                            getCaptcha(\"login\");\r\n                            setStep(\"LoginCaptcha\");\r\n                        }\r\n                    }\r\n                }\r\n            } else {\r\n                toast({ title: \"کد وارد شده صحیح نمیباشد.\", type: \"error\" });\r\n            }\r\n        }\r\n    }\r\n\r\n    const generateCode = async (captchaValue?: any) => {\r\n        setIsLoading(true);\r\n        const generateCodeData = {\r\n            phone: formData.phone,\r\n            captcha_id: codeCaptcha?.id,\r\n            captcha_value: captchaValue ? captchaValue : codeCaptcha?.value,\r\n            captcha_provider: codeCaptcha?.provider\r\n        }\r\n        const { data, status } = await apiCaller({ url: API().auth.code(), method: \"POST\", data: generateCodeData});\r\n        if (responseValidator(status)) {\r\n            setCodeCaptchaRequired(null);\r\n            setCodeCaptcha(undefined);\r\n            setResendCodeTime(60);\r\n            setStep(\"OTP\");\r\n            captchaStorageCode.set(data.captcha_required);\r\n            setIsLoading(false);\r\n        } else {\r\n            toast({ title: data.detail, type: \"error\" });\r\n            if (data.captcha_required) {\r\n                captchaStorageCode.set(data.captcha_required);\r\n                setCodeCaptchaRequired(data.captcha_required);\r\n                setFormError({});\r\n                if (codeCaptchaRequired !== null) getCaptcha(\"code\");\r\n                setStep(\"CodeCaptcha\");\r\n            }\r\n            setIsLoading(false);\r\n        }\r\n    }\r\n\r\n    const handleChangeCodeInput = (value: string) => {\r\n        if (value.length === 6) setFormError({ ...formError, code: \"\" });\r\n        setFormData({ ...formData, code: value });\r\n    }\r\n\r\n    const handleBackButton = () => {\r\n        setStep(\"PhoneNumber\");\r\n        setFormData({...formData, code: \"\"});\r\n    }\r\n\r\n    const handleGenerateCode = useCallback(() => {\r\n        setFormData({ ...formData, password: undefined });\r\n        return new Promise((resolve) => {\r\n            if (new Date().getTime() > (Number(captchaStorageCode.get()) * 1000)) {\r\n                generateCode(resolve);\r\n            } else {\r\n                resolve(false);\r\n                setFormError({});\r\n                getCaptcha(\"code\");\r\n            }\r\n        });\r\n    }, [formData.phone, codeCaptcha]);\r\n\r\n    let popoverContent = <></>\r\n    let headerContent = <></>\r\n\r\n    switch (step) {\r\n        case \"PhoneNumber\":\r\n            headerContent = (\r\n                <div className={`pl-flex pl-gap-2 ${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-p-4\" : \"pl-px-12 pl-py-[18px]\"}`}>\r\n                    <Image src={conditions(ConditionName.isDarkMode) ? IMAGES.loginWhite : IMAGES.loginDark} width={24} height={24} />\r\n                    <p>ورود به سامانه سینما همراه</p>\r\n                </div>\r\n            )\r\n            popoverContent = (\r\n                <div className={`${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-p-4\" : \"pl-px-12 pl-py-[18px]\"}`}>\r\n                    <p className=\"pl-text-[14px] pl-font-medium pl-text-z-gray-700 dark:pl-text-dark-5 pl-mb-16\">کاربر گرامی، این محتوا رایگان نیست. برای مشاهده ویدیو لطفا وارد سامانه سینما همراه شوید. برای ورود لطفا شماره موبایل خود را وارد کنید.</p>\r\n                    <form className=\"pl-flex pl-flex-col pl-gap-4\" onSubmit={handleEnterPhoneNumber}>\r\n                        <PhoneInput \r\n                            error={formError.phone}\r\n                            label=\"شماره تلفن همراه\"\r\n                            onChange={(value) => {\r\n                                setFormData({\r\n                                    ...formData,\r\n                                    phone: value.replaceAll(\" \", \"\"),\r\n                                    phoneFormat: value\r\n                                });\r\n                                setFormError({ ...formError, phone: '' })\r\n                            }}\r\n                            value={formData?.phoneFormat}\r\n                            autoFocus={true}\r\n                            parentClassName=\"pl-relative\"\r\n                            placeholder=\"09∗∗ ∗∗∗ ∗∗∗∗\"\r\n                        />\r\n                        <Captcha\r\n                            captcha={loginCaptcha}\r\n                            handleClickButton={handleLoginCaptchaCode}\r\n                            error={formError.captcha_login_value}\r\n                            getNewCaptcha={() => getCaptcha(\"login\")}\r\n                            setCaptchaValue={setLoginCaptcha}\r\n                        />\r\n                        <button\r\n                            disabled={!formData.phone || formData.phone.length < 11 || isLoading}\r\n                            type=\"submit\" \r\n                            className=\"pl-bg-main-light hover:pl-bg-main-700 disabled:pl-bg-main disabled:pl-opacity-50 pl-transition-colors pl-duration-300 pl-rounded-[8px] pl-py-4 pl-mt-10 pl-mb-[90px] pl-text-white pl-text-[15px] pl-font-medium\"\r\n                        >\r\n                            ادامه\r\n                        </button>\r\n                    </form>\r\n                </div>\r\n            )\r\n            break;\r\n        case \"OTP\":\r\n            headerContent = (\r\n                <div className={`pl-flex pl-gap-2 ${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-p-4\" : \"pl-px-12 pl-py-[18px]\"}`}>\r\n                    <Image src={conditions(ConditionName.isDarkMode) ? IMAGES.loginWhite : IMAGES.loginDark} width={24} height={24} />\r\n                    <p>ورود کد یکبار مصرف</p>\r\n                    <ArrowLeftIcon className={`pl-fill-z-gray-700 dark:pl-fill-z-secondary-50 pl-mr-auto pl-cursor-pointer`} onClick={handleBackButton}/>\r\n                </div>\r\n            )\r\n            popoverContent = (\r\n                <div className={`${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-p-4\" : \"pl-px-12 pl-py-[18px] pl-mb-[90px]\"}`}>\r\n                    <p className=\"pl-text-z-gray-700 dark:pl-text-dark-5 pl-font-normal\">\r\n                        <span>لطفا کد 6 رقمی ارسال شده به شماره</span>\r\n                        <span className=\"pl-text-main-light pl-font-medium\"> {formData.phone} </span>\r\n                        <span>را وارد کنید.</span>\r\n                        <br />\r\n                        <span>ارسال کد ممکن است کمی طول بکشد</span>\r\n                    </p>\r\n                    <form className=\"pl-flex pl-flex-col\" onSubmit={handleLoginWithCode}>\r\n                        <CodeInput onChange={(value) => handleChangeCodeInput(value)} />\r\n                        <button\r\n                            type=\"submit\"\r\n                            className=\"pl-bg-main-light hover:pl-bg-main-700 disabled:pl-bg-main disabled:pl-opacity-50 pl-transition-colors pl-duration-300 pl-rounded-[8px] pl-py-4 pl-mt-10 pl-text-white pl-text-[15px] pl-font-medium\"\r\n                        >\r\n                            تایید کد ارسالی\r\n                        </button>\r\n                    </form>\r\n                    <CountDown \r\n                        resendCodeTime={resendCodeTime} \r\n                        setResendCodeTime={setResendCodeTime}\r\n                        handleGenerateCode={handleGenerateCode} \r\n                    />\r\n                </div>\r\n            )\r\n            break;\r\n        case \"CodeCaptcha\":\r\n            headerContent = (\r\n                <div className={`pl-flex pl-gap-2 ${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-p-4\" : \"pl-px-12 pl-py-[18px]\"}`}>\r\n                    <Image src={conditions(ConditionName.isDarkMode) ? IMAGES.loginWhite : IMAGES.loginDark} width={24} height={24} />\r\n                    <p>ورود کد کپچا</p>\r\n                </div>\r\n            )\r\n            popoverContent = (\r\n                <form className={`pl-flex pl-flex-col ${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-p-4\" : \"pl-px-12 pl-py-[18px]\"}`} onSubmit={handleCodeCaptchaCode}>\r\n                    <Captcha\r\n                        captcha={codeCaptcha}\r\n                        error={formError.captcha_code_value}\r\n                        getNewCaptcha={() => getCaptcha(\"code\")}\r\n                        setCaptchaValue={setCodeCaptcha}\r\n                    />\r\n                    <button\r\n                        disabled={!codeCaptcha?.value}\r\n                        type=\"submit\"\r\n                        className=\"pl-bg-main-light hover:pl-bg-main-700 disabled:pl-bg-main disabled:pl-opacity-50 pl-transition-colors pl-duration-300 pl-rounded-[8px] pl-py-4 pl-mt-10 pl-mb-[90px] pl-text-white pl-text-[15px] pl-font-medium\"\r\n                    >\r\n                        تایید کد کپچا\r\n                    </button>\r\n                </form>\r\n            )\r\n            break;\r\n        case \"LoginCaptcha\":\r\n            headerContent = (\r\n                <div className={`pl-flex pl-gap-2 ${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-p-4\" : \"pl-px-12 pl-py-[18px]\"}`}>\r\n                    <Image src={conditions(ConditionName.isDarkMode) ? IMAGES.loginWhite : IMAGES.loginDark} width={24} height={24} />\r\n                    <p>ورود کد کپچا</p>\r\n                </div>\r\n            )\r\n            popoverContent = (\r\n                <form className={`pl-flex pl-flex-col ${conditions(ConditionName.isTouchScreenPortrait) ? \"pl-p-4\" : \"pl-px-12 pl-py-[18px]\"}`} onSubmit={handleLoginCaptchaCode}>\r\n                    <Captcha\r\n                        captcha={loginCaptcha}\r\n                        handleClickButton={handleLoginCaptchaCode}\r\n                        error={formError.captcha_login_value}\r\n                        getNewCaptcha={() => getCaptcha(\"login\")}\r\n                        setCaptchaValue={setLoginCaptcha}\r\n                    />\r\n                    <button\r\n                        type=\"submit\"\r\n                        className=\"pl-bg-main-light hover:pl-bg-main-700 disabled:pl-bg-main disabled:pl-opacity-50 pl-transition-colors pl-duration-300 pl-rounded-[8px] pl-py-4 pl-mt-10 pl-mb-[90px] pl-text-white pl-text-[15px] pl-font-medium\"\r\n                    >\r\n                        تایید کد کپچا\r\n                    </button>\r\n                </form>\r\n            )\r\n            break;\r\n        default:\r\n            break;\r\n    }\r\n\r\n    return (\r\n        <Popover\r\n            type={\"modal\"}\r\n            status={conditions(ConditionName.showLoginPopover)}\r\n            onClose={()=> {}}\r\n            isBlurBackground={true}\r\n            isHeader={true}\r\n            customHeader={headerContent}\r\n            classNames=\"pl-max-w-[541px]\"\r\n        >\r\n            {popoverContent}\r\n        </Popover>\r\n    )\r\n}\r\n\r\nexport default LoginPopover;"],"mappings":"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","names":["init_esm_shims","shallowEqual","useState","useEffect","useCallback","Image","toast","dynamic","Fragment","jsx","jsxs","PhoneInput","ArrowLeftIcon","CodeInput","Captcha","CountDown","LoginPopover","dispatch","useAppDispatch","useAppSelector","loginPopover","shallowEqual","step","setStep","useState","formError","setFormError","codeCaptchaRequired","setCodeCaptchaRequired","loginCaptcha","setLoginCaptcha","codeCaptcha","setCodeCaptcha","formData","setFormData","isLoading","setIsLoading","resendCodeTime","setResendCodeTime","useEffect","getCaptcha","handleLoginWithCode","ac","otp","err","type","data","status","apiCaller","API","responseValidator","handleLoginCaptchaCode","loginCaptchaValue","handleCodeCaptchaCode","event","codeCaptchaValue","generateCode","handleEnterPhoneNumber","captchaStorageCode","validateCodeData","_data","loginData","authToken","setLoginPopover","setAuthToken","handleNonMCILogin","conditions","setRefreshToken","captchaStorageLogin","captchaValue","generateCodeData","handleChangeCodeInput","value","handleBackButton","handleGenerateCode","useCallback","resolve","popoverContent","headerContent","Image","importImages_default","popover_default","loginPopover_default"]}