dappros/ethora

View on GitHub
client-web/build-prod/static/js/163.1ec23ead.chunk.js.map

Summary

Maintainability
Test Coverage
{"version":3,"file":"static/js/163.1ec23ead.chunk.js","mappings":"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","sources":["components/DeleteDialog.tsx","pages/Privacy/Blocking.tsx","pages/Privacy/QRSection.tsx","pages/Privacy/AddDocumentTabPanel.tsx","pages/Privacy/ManageDocumentShareTabPanel.tsx","pages/Privacy/DocumentsShareTab.tsx","pages/Privacy/ManageData.tsx","pages/Privacy/ManageProfileTabPanel.tsx","pages/Privacy/AddProfileTabPanel.tsx","pages/Privacy/ProfileShareTab.tsx","pages/Privacy/VisibilityTab.tsx","pages/Privacy/Privacy.tsx","pages/Profile/QrModal.tsx"],"sourcesContent":["import * as React from \"react\";\nimport Button from \"@mui/material/Button\";\nimport Dialog from \"@mui/material/Dialog\";\nimport DialogActions from \"@mui/material/DialogActions\";\nimport DialogContent from \"@mui/material/DialogContent\";\nimport DialogContentText from \"@mui/material/DialogContentText\";\nimport DialogTitle from \"@mui/material/DialogTitle\";\n\ninterface IProps {\n  open: boolean;\n  onClose: () => void;\n  onDeletePress: () => void;\n  loading?: boolean;\n  title: string;\n  description: string;\n  deleteButtonTitle?: string;\n  cancelButtonTitle?: string;\n}\n\nexport function DeleteDialog({\n  open,\n  onClose,\n  onDeletePress,\n  loading,\n  title,\n  description,\n  deleteButtonTitle,\n  cancelButtonTitle,\n}: IProps) {\n  return (\n    <Dialog\n      open={open}\n      onClose={onClose}\n      aria-labelledby=\"alert-dialog-title\"\n      aria-describedby=\"alert-dialog-description\"\n    >\n      <DialogTitle id=\"alert-dialog-title\">{title}</DialogTitle>\n      <DialogContent>\n        <DialogContentText id=\"alert-dialog-description\">\n          {description}\n        </DialogContentText>\n      </DialogContent>\n      <DialogActions>\n        <Button disabled={loading} onClick={onClose}>\n          {cancelButtonTitle || \"Cancel\"}\n        </Button>\n        <Button disabled={loading} onClick={onDeletePress} autoFocus color={\"error\"}>\n          {deleteButtonTitle || \"Delete\"}\n        </Button>\n      </DialogActions>\n    </Dialog>\n  );\n}\n","import { Box, IconButton, Typography } from \"@mui/material\";\nimport * as React from \"react\";\nimport { TUserBlackList, useStoreState } from \"../../store\";\nimport AccountCircleIcon from \"@mui/icons-material/AccountCircle\";\nimport RemoveCircleIcon from \"@mui/icons-material/RemoveCircle\";\nimport xmpp from \"../../xmpp\";\nimport { format } from \"date-fns\";\ninterface BlockingProps {}\n\ninterface BlackListUserItemProps {\n  userItem: TUserBlackList;\n  handleRemove: (userId: string) => void;\n}\n\nexport const Blocking = (props: BlockingProps) => {\n  const blacklist = useStoreState((store) => store.blackList);\n\n  const handleRemoveUserFromBlackList = (userId: string) => {\n    console.log(userId);\n    xmpp.removeUserFromBlackList(userId);\n    xmpp.getBlackList();\n  };\n\n  return (\n    <Box\n      style={{\n        margin: \"20px\",\n      }}\n    >\n      <Box>\n        <Typography fontWeight={\"bold\"}>Users you have blocked</Typography>\n        <Typography>\n          The blocked users cannot message you or view your profile. Tap the bin\n          icon if you wish to remove the block.\n        </Typography>\n\n        {blacklist.map((item) => {\n          return (\n            <BlackListUserItem\n              handleRemove={handleRemoveUserFromBlackList}\n              userItem={item}\n            />\n          );\n        })}\n      </Box>\n    </Box>\n  );\n};\n\nfunction BlackListUserItem(props: BlackListUserItemProps) {\n  const { userItem, handleRemove } = props;\n\n  return (\n    <Box\n      style={{\n        marginTop: \"20px\",\n        display: \"flex\",\n        alignItems: \"center\",\n        justifyContent: \"space-between\",\n        maxWidth: \"300px\",\n      }}\n    >\n      <Box\n        style={{\n          alignItems: \"center\",\n          display: \"flex\",\n          justifyContent: \"space-around\",\n        }}\n      >\n        <AccountCircleIcon fontSize=\"large\" />\n\n        <Box\n          style={{\n            marginLeft: \"10px\",\n          }}\n        >\n          <Typography>{userItem.fullName}</Typography>\n          <Typography>\n            {format(new Date(userItem.date * 1000), \"dd MMMM yyyy\")}\n          </Typography>\n        </Box>\n      </Box>\n      <IconButton onClick={() => handleRemove(userItem.user)}>\n        <RemoveCircleIcon color=\"error\" />\n      </IconButton>\n    </Box>\n  );\n}\n","import { Button } from '@mui/material';\nimport { Box } from '@mui/system';\nimport * as React from 'react';\nimport QRCode from 'react-qr-code';\nimport { CONFERENCEDOMAIN } from '../../constants';\nimport { TUser } from '../../store';\nimport { generateDocumentLink, generateProfileLink, truncateString } from '../../utils';\nimport { walletToUsername } from '../../utils/walletManipulation';\nimport { ISharedLink } from './ProfileShareTab';\n\ninterface QRSectionProps {\n    user:TUser;\n    createdLink: ISharedLink;\n    linkType:'profile'|'document'\n}\n\nexport const QRSection = (props: QRSectionProps) => {\n    const {\n        user,\n        createdLink,\n        linkType\n    } = props\n\n    const generateLink = () => {\n        if(linkType === 'profile'){\n            return generateProfileLink({\n                firstName:user.firstName,\n                lastName: user.lastName,\n                walletAddress: createdLink.walletAddress,\n                xmppId: walletToUsername(user.walletAddress) + CONFERENCEDOMAIN,\n                linkToken: createdLink.token\n            })\n        }\n        if(linkType === 'document'){\n            return generateDocumentLink({\n                linkToken:createdLink.token\n            })\n        }\n    }\n\n    return (\n        <>\n        <QRCode\n        size={226}\n        style={{ height: '60vh', maxWidth: \"100%\", width: \"100%\" }}\n        value={generateLink()}\n        viewBox={`0 0 256 256`}\n      />\n    <Box\n        sx={{\n        boxShadow: \"2px 0px 5px 0px rgba(0,0,0,0.75)\",\n        borderRadius: \"10px\",\n        display: \"flex\",\n        justifyContent: \"space-between\",\n        alignItems: \"center\",\n        pl: \"10px\",\n        my: \"10px\",\n        }}\n    >\n        <span>{truncateString(generateLink(), 50)}</span>\n        <Button\n        variant=\"contained\"\n        sx={{ borderRadius: \"10px\" }}\n        onClick={() => navigator.clipboard.writeText(generateLink())}\n        >\n        Copy\n        </Button>\n    </Box>\n    </>\n    );\n};","import { Box, Button, FormControl, InputLabel, MenuItem, Select, TextField, Typography } from '@mui/material';\nimport * as React from 'react';\nimport { createSharedLink, IDocument } from '../../http';\nimport { useStoreState } from '../../store';\nimport { ISharedLink } from './ProfileShareTab';\nimport { QRSection } from './QRSection';\n\ninterface AddDocumentTabPanelProps {\n    getSharedLinks: () => Promise<void>;\n}\n\n\ninterface optionsItemProps {\n    handleChange: (value:string) => void;\n    selectedValue:any;\n    title:string;\n    description:string;\n    type:'menu1'|'input'|'menu2',\n    documents?:IDocument[]\n}\n\nconst HOUR = 60 * 60;\nconst DAY = HOUR * 24;\nconst WEEK = DAY * 7;\nconst MONTH = WEEK * 4;\n\nconst expDescription = 'If you set this, this link will only be valid for the given period of time';\nconst memoDescription = 'Add an optional note so that you remember who you shared this with.';\nconst docDescription = 'Choose the Document you would like to share.'\n\nexport const AddDocumentTabPanel = (props: AddDocumentTabPanelProps) => {\n    const {getSharedLinks} = props\n    const [expiration, setExpiration] = React.useState((-1).toString());\n    const [memo, setMemo] = React.useState('');\n    const [documentId, setDocumentId] = React.useState('');\n    const [loading, setLoading] = React.useState(false);\n    const [createdLink, setCreatedLink] = React.useState<ISharedLink>({\n        _id: '',\n        expiration: '',\n        memo: '',\n        resource: '',\n        token: '',\n        updatedAt: '',\n        userId: '',\n        walletAddress: '',\n        createdAt:''\n      });\n    const user = useStoreState((state) => state.user);\n    const documents = useStoreState((state) => state.documents);\n\n    const handleSetExpiration = (value:string) => setExpiration(value)\n    const handleMemo = (value:string) => setMemo(value)\n    const handleDocumentID = (value:string) => setDocumentId(value);\n\n    const generateLink = async () => {\n        const body = {\n          expiration: new Date().getTime() + +expiration * 1000,\n          memo: memo,\n          resource: 'document',\n          documentId: documentId,\n        };\n        setLoading(true);\n        try {\n          const {data} = await createSharedLink(body)\n          console.log(data);\n          setCreatedLink(data.sharelinkData);\n          getSharedLinks()\n        } catch (error) {\n          console.log(error);\n        }\n        setLoading(false);\n    };\n\n    return (\n        <Box style={{\n            display:\"flex\",\n            alignItems:\"flex-start\",\n            flexDirection:\"column\",\n            margin: '20px',\n            }}>\n            <Box>\n                <Typography\n                fontWeight={\"bold\"}\n                >Create a Document Sharing link</Typography>\n                <Typography>\n                Send this link to your trusted contact(s) so they can access your\n                profile when you're in Restricted mode..\n                </Typography>\n                <Typography\n                fontWeight={\"light\"}\n                fontStyle={'italic'}\n                fontSize={\"12px\"}\n                >\n                Note: you'll be able to remove this link any time if you change your\n                mind.\n                </Typography>\n            </Box>\n\n            <OptionsItem\n            selectedValue={expiration}\n            handleChange={handleSetExpiration}\n            description={expDescription}\n            title={'Expiration'}\n            type=\"menu1\"\n            />\n            <OptionsItem\n            selectedValue={documentId}\n            handleChange={handleDocumentID}\n            description = {docDescription}\n            title = {'Document'}\n            type='menu2'\n            documents={documents}\n            />\n            <OptionsItem\n            selectedValue={memo}\n            handleChange={handleMemo}\n            description={memoDescription}\n            title={'Memo'}\n            type=\"input\"\n            />\n            <Box>\n                <Typography\n                fontSize={\"15px\"}\n                fontWeight={\"bold\"}\n                >Here you go!</Typography>\n                <Typography\n                fontSize={\"15px\"}\n                >\n                Your unique link and QR code have been created. You can share them\n                using buttons below.\n                </Typography>\n                <Typography\n                fontWeight={\"light\"}\n                fontStyle={'italic'}\n                fontSize={\"12px\"}\n                >\n                Note: use \"Manage\" tab in case you want to copy or modify your sharing\n                link in future.\n                </Typography>\n                <Box\n                style={{\n                    marginTop:'20px'\n                }}\n                >\n                {\n                    createdLink.walletAddress?(\n                        <QRSection\n                        createdLink={createdLink}\n                        user={user}\n                        linkType={'document'}\n                        />\n                    ):(<Button\n                        disabled={loading}\n                        onClick={generateLink} \n                        variant=\"contained\">Generate Link</Button>)\n                }\n                </Box>\n            </Box>\n        </Box>\n    );\n};\n\n\nfunction OptionsItem(props:optionsItemProps){\n    const {\n    handleChange,\n    selectedValue,\n    title,\n    description,\n    type,\n    documents\n    } = props\n\n    return(\n        <Box\n        style={{\n            margin:\"10px\"\n        }}\n        >\n            <Typography\n            fontSize={\"15px\"}\n            fontWeight={\"bold\"}\n            >\n                {title}\n            </Typography>\n\n            <Typography\n            fontSize={\"15px\"}\n            >\n                {description}\n            </Typography>\n            {\n                type==='menu1'?\n                <FormControl sx={{ minWidth: 120, marginTop:\"20px\" }}>\n                <InputLabel id=\"demo-simple-select-helper-label\">Expiration</InputLabel>\n                <Select\n                labelId='demo-simple-select-helper-label'\n                id=\"demo-simple-select-helper\"\n                value={selectedValue}\n                label=\"Expiration\"\n                onChange={(e)=> handleChange(e.target.value)}\n                >\n                    <MenuItem value={(-1).toString()} >\n                    No Expiration\n                    </MenuItem>\n                    <MenuItem value={HOUR.toString()}>\n                    1 hour\n                    </MenuItem>\n                    <MenuItem value={DAY.toString()}>\n                    1 day\n                    </MenuItem>\n                    <MenuItem value={WEEK.toString()}>\n                    1 week\n                    </MenuItem>\n                    <MenuItem value={MONTH.toString()}>\n                    1 month\n                    </MenuItem>\n                </Select>\n            </FormControl>:null\n            }\n            {\n                type === 'menu2'?\n                <FormControl sx={{ minWidth: 120, marginTop:\"20px\" }}>\n                    <InputLabel id=\"demo-simple-select-helper-label\">Choose Document</InputLabel>\n                    <Select\n                    size='medium'\n                    style={{\n                        width: '120px'\n                    }}\n                    labelId='demo-simple-select-helper-label'\n                    id=\"demo-simple-select-helper\"\n                    value={selectedValue}\n                    label=\"Choose document\"\n                    onChange={(e)=> handleChange(e.target.value)}\n                    >\n                        {documents.map(item =>(\n                            <MenuItem value={item._id}>\n                                {item.documentName}\n                            </MenuItem>\n                        ))}\n                    </Select>\n                </FormControl>:null\n            }\n            {\n                type === 'input'?\n                <Box style={{marginTop:'20px'}}>\n                <TextField\n                onChange={(e)=>handleChange(e.target.value)}\n                id=\"outlined-basic\" \n                label=\"shared with Alice\"\n                variant=\"outlined\" />\n                </Box>:null\n            }\n        </Box>\n    )\n}","import {\n  Box,\n  Button,\n  CircularProgress,\n  IconButton,\n  Typography,\n} from \"@mui/material\";\nimport * as React from \"react\";\nimport { ISharedLink } from \"./ProfileShareTab\";\nimport QrCode2Icon from \"@mui/icons-material/QrCode2\";\nimport DescriptionIcon from \"@mui/icons-material/Description\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport { generateDocumentLink } from \"../../utils\";\nimport { format } from \"date-fns\";\n\ninterface ManageDocumentShareTabPanelProps {\n  handleChangeTab: (event: React.SyntheticEvent, newValue: number) => void;\n  loading: boolean;\n  sharedLinks: ISharedLink[];\n  handleOpenModal: (docLink: string) => void;\n  deleteLink: (linkToken: string) => Promise<void>;\n}\n\ninterface DocumentLinkItemComponentProps {\n  key: string;\n  linkItem: ISharedLink;\n  handleOpenModal: (docLink: string) => void;\n  docLink: string;\n  deleteLink: (linkToken: string) => Promise<void>;\n}\n\nexport const ManageDocumentShareTabPanel = (\n  props: ManageDocumentShareTabPanelProps\n) => {\n  const { handleChangeTab, loading, sharedLinks, handleOpenModal, deleteLink } =\n    props;\n\n  return (\n    <Box\n      style={{\n        margin: \"10px\",\n        display: \"flex\",\n        flexDirection: \"column\",\n      }}\n    >\n      <Box\n        style={{\n          flexDirection: \"row\",\n          display: \"flex\",\n          alignItems: \"center\",\n          margin: \"10px\",\n          marginLeft: 0,\n        }}\n      >\n        <Typography fontWeight={\"bold\"}>Current Document Shares</Typography>\n        <Button\n          style={{\n            width: \"150px\",\n            marginLeft: \"10px\",\n          }}\n          onClick={(event) => handleChangeTab(event, 1)}\n          variant=\"contained\"\n        >\n          + Add a share\n        </Button>\n      </Box>\n      <Typography>\n        Listed below are your currently active document sharing links. You can\n        share or delete them.\n      </Typography>\n      {loading ? <CircularProgress /> : null}\n\n      {sharedLinks.length\n        ? sharedLinks.map((item, index) => {\n            return (\n              <LinkItemComponent\n                handleOpenModal={handleOpenModal}\n                key={item._id}\n                linkItem={item}\n                docLink={generateDocumentLink({\n                  linkToken: item.token,\n                })}\n                deleteLink={deleteLink}\n              />\n            );\n          })\n        : null}\n    </Box>\n  );\n};\n\nfunction LinkItemComponent(props: DocumentLinkItemComponentProps) {\n  const { linkItem, key, handleOpenModal, docLink, deleteLink } = props;\n  return (\n    <Box\n      key={key}\n      style={{\n        margin: \"10px\",\n        marginTop: \"40px\",\n      }}\n    >\n      <Typography fontWeight={\"bold\"}>{linkItem.memo}</Typography>\n      <Box\n        style={{\n          flexDirection: \"row\",\n          display: \"flex\",\n          alignItems: \"center\",\n        }}\n      >\n        <Box>\n          <Typography>\n            Created at:{\" \"}\n            {format(new Date(linkItem.createdAt), \"MMMM dd yyyy, hh:mm\")}\n          </Typography>\n          <Typography>\n            Expires:{\" \"}\n            {+linkItem.expiration !== -1\n              ? format(new Date(linkItem.expiration), \"MMMM dd yyyy hh:mm\")\n              : \"\"}\n          </Typography>\n        </Box>\n\n        <Box marginLeft={\"50px\"}>\n          <IconButton onClick={() => handleOpenModal(docLink)} color=\"inherit\">\n            <QrCode2Icon fontSize=\"large\" />\n          </IconButton>\n          <IconButton\n            onClick={() => navigator.clipboard.writeText(docLink)}\n            color=\"inherit\"\n          >\n            <DescriptionIcon fontSize=\"large\" />\n          </IconButton>\n          <IconButton\n            onClick={() => deleteLink(linkItem.token)}\n            color=\"inherit\"\n          >\n            <DeleteIcon fontSize=\"large\" />\n          </IconButton>\n        </Box>\n      </Box>\n    </Box>\n  );\n}\n","import { Tab, Tabs } from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport * as React from \"react\";\nimport { useSnackbar } from \"../../context/SnackbarContext\";\nimport { deleteSharedLink, getSharedLinksService } from \"../../http\";\nimport { useStoreState } from \"../../store\";\nimport { QrModal } from \"../Profile/QrModal\";\nimport { AddDocumentTabPanel } from \"./AddDocumentTabPanel\";\nimport { ManageDocumentShareTabPanel } from \"./ManageDocumentShareTabPanel\";\nimport { ISharedLink } from \"./ProfileShareTab\";\n\ninterface DocumentsShareProps {}\n\nfunction a11yProps(index: number) {\n  return {\n    id: `simple-tab-${index}`,\n    \"aria-controls\": `simple-tabpanel-${index}`,\n  };\n}\n\nexport const DocumentsShare = (props: DocumentsShareProps) => {\n  const [tab, setTab] = React.useState(0);\n  const [openModal, setOpenModal] = React.useState(false);\n  const [loading, setLoading] = React.useState(false);\n  const [sharedLinks, setSharedLinks] = React.useState<ISharedLink[]>([]);\n  const [docLink, setDocLink] = React.useState(\"\");\n  const user = useStoreState((state) => state.user);\n  const { showSnackbar } = useSnackbar();\n  const handleCloseModal = () => setOpenModal(false);\n  const handleOpenModal = (link: string) => {\n    setDocLink(link);\n    setOpenModal(true);\n  };\n  const handleChangeTab = (event: React.SyntheticEvent, newValue: number) => {\n    setTab(newValue);\n  };\n\n  const getSharedLinks = async () => {\n    setLoading(true);\n    try {\n      const { data } = await getSharedLinksService();\n      setSharedLinks(data.items.filter((item) => item.resource === \"document\"));\n    } catch (error) {\n      console.log(error);\n    }\n    setLoading(false);\n  };\n\n  const deleteLink = async (linkToken: string) => {\n    try {\n      const { data } = await deleteSharedLink(linkToken);\n      await getSharedLinks();\n      showSnackbar(\"success\", \"Link deleted successfully\");\n    } catch (error) {\n      console.log(error);\n    }\n  };\n\n  React.useEffect(() => {\n    getSharedLinks();\n  }, []);\n\n  return (\n    <Box>\n      <Tabs\n        style={{ display: \"flex\" }}\n        value={tab}\n        onChange={handleChangeTab}\n        aria-label=\"basic tabs example\"\n      >\n        <Tab label=\"Manage\" {...a11yProps(0)} />\n        <Tab label=\"Add\" {...a11yProps(1)} />\n      </Tabs>\n      {tab === 0 && (\n        <ManageDocumentShareTabPanel\n          handleChangeTab={handleChangeTab}\n          sharedLinks={sharedLinks}\n          loading={loading}\n          handleOpenModal={handleOpenModal}\n          deleteLink={deleteLink}\n        />\n      )}\n      {tab === 1 && <AddDocumentTabPanel getSharedLinks={getSharedLinks} />}\n      <QrModal open={openModal} link={docLink} onClose={handleCloseModal} />\n    </Box>\n  );\n};\n","import { Box, Button, Typography } from \"@mui/material\";\nimport { useWeb3React } from \"@web3-react/core\";\nimport * as React from \"react\";\nimport { useHistory } from \"react-router\";\nimport { DeleteDialog } from \"../../components/DeleteDialog\";\nimport { useSnackbar } from \"../../context/SnackbarContext\";\nimport { deleteAccountService, httpWithAuth } from \"../../http\";\nimport { useStoreState } from \"../../store\";\nimport xmpp from \"../../xmpp\";\n\ninterface ManageDataProps {}\n\nexport const ManageData = (props: ManageDataProps) => {\n  const [deleteDialogOpen, setDeleteDialogOpen] = React.useState(false);\n  const [loading, setLoading] = React.useState(false);\n  const { showSnackbar } = useSnackbar();\n  const clearUser = useStoreState((state) => state.clearUser);\n  const user = useStoreState((state) => state.user);\n\n  const history = useHistory();\n  const { active, deactivate } = useWeb3React();\n  const handleCloseDeleteDialog = () => setDeleteDialogOpen(false);\n\n  const deleteAccount = async () => {\n    setLoading(true);\n    try {\n      await deleteAccountService();\n      showSnackbar(\"success\", \"Account deleted successfully\");\n\n      onLogout();\n    } catch (error) {\n      console.log(error);\n      showSnackbar(\"error\", \"Something went wrong\");\n    }\n    setLoading(false);\n\n    setDeleteDialogOpen(false);\n  };\n\n  const onLogout = () => {\n    clearUser();\n    xmpp.stop();\n    if (active) {\n      deactivate();\n    }\n    history.push(\"/\");\n  };\n  const downloadData = (data: unknown) => {\n    const jsonString = `data:text/json;chatset=utf-8,${encodeURIComponent(\n      JSON.stringify(data)\n    )}`;\n    const link = document.createElement(\"a\");\n    link.href = jsonString;\n    link.download =\n      user.firstName + \" \" + user.lastName + \" personal data.json\";\n    link.click();\n    link.remove();\n  };\n  const exportData = async () => {\n    setLoading(true);\n    try {\n      const { data } = await httpWithAuth().get(\"/users/exportData\");\n      downloadData(data);\n    } catch (error) {\n      console.log(error);\n    }\n    setLoading(false);\n  };\n\n  return (\n    <Box\n      sx={{\n        display: \"flex\",\n        alignItems: \"flex-start\",\n        flexDirection: \"column\",\n        margin: \"20px\",\n        width: \"50vw\",\n      }}\n    >\n      <Box sx={{width: '100%'}}>\n        <Typography fontWeight={\"bold\"}>Download your data</Typography>\n        <Typography>\n          You own your data. Tap the button below to download a copy of your\n          data\n        </Typography>\n        <Box sx={{ display: \"flex\", justifyContent: \"center\" }}>\n          <Button\n            sx={{ margin: \"0 auto\" }}\n            disabled={loading}\n            onClick={exportData}\n            variant=\"contained\"\n          >\n            Download my data\n          </Button>\n        </Box>\n      </Box>\n\n      <Box\n        sx={{\n          marginTop: \"20px\",\n          width: '100%'\n        }}\n      >\n        <Typography fontWeight={\"bold\"}>Delete your account</Typography>\n        <Typography>\n          Use this only if you want to permanently delete your account & data\n          from our system.\n        </Typography>\n        <Typography fontWeight={\"light\"} fontStyle={\"italic\"} fontSize={\"12px\"}>\n          Note: due to the immutable nature of distributed ledger technology,\n          network nodes operated by the community may still retain historical\n          transactions generated by your account, however your personally\n          identifiable information such as your name, e-mail, your key-value\n          storage etc will be removed.\n        </Typography>\n\n        <Typography fontWeight={\"light\"} fontStyle={\"italic\"} fontSize={\"12px\"}>\n          Any of your digital assets will be lost.\n        </Typography>\n        <Box sx={{ display: \"flex\", justifyContent: \"center\" }}>\n          <Button\n            color=\"error\"\n            onClick={() => setDeleteDialogOpen(true)}\n            variant=\"contained\"\n          >\n            Delete my account\n          </Button>\n        </Box>\n      </Box>\n      <DeleteDialog\n        onDeletePress={deleteAccount}\n        loading={loading}\n        onClose={handleCloseDeleteDialog}\n        open={deleteDialogOpen}\n        title={\"Delete Account\"}\n        description={\n          \"This will result in a complete deletion of your account and assets. Are you sure you want to proceed?\"\n        }\n      />\n    </Box>\n  );\n};\n","import {\n  Box,\n  Button,\n  CircularProgress,\n  IconButton,\n  Typography,\n} from \"@mui/material\";\nimport * as React from \"react\";\nimport { ISharedLink } from \"./ProfileShareTab\";\nimport QrCode2Icon from \"@mui/icons-material/QrCode2\";\nimport DescriptionIcon from \"@mui/icons-material/Description\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport { format } from \"date-fns\";\n\ninterface ManageTabPanelProps {\n  handleChangeTab: (event: React.SyntheticEvent, newValue: number) => void;\n  sharedLinks: ISharedLink[];\n  loading: boolean;\n  handleOpenModal: () => void;\n  profileLink: string;\n  deleteLink: (linkToken: string) => Promise<void>;\n}\n\ninterface ProfileLinkItemComponentProps {\n  key: string;\n  linkItem: ISharedLink;\n  handleOpenModal: () => void;\n  profileLink: string;\n  deleteLink: (linkToken: string) => Promise<void>;\n}\n\nexport const ManageTabPanel = (props: ManageTabPanelProps) => {\n  const {\n    handleChangeTab,\n    sharedLinks,\n    loading,\n    handleOpenModal,\n    profileLink,\n    deleteLink,\n  } = props;\n  return (\n    <Box\n      style={{\n        margin: \"10px\",\n        display: \"flex\",\n        flexDirection: \"column\",\n      }}\n    >\n      <Box\n        style={{\n          flexDirection: \"row\",\n          display: \"flex\",\n          alignItems: \"center\",\n          margin: \"10px\",\n          marginLeft: 0,\n        }}\n      >\n        <Typography fontWeight={\"bold\"}>Current Profile Shares</Typography>\n        <Button\n          style={{\n            width: \"150px\",\n            marginLeft: \"10px\",\n          }}\n          onClick={(event) => handleChangeTab(event, 1)}\n          variant=\"contained\"\n        >\n          + Add a share\n        </Button>\n      </Box>\n      <Typography>\n        Listed below are your currently active profile sharing links. You can\n        share or delete them.\n      </Typography>\n      {loading ? <CircularProgress /> : null}\n\n      {sharedLinks.length\n        ? sharedLinks.map((item, index) => {\n            return (\n              <LinkItemComponent\n                handleOpenModal={handleOpenModal}\n                key={item._id}\n                linkItem={item}\n                profileLink={profileLink}\n                deleteLink={deleteLink}\n              />\n            );\n          })\n        : null}\n    </Box>\n  );\n};\n\nfunction LinkItemComponent(props: ProfileLinkItemComponentProps) {\n  const { linkItem, key, handleOpenModal, profileLink, deleteLink } = props;\n  return (\n    <Box\n      key={key}\n      style={{\n        margin: \"10px\",\n        marginTop: \"40px\",\n      }}\n    >\n      <Typography fontWeight={\"bold\"}>{linkItem.memo}</Typography>\n      <Box\n        style={{\n          flexDirection: \"row\",\n          display: \"flex\",\n          alignItems: \"center\",\n        }}\n      >\n        <Box>\n          <Typography>\n            Created at:{\" \"}\n            {format(new Date(linkItem.createdAt), \"MMMM dd yyyy, hh:mm\")}\n          </Typography>\n          <Typography>\n            Expires:{\" \"}\n            {+linkItem.expiration !== -1\n              ? format(new Date(linkItem.expiration), \"MMMM dd yyyy hh:mm\")\n              : \"\"}\n          </Typography>\n        </Box>\n\n        <Box marginLeft={\"50px\"}>\n          <IconButton onClick={handleOpenModal} color=\"inherit\">\n            <QrCode2Icon fontSize=\"large\" />\n          </IconButton>\n          <IconButton\n            onClick={() => navigator.clipboard.writeText(profileLink)}\n            color=\"inherit\"\n          >\n            <DescriptionIcon fontSize=\"large\" />\n          </IconButton>\n          <IconButton\n            onClick={() => deleteLink(linkItem.token)}\n            color=\"inherit\"\n          >\n            <DeleteIcon fontSize=\"large\" />\n          </IconButton>\n        </Box>\n      </Box>\n    </Box>\n  );\n}\n","import { Box, Button, Container, FormControl, InputLabel, MenuItem, Select, SelectChangeEvent, TextField, Typography } from '@mui/material';\nimport * as React from 'react';\nimport { createSharedLink } from '../../http';\nimport { TUser, useStoreState } from '../../store';\nimport { ISharedLink } from './ProfileShareTab';\nimport { QRSection } from './QRSection';\n\ninterface AddTabPanelProps {\n    getSharedLinks: () => Promise<void>;\n}\n\n\nconst HOUR = 60 * 60;\nconst DAY = HOUR * 24;\nconst WEEK = DAY * 7;\nconst MONTH = WEEK * 4;\n\nconst expDescription = 'If you set this, this link will only be valid for the given period of time';\nconst memoDescription = 'Add an optional note so that you remember who you shared this with.';\n\ninterface optionsItemProps {\n    handleChange: (value:string) => void;\n    selectedValue:any;\n    title:string;\n    description:string;\n    type:'menu'|'input'\n}\n\n\nfunction OptionsItem(props:optionsItemProps){\n    const {\n    handleChange,\n    selectedValue,\n    title,\n    description,\n    type\n    } = props\n\n    return(\n        <Box\n        style={{\n            margin:\"10px\"\n        }}\n        >\n            <Typography\n            fontSize={\"15px\"}\n            fontWeight={\"bold\"}\n            >\n                {title}\n            </Typography>\n\n            <Typography\n            fontSize={\"15px\"}\n            >\n                {description}\n            </Typography>\n            {\n                type==='menu'?\n                <FormControl sx={{ minWidth: 120, marginTop:\"20px\" }}>\n                <InputLabel id=\"demo-simple-select-helper-label\">Expiration</InputLabel>\n                <Select\n                labelId='demo-simple-select-helper-label'\n                id=\"demo-simple-select-helper\"\n                value={selectedValue}\n                label=\"Expiration\"\n                onChange={(e)=> handleChange(e.target.value)}\n                >\n                    <MenuItem value={(-1).toString()} >\n                    No Expiration\n                    </MenuItem>\n                    <MenuItem value={HOUR.toString()}>\n                    1 hour\n                    </MenuItem>\n                    <MenuItem value={DAY.toString()}>\n                    1 day\n                    </MenuItem>\n                    <MenuItem value={WEEK.toString()}>\n                    1 week\n                    </MenuItem>\n                    <MenuItem value={MONTH.toString()}>\n                    1 month\n                    </MenuItem>\n                </Select>\n            </FormControl>:\n            <Box style={{marginTop:'20px'}}>\n            <TextField\n            onChange={(e)=>handleChange(e.target.value)}\n            id=\"outlined-basic\" \n            label=\"shared with Alice\"\n             variant=\"outlined\" />\n            </Box>\n            }\n        </Box>\n    )\n}\n\ninterface QRSectionProps {\n    user:TUser;\n    createdLink: ISharedLink\n}\n\nexport const AddTabPanel = (props: AddTabPanelProps) => {\n\n    const {getSharedLinks} = props\n    const [expiration, setExpiration] = React.useState((-1).toString());\n    const [memo, setMemo] = React.useState('');\n    const [createdLink, setCreatedLink] = React.useState<ISharedLink>({\n        _id: '',\n        expiration: '',\n        memo: '',\n        resource: '',\n        token: '',\n        updatedAt: '',\n        userId: '',\n        walletAddress: '',\n        createdAt:''\n      });\n    const [loading, setLoading] = React.useState(false);\n\n    const user = useStoreState((state) => state.user);\n\n    const handleSetExpiration = (value:string) => setExpiration(value)\n    const handleMemo = (value:string) => setMemo(value)\n\n    const generateLink = async () => {\n        const body = {\n          expiration: new Date().getTime() + +expiration * 1000,\n          memo: memo,\n          resource: 'profile',\n        };\n        setLoading(true);\n        try {\n          const {data} = await createSharedLink(body)\n          console.log(data);\n          setCreatedLink(data.sharelinkData);\n          getSharedLinks()\n        } catch (error) {\n          console.log(error);\n        }\n        setLoading(false);\n      };\n\n    return (\n        <Box style={{\n            display:\"flex\",\n            alignItems:\"flex-start\",\n            flexDirection:\"column\",\n            margin: '20px',\n            }}>\n            <Box>\n                <Typography\n                fontWeight={\"bold\"}\n                >Create a Profile Sharing link</Typography>\n                <Typography>\n                Send this link to your trusted contact(s) so they can access your\n                profile when you're in Restricted mode..\n                </Typography>\n                <Typography\n                fontWeight={\"light\"}\n                fontStyle={'italic'}\n                fontSize={\"12px\"}\n                >\n                Note: you'll be able to remove this link any time if you change your\n                mind.\n                </Typography>\n            </Box>\n\n            <OptionsItem\n            selectedValue={expiration}\n            handleChange={handleSetExpiration}\n            description={expDescription}\n            title={'Expiration'}\n            type=\"menu\"\n            />\n            <OptionsItem\n            selectedValue={memo}\n            handleChange={handleMemo}\n            description={memoDescription}\n            title={'Memo'}\n            type=\"input\"\n            />\n            <Box>\n                <Typography\n                fontSize={\"15px\"}\n                fontWeight={\"bold\"}\n                >Here you go!</Typography>\n                <Typography\n                fontSize={\"15px\"}\n                >\n                Your unique link and QR code have been created. You can share them\n                using buttons below.\n                </Typography>\n                <Typography\n                fontWeight={\"light\"}\n                fontStyle={'italic'}\n                fontSize={\"12px\"}\n                >\n                Note: use \"Manage\" tab in case you want to copy or modify your sharing\n                link in future.\n                </Typography>\n                <Box\n                style={{\n                    marginTop:'20px'\n                }}\n                >\n                {\n                    createdLink.walletAddress?(\n                        <QRSection\n                        createdLink={createdLink}\n                        user={user}\n                        linkType={'profile'}\n                        />\n                    ):(<Button\n                        disabled={loading}\n                        onClick={generateLink} \n                        variant=\"contained\">Generate Link</Button>)\n                }\n                </Box>\n            </Box>\n        </Box>\n    );\n};","import { Box, Tab, Tabs, } from '@mui/material';\nimport * as React from 'react';\nimport { deleteSharedLink, getSharedLinksService } from '../../http';\nimport { useStoreState } from '../../store';\nimport { generateProfileLink } from '../../utils';\nimport { CONFERENCEDOMAIN } from \"../../constants\";\nimport { QrModal } from '../Profile/QrModal';\nimport { ManageTabPanel } from './ManageProfileTabPanel';\nimport { AddTabPanel } from './AddProfileTabPanel';\nimport { walletToUsername } from '../../utils/walletManipulation';\n\ninterface ProfileShareTabProps {\n}\n\nexport interface ISharedLink {\n    _id: string;\n    createdAt: string;\n    expiration: string;\n    memo: string;\n    resource: string;\n    token: string;\n    updatedAt: string;\n    userId: string;\n    walletAddress: string;\n}\n\nfunction a11yProps(index: number) {\n    return {\n      id: `simple-tab-${index}`,\n      'aria-controls': `simple-tabpanel-${index}`,\n    };\n}\n\n\n\nexport const ProfileShareTab = (props: ProfileShareTabProps) => {\n\n    const [tab, setTab] = React.useState(0);\n    const [loading, setLoading] = React.useState(false);\n    const [sharedLinks, setSharedLinks] = React.useState<ISharedLink[]>([]);\n    const [openModal, setOpenModal] = React.useState(false);\n    const [showToast, setShowToast] = React.useState(false);\n    const user = useStoreState((state) => state.user);\n    \n    const handleOpenModal = () => setOpenModal(true);\n    const handleCloseModal = () => setOpenModal(false);\n    const handleOpenToast = () => setShowToast(true);\n    const handleCloseToast = () => setShowToast(false);\n    const handleChangeTab = (event: React.SyntheticEvent, newValue: number) => {\n        setTab(newValue);\n    };\n\n    const profileLink = generateProfileLink({\n        firstName: user.firstName,\n        lastName: user.lastName,\n        walletAddress: user.walletAddress,\n        xmppId: walletToUsername(user.walletAddress) + CONFERENCEDOMAIN,\n        linkToken: user.token\n    })\n\n    const getSharedLinks = async () => {\n        setLoading(true);\n        try {\n          const {data} = await getSharedLinksService();\n          setSharedLinks(data.items.filter(item => item.resource === 'profile'));\n        } catch (error) {\n          console.log(error);\n        }\n        setLoading(false);\n    };\n\n    const deleteLink = async (linkToken: string) => {\n        try {\n          const {data} = await deleteSharedLink(linkToken)\n          await getSharedLinks();\n          handleOpenToast()\n        } catch (error) {\n          console.log(error);\n        }\n    };\n\n    React.useEffect(()=>{\n        getSharedLinks()\n    },[])\n    return (\n        <Box>\n            <Tabs style={{display:'flex'}} value={tab} onChange={handleChangeTab} aria-label=\"basic tabs example\">\n                <Tab label=\"Manage\" {...a11yProps(0)} />\n                <Tab label=\"Add\" {...a11yProps(1)} />\n            </Tabs>\n            {tab === 0?\n            <ManageTabPanel\n            handleChangeTab={handleChangeTab}\n            sharedLinks={sharedLinks}\n            loading={loading}\n            profileLink={profileLink}\n            handleOpenModal={handleOpenModal}\n            deleteLink={deleteLink}\n            />:null\n            }\n            {tab === 1?\n            <AddTabPanel\n            getSharedLinks={getSharedLinks}\n            />:null\n            }\n            <QrModal\n            open={openModal}\n            link={profileLink}\n            onClose={handleCloseModal}\n            />\n           \n        </Box>\n    );\n};","import {\n  Button,\n  Container,\n  FormControl,\n  FormControlLabel,\n  FormLabel,\n  Radio,\n  RadioGroup,\n  Typography,\n} from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport React, { useState } from \"react\";\nimport { useSnackbar } from \"../../context/SnackbarContext\";\nimport { changeUserData } from \"../../http\";\nimport { useStoreState } from \"../../store\";\n\ninterface VisibilityProps {\n  handleChangeTab: (event: React.SyntheticEvent, newValue: number) => void;\n}\n\nconst state: Record<string, string> = {\n  open: \"true\",\n  restricted: \"false\",\n  full: \"true\",\n  individual: \"false\",\n};\n\nexport const Visibility: React.FC<VisibilityProps> = ({ handleChangeTab }) => {\n  const updateUserProfilePermission = useStoreState(\n    (state) => state.updateUserProfilePermission\n  );\n  const updateUserDocumentsPermission = useStoreState(\n    (state) => state.updateUserDocumentsPermission\n  );\n  const user = useStoreState((state) => state.user);\n\n  const [profileVisibility, setProfileVisibility] = useState(\n    user.isProfileOpen ? \"open\" : \"restricted\"\n  );\n  const [isAssetsOpen, setIsAssetsOpen] = useState(\n    user.isAssetsOpen ? \"full\" : \"individual\"\n  );\n  const [loading, setLoading] = useState<\"assets\" | \"profile\" | null>(null);\n  const { showSnackbar } = useSnackbar();\n  console.log(isAssetsOpen);\n  const updateProfileVisibility = async (value: string) => {\n    const profileStateToSave = value === \"full\" ? true : false;\n    const profileState = state[value];\n    setLoading(\"profile\");\n\n    try {\n      const formData = new FormData();\n      formData.append(\"isProfileOpen\", profileState);\n      const { data } = await changeUserData(formData);\n\n      showSnackbar(\"success\", \"Profile permissions updated\");\n      updateUserProfilePermission(profileStateToSave);\n      setProfileVisibility(value);\n    } catch (error) {\n      console.log(error);\n    }\n    setLoading(null);\n  };\n\n  const updateAssetsVisibility = async (value: string) => {\n    setLoading(\"assets\");\n    const assetsStateToSave = value === \"full\" ? true : false;\n\n    const assetsState = state[value];\n    try {\n      const formData = new FormData();\n      formData.append(\"isAssetsOpen\", assetsState);\n      const { data } = await changeUserData(formData);\n\n      showSnackbar(\"success\", \"Assets permissions updated\");\n\n      updateUserDocumentsPermission(assetsStateToSave);\n      setIsAssetsOpen(value);\n    } catch (error) {\n      console.log(error);\n    }\n\n    setLoading(null);\n  };\n\n  return (\n    <Box\n      sx={{\n        margin: '20px',\n        flexDirection: \"column\",\n        display: \"flex\",\n        alignItems: \"center\",\n      }}\n    >\n      <FormControl>\n        <FormLabel id=\"demo-radio-buttons-group-label\">\n          Profile Visiblility\n        </FormLabel>\n        <RadioGroup\n          aria-labelledby=\"demo-radio-buttons-group-label\"\n          value={profileVisibility}\n          name=\"radio-buttons-group\"\n          onChange={(event, value) => updateProfileVisibility(value)}\n        >\n          <FormControlLabel\n            value=\"open\"\n            control={<Radio />}\n            label={<Typography fontWeight={\"bold\"}>Open (default)</Typography>}\n          />\n          <Typography fontSize={\"15px\"}>\n            Your profile can be viewed by anyone who follows your profile link\n            or QR code\n          </Typography>\n          <FormControlLabel\n            value=\"restricted\"\n            control={<Radio />}\n            label={<Typography fontWeight={\"bold\"}>Restricted</Typography>}\n          />\n          <Typography fontSize={\"15px\"}>\n            Only users with your permission or temporary secure link can see\n            your profile\n          </Typography>\n        </RadioGroup>\n      </FormControl>\n\n      <Button\n        sx={{\n          marginTop: \"10px\",\n          marginBottom: \"20px\",\n        }}\n        disabled={loading === \"profile\"}\n        onClick={(event) => handleChangeTab(event, 1)}\n        variant=\"contained\"\n      >\n        Manage profile shares\n      </Button>\n\n      <FormControl>\n        <FormLabel id=\"demo-radio-buttons-group-label\">\n          Documents Visiblility\n        </FormLabel>\n        <RadioGroup\n          aria-labelledby=\"demo-radio-buttons-group-label\"\n          value={isAssetsOpen}\n          name=\"radio-buttons-group\"\n          onChange={(event, value) => updateAssetsVisibility(value)}\n        >\n          <FormControlLabel\n            value=\"full\"\n            control={<Radio />}\n            label={<Typography fontWeight={\"bold\"}>Full (default)</Typography>}\n          />\n          <Typography fontSize={\"15px\"}>\n            Show all Documents to those who can see your profile\n          </Typography>\n          <FormControlLabel\n            value=\"individual\"\n            control={<Radio />}\n            label={<Typography fontWeight={\"bold\"}>Individual</Typography>}\n          />\n          <Typography fontSize={\"15px\"}>\n            You need to share each document individually before others can see\n            them\n          </Typography>\n        </RadioGroup>\n      </FormControl>\n\n      <Button\n        sx={{\n          marginTop: \"10px\",\n          marginBottom: \"20px\",\n        }}\n        disabled={loading === \"assets\"}\n        fullWidth={false}\n        onClick={(event) => handleChangeTab(event, 2)}\n        variant=\"contained\"\n      >\n        Manage documents shares\n      </Button>\n    </Box>\n  );\n};\n","import React, { useState } from \"react\";\nimport { Box, Tab, Tabs } from \"@mui/material\";\nimport { Blocking } from \"./Blocking\";\nimport { DocumentsShare } from \"./DocumentsShareTab\";\nimport { ManageData } from \"./ManageData\";\nimport { ProfileShareTab } from \"./ProfileShareTab\";\nimport { Visibility } from \"./VisibilityTab\";\n\nfunction a11yProps(index: number) {\n  return {\n    id: `simple-tab-${index}`,\n    \"aria-controls\": `simple-tabpanel-${index}`,\n  };\n}\nconst containerStyle = { display: \"flex\", justifyContent: \"center\" };\n\nconst Privacy = () => {\n  const [tab, setTab] = useState(0);\n\n  const handleChangeTab = (event: React.SyntheticEvent, newValue: number) => {\n    setTab(newValue);\n  };\n\n  return (\n    <Box sx={{ borderBottom: 1, borderColor: \"divider\" }}>\n      <Tabs\n        value={tab}\n        onChange={handleChangeTab}\n        aria-label=\"basic tabs example\"\n      >\n        <Tab label=\"Visibility\" {...a11yProps(0)} />\n        <Tab label=\"Profile Shares\" {...a11yProps(1)} />\n        <Tab label=\"Document Shares\" {...a11yProps(2)} />\n        <Tab label=\"Blocking\" {...a11yProps(3)} />\n        <Tab label=\"Manage Data\" {...a11yProps(4)} />\n      </Tabs>\n      {tab === 0 && (\n        <Box sx={containerStyle}>\n          <Visibility handleChangeTab={handleChangeTab} />\n        </Box>\n      )}\n      {tab === 1 && (\n        <Box sx={containerStyle}>\n          <ProfileShareTab />\n        </Box>\n      )}\n      {tab === 2 && (\n        <Box sx={containerStyle}>\n          <DocumentsShare />\n        </Box>\n      )}\n      {tab === 3 && (\n        <Box sx={containerStyle}>\n          <Blocking />\n        </Box>\n      )}\n      {tab === 4 && (\n        <Box sx={containerStyle}>\n          <ManageData />\n        </Box>\n      )}\n    </Box>\n  );\n};\n\nexport default Privacy;\n","import React from \"react\";\nimport { Button, Dialog, DialogTitle, IconButton } from \"@mui/material\";\nimport { Box } from \"@mui/system\";\nimport QRCode from \"react-qr-code\";\nimport { truncateString } from \"../../utils\";\nimport CloseIcon from \"@mui/icons-material/Close\";\n\nexport interface IQrModal {\n  open: boolean;\n  link: string;\n  onClose: () => void;\n  title?: string;\n}\n\nexport const QrModal: React.FC<IQrModal> = ({ title, open, link, onClose }) => {\n  return (\n    <Dialog maxWidth={false} open={open} onClose={onClose}>\n      {!!title && (\n        <DialogTitle sx={{ padding: \"0 24px\", paddingTop: \"20px\" }}>\n          {title}\n        </DialogTitle>\n      )}\n      <Box sx={{ padding: \"20px\" }}>\n        <QRCode\n          size={256}\n          style={{ height: \"50vh\", maxWidth: \"100%\", width: \"100%\" }}\n          value={link}\n          viewBox={`0 0 256 256`}\n        />\n        <Box\n          sx={{\n            boxShadow: \"0px 0px 10px -5px rgba(0,0,0,0.75)\",\n            borderRadius: \"10px\",\n            display: \"flex\",\n            justifyContent: \"space-between\",\n            alignItems: \"center\",\n            pl: \"10px\",\n            my: \"10px\",\n          }}\n        >\n          <span>{truncateString(link, 50)}</span>\n          <Button\n            variant=\"contained\"\n            sx={{ borderRadius: \"10px\", marginLeft: '5px' }}\n            onClick={() => navigator.clipboard.writeText(link)}\n          >\n            Copy\n          </Button>\n        </Box>\n        <IconButton\n          onClick={onClose}\n          sx={{\n            color: \"black\",\n            position: \"absolute\",\n            top: 10,\n            right: 10,\n            fontSize: \"30px\",\n          }}\n        >\n          <CloseIcon fontSize=\"inherit\" />\n        </IconButton>\n      </Box>\n    </Dialog>\n  );\n};\n"],"names":["DeleteDialog","open","onClose","onDeletePress","loading","title","description","deleteButtonTitle","cancelButtonTitle","id","disabled","onClick","autoFocus","color","Blocking","props","blacklist","useStoreState","store","blackList","handleRemoveUserFromBlackList","userId","console","log","xmpp","Box","style","margin","Typography","fontWeight","map","item","BlackListUserItem","handleRemove","userItem","marginTop","display","alignItems","justifyContent","maxWidth","AccountCircle","fontSize","marginLeft","fullName","format","Date","date","IconButton","user","RemoveCircle","QRSection","createdLink","linkType","generateLink","generateProfileLink","firstName","lastName","walletAddress","xmppId","walletToUsername","CONFERENCEDOMAIN","linkToken","token","generateDocumentLink","size","height","width","value","viewBox","sx","boxShadow","borderRadius","pl","my","truncateString","Button","variant","navigator","clipboard","writeText","HOUR","DAY","WEEK","MONTH","AddDocumentTabPanel","getSharedLinks","React","toString","expiration","setExpiration","memo","setMemo","documentId","setDocumentId","setLoading","_id","resource","updatedAt","createdAt","setCreatedLink","state","documents","body","getTime","createSharedLink","data","sharelinkData","flexDirection","fontStyle","OptionsItem","selectedValue","handleChange","type","FormControl","minWidth","InputLabel","Select","labelId","label","onChange","e","target","MenuItem","documentName","TextField","ManageDocumentShareTabPanel","handleChangeTab","sharedLinks","handleOpenModal","deleteLink","event","CircularProgress","length","index","LinkItemComponent","linkItem","docLink","key","QrCode2","Description","Delete","a11yProps","DocumentsShare","tab","setTab","openModal","setOpenModal","setSharedLinks","setDocLink","showSnackbar","useSnackbar","newValue","getSharedLinksService","items","filter","deleteSharedLink","Tabs","Tab","link","QrModal","ManageData","deleteDialogOpen","setDeleteDialogOpen","clearUser","history","useHistory","useWeb3React","active","deactivate","deleteAccount","deleteAccountService","onLogout","push","downloadData","jsonString","encodeURIComponent","JSON","stringify","document","createElement","href","download","click","remove","exportData","httpWithAuth","get","ManageTabPanel","profileLink","AddTabPanel","ProfileShareTab","setShowToast","restricted","full","individual","Visibility","updateUserProfilePermission","updateUserDocumentsPermission","useState","isProfileOpen","profileVisibility","setProfileVisibility","isAssetsOpen","setIsAssetsOpen","updateProfileVisibility","profileStateToSave","profileState","formData","FormData","append","changeUserData","updateAssetsVisibility","assetsStateToSave","assetsState","FormLabel","RadioGroup","name","FormControlLabel","control","Radio","marginBottom","fullWidth","containerStyle","borderBottom","borderColor","padding","paddingTop","position","top","right"],"sourceRoot":""}