{"version":3,"file":"static/js/opt-in.3cfeda46.chunk.js","mappings":"sSA6BA,MAAMA,EAAoB,CACxBC,QAAS,CACPC,UAAW,YACXC,iBAAkB,OAClBC,kBAAmB,SAIVC,EAAQ,WAA2D,IAA1DC,EAAkBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGP,EACzC,MAAMU,GAAUC,EAAAA,EAAAA,MACVC,GAAWC,EAAAA,EAAAA,OACX,EAAEC,IAAMC,EAAAA,EAAAA,MAERC,GAAaC,EAAAA,EAAAA,IAAYC,EAAAA,IACzBC,GAAaF,EAAAA,EAAAA,IAAYG,EAAAA,IACzBC,GAAOJ,EAAAA,EAAAA,IAAYK,EAAAA,KAElBC,EAAYC,IAAiBC,EAAAA,EAAAA,WAAS,IAEvC,UAAEvB,EAAS,iBAAEC,EAAgB,kBAAEC,GAAsBE,EAAML,QAE3DyB,GAAeC,EAAAA,EAAAA,UAAQ,IACV,OAAVR,QAAU,IAAVA,OAAU,EAAVA,EAAYS,MAAKC,GAASA,EAAMC,OAAS5B,KAC/C,CAACiB,IAEEY,GAAYC,EAAAA,EAAAA,cAAY,MAC5BC,EAAAA,EAAAA,KACGC,IACKA,GAAQA,EAAKC,UACfvB,GAASwB,EAAAA,EAAAA,KAAcF,EAAKC,UAC5BvB,GAASyB,EAAAA,EAAAA,MAAuB,IAChCb,GAAc,GAChB,IAEF,KACEA,GAAc,EAAM,GAEvB,GACA,IAEGc,GAAYN,EAAAA,EAAAA,cAAaO,GACtB,IAAIC,SAAQC,IACjBjB,GAAc,IAEdkB,EAAAA,EAAAA,IACEC,EAAAA,EAAaJ,EAAU,gBAAkB,kBACzC,CAAEK,KAAM1C,IACP2C,IACqB,IAAhBA,EAAKC,UACPC,EAAAA,EAAAA,GACEjC,EACE,WACEkC,EAAAA,EAAqBT,EAAU,SAAW,eAIhDR,IACAU,GAAQ,GACV,GAEF,MACA,KACEjB,GAAc,GACdO,IACAU,GAAQ,EAAK,GAEhB,KAEF,IAEGQ,GAAqBjB,EAAAA,EAAAA,cAAYkB,UACrC,GAAIlC,EACEU,QACIY,UAEAA,GAAU,OAEb,CACL1B,GAASyB,EAAAA,EAAAA,MAAuB,IAChC3B,EAAQyC,MAAKC,EAAAA,EAAAA,IAAS,CAAEC,SAAU,IAAKC,MAAO,OAC9C,MAEMC,EAAmBL,SAChB,IAAIV,SAAQC,IACjBH,GAAU,GAAMkB,SAAQ,KACtBf,GAAQ,EAAK,GACb,KANc,IAAIgB,EAAAA,GAUZC,aACVC,EAAAA,EAA2BC,cAC3BL,EAEJ,IACC,CAACvC,EAAYU,IAMhB,OAJAmC,EAAAA,EAAAA,YAAU,KACRjD,GAASyB,EAAAA,EAAAA,MAAuB,GAAM,GACrC,KAGDyB,EAAAA,EAAAA,KAAA,OACEC,WAAWC,EAAAA,EAAAA,GAAG,CACZ,MACA,CACE,CAAC7D,IAAoBuB,EACrB,CAACtB,GAAoBsB,EACrB,cAAeH,GAAcF,EAAK4C,QAClC,aAAcvC,KAGlBwC,QAASjB,EAAmBkB,UAE5BL,EAAAA,EAAAA,KAAA,QAAAK,SAAsBrD,EAAfY,EAAiB,iBAAsB,oBAGpD,C","sources":["elements/OptIn/index.tsx"],"sourcesContent":["import { ReactElement, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport cc from 'classcat';\nimport { CommandNames } from 'utils/constants/swarm/swarm-command-names';\nimport { SwarmSuccessMessages } from 'utils/constants/swarm/swarm-success-messages';\nimport { showToastSuccess } from 'utils/swarm/swarm-success-handler';\nimport { UserOptInsResponse } from 'interfaces/account-settings';\nimport { getPlayerOptIns } from 'services/account-settings';\nimport { AFTER_SIGN_IN_ACTION_TYPES, AfterSignIn } from 'services/afterSignIn';\nimport { swarmCommand } from 'services/get-swarm-data';\nimport { addQuery } from 'components/QueryRoute';\nimport { setShouldGetUserOptIns, setUserOptIns } from 'store/actions';\nimport {\n getIsLoggedIn,\n getUser,\n getUserOptIns\n} from 'store/selectors/user-data';\nimport './index.less';\n\ntype TOptInProps = {\n configs: {\n optInName: string;\n optInButtonStyle: string;\n optOutButtonStyle: string;\n };\n};\n\nconst optInDefaultProps = {\n configs: {\n optInName: 'test-1111',\n optInButtonStyle: 'btn1',\n optOutButtonStyle: 'btn1'\n }\n};\n\nexport const OptIn = (props: TOptInProps = optInDefaultProps): ReactElement => {\n const history = useHistory();\n const dispatch = useDispatch();\n const { t } = useTranslation();\n\n const isLoggedIn = useSelector(getIsLoggedIn);\n const userOptIns = useSelector(getUserOptIns);\n const user = useSelector(getUser);\n\n const [btnLoading, setBtnLoading] = useState(false);\n\n const { optInName, optInButtonStyle, optOutButtonStyle } = props.configs;\n\n const shouldOptOut = useMemo(() => {\n return userOptIns?.find(optIn => optIn.Code === optInName);\n }, [userOptIns]);\n\n const getOptIns = useCallback(() => {\n getPlayerOptIns(\n (resp: UserOptInsResponse) => {\n if (resp && resp.details) {\n dispatch(setUserOptIns(resp.details));\n dispatch(setShouldGetUserOptIns(true));\n setBtnLoading(false);\n }\n },\n () => {\n setBtnLoading(false);\n }\n );\n }, []);\n\n const optAction = useCallback((isOptIn?: boolean) => {\n return new Promise(resolve => {\n setBtnLoading(true);\n\n swarmCommand(\n CommandNames[isOptIn ? 'CLIENT_OPT_IN' : 'CLIENT_OPT_OUT'],\n { code: optInName },\n (data: Record) => {\n if (data.result === 0) {\n showToastSuccess(\n t(\n `account.${\n SwarmSuccessMessages[isOptIn ? 'OPT_IN' : 'OPT_OUT']\n }`\n )\n );\n getOptIns();\n resolve(true);\n }\n },\n null,\n () => {\n setBtnLoading(false);\n getOptIns();\n resolve(true);\n }\n );\n });\n }, []);\n\n const buttonClickHandler = useCallback(async () => {\n if (isLoggedIn) {\n if (shouldOptOut) {\n await optAction();\n } else {\n await optAction(true);\n }\n } else {\n dispatch(setShouldGetUserOptIns(false));\n history.push(addQuery({ accounts: '*', login: '*' }));\n const afterSignIn = new AfterSignIn();\n\n const optActionPromise = async () => {\n return new Promise(resolve => {\n optAction(true).finally(() => {\n resolve(true);\n });\n });\n };\n\n afterSignIn.appendAction(\n AFTER_SIGN_IN_ACTION_TYPES.OPT_IN_ACTION,\n optActionPromise\n );\n }\n }, [isLoggedIn, shouldOptOut]);\n\n useEffect(() => {\n dispatch(setShouldGetUserOptIns(true));\n }, []);\n\n return (\n \n {shouldOptOut ? t(`account.optOut`) : t(`account.optIn`)}\n \n );\n};\n"],"names":["optInDefaultProps","configs","optInName","optInButtonStyle","optOutButtonStyle","OptIn","props","arguments","length","undefined","history","useHistory","dispatch","useDispatch","t","useTranslation","isLoggedIn","useSelector","getIsLoggedIn","userOptIns","getUserOptIns","user","getUser","btnLoading","setBtnLoading","useState","shouldOptOut","useMemo","find","optIn","Code","getOptIns","useCallback","getPlayerOptIns","resp","details","setUserOptIns","setShouldGetUserOptIns","optAction","isOptIn","Promise","resolve","swarmCommand","CommandNames","code","data","result","showToastSuccess","SwarmSuccessMessages","buttonClickHandler","async","push","addQuery","accounts","login","optActionPromise","finally","AfterSignIn","appendAction","AFTER_SIGN_IN_ACTION_TYPES","OPT_IN_ACTION","useEffect","_jsx","className","cc","pending","onClick","children"],"sourceRoot":""}