client-web/build/static/js/669.9f911ffb.chunk.js.map
{"version":3,"file":"static/js/669.9f911ffb.chunk.js","mappings":"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","sources":["pages/Referrals/Referrals.tsx","../node_modules/@mui/icons-material/PersonAddAlt.js","../node_modules/@mui/icons-material/Share.js"],"sourcesContent":["import React, { useState } from \"react\";\nimport { Typography, Box, Button, TextField } from \"@mui/material\";\nimport { useStoreState } from \"../../store\";\nimport PersonAddAltIcon from \"@mui/icons-material/PersonAddAlt\";\nimport ShareIcon from \"@mui/icons-material/Share\";\nimport { useSnackbar } from \"../../context/SnackbarContext\";\nimport { useFormik } from \"formik\";\nimport { getBalance, httpWithAuth } from \"../../http\";\nimport coinImg from \"../../assets/images/coin.png\";\n\nexport interface IReferrals {}\n\ninterface IValues {\n refLink: string;\n}\n\nconst validate = (values: IValues) => {\n const errors: IValues = { refLink: \"\" };\n if (!values.refLink) {\n errors.refLink = \"Link is required\";\n }\n\n return errors;\n};\n\nconst Referrals: React.FC<IReferrals> = ({}) => {\n const link = useStoreState((state) => state.user._id);\n const walletAddress = useStoreState((state) => state.user.walletAddress);\n\n const setBalance = useStoreState((state) => state.setBalance);\n\n const referrerId = useStoreState((state) => state.user.referrerId);\n const { showSnackbar } = useSnackbar();\n const formik = useFormik({\n initialValues: { refLink: \"\" },\n validate,\n onSubmit: async ({ refLink }, { setSubmitting }) => {\n if (referrerId) {\n showSnackbar(\"error\", \"You already added your referral\");\n return;\n }\n if (refLink === link) {\n showSnackbar(\"error\", \"You cannot be your referral\");\n return;\n }\n setSubmitting(true);\n try {\n const res = await httpWithAuth().post(\"/users/referral\", {\n referrerId: refLink,\n });\n const balance = await getBalance(walletAddress);\n setBalance(balance.data.balance);\n showSnackbar(\"success\", \"Referral successfully added\");\n } catch (error) {\n showSnackbar(\"error\", \"Something went wrong\");\n }\n setSubmitting(false);\n },\n });\n\n const onShareClick = () => {\n navigator.clipboard.writeText(link);\n\n showSnackbar(\"success\", \"Link copied\");\n };\n return (\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"center\",\n padding: \"20px\",\n }}\n >\n <Box>\n <Box\n sx={{\n fontSize: 50,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <PersonAddAltIcon color=\"primary\" fontSize=\"inherit\" />\n </Box>\n <Typography\n sx={{\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n }}\n >\n Gift friends 25\n <img alt=\"\" style={{ width: \"16px\", height: \"16px\" }} src={coinImg} />\n and receive 25\n <img alt=\"\" style={{ width: \"16px\", height: \"16px\" }} src={coinImg} />\n . Send friends invite with your personal invitation code\n </Typography>\n <Typography\n sx={{ fontWeight: \"bold\", textAlign: \"center\", fontSize: \"18px\" }}\n >\n Your invitation code\n </Typography>\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginTop: \"10px\",\n }}\n >\n <Button\n onClick={onShareClick}\n variant={\"contained\"}\n startIcon={<ShareIcon />}\n >\n {link}\n </Button>\n </Box>\n <Typography\n sx={{\n fontWeight: \"bold\",\n textAlign: \"center\",\n fontSize: \"18px\",\n margin: \"10px 0\",\n }}\n >\n Or enter your referral code to earn coins.\n </Typography>\n <form\n onSubmit={formik.handleSubmit}\n style={{\n flexDirection: \"column\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }}\n >\n <TextField\n margin=\"dense\"\n label=\"Your referral code\"\n name=\"refLink\"\n type=\"text\"\n fullWidth\n inputProps={{\n autoComplete: \"off\",\n }}\n variant={\"outlined\"}\n onChange={formik.handleChange}\n value={formik.values.refLink}\n error={!!formik.touched.refLink && !!formik.errors.refLink}\n />\n <Button\n disabled={formik.isSubmitting}\n variant={\"contained\"}\n type={\"submit\"}\n >\n Earn coins\n </Button>\n </form>\n </Box>\n </Box>\n );\n};\n\nexport default Referrals;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M13 8c0-2.21-1.79-4-4-4S5 5.79 5 8s1.79 4 4 4 4-1.79 4-4zm-2 0c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zM1 18v2h16v-2c0-2.66-5.33-4-8-4s-8 1.34-8 4zm2 0c.2-.71 3.3-2 6-2 2.69 0 5.78 1.28 6 2H3zm17-3v-3h3v-2h-3V7h-2v3h-3v2h3v3h2z\"\n}), 'PersonAddAlt');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z\"\n}), 'Share');\n\nexports.default = _default;"],"names":["validate","values","errors","refLink","link","useStoreState","state","user","_id","walletAddress","setBalance","referrerId","showSnackbar","useSnackbar","formik","useFormik","initialValues","onSubmit","setSubmitting","httpWithAuth","post","getBalance","balance","data","sx","display","justifyContent","padding","fontSize","alignItems","color","alt","style","width","height","src","coinImg","fontWeight","textAlign","marginTop","onClick","navigator","clipboard","writeText","variant","startIcon","margin","handleSubmit","flexDirection","label","name","type","fullWidth","inputProps","autoComplete","onChange","handleChange","value","error","touched","disabled","isSubmitting","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""}