dappros/ethora

View on GitHub
client-web/build/static/js/588.1df1cd15.chunk.js.map

Summary

Maintainability
Test Coverage
{"version":3,"file":"static/js/588.1df1cd15.chunk.js","mappings":"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","sources":["components/DeleteDialog.tsx","pages/ChatRoomDetails/ChatDetailCard.tsx","pages/ChatRoomDetails/MembersList.tsx","pages/ChatRoomDetails/index.tsx","../node_modules/@mui/icons-material/Delete.js","../node_modules/@mui/icons-material/Edit.js","../node_modules/@mui/icons-material/InsertPhoto.js","../node_modules/@mui/icons-material/MoreVert.js","../node_modules/@mui/icons-material/StarPurple500.js","../node_modules/@mui/material/esm/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/esm/DialogActions/DialogActions.js","../node_modules/@mui/material/esm/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/esm/DialogContent/DialogContent.js","../node_modules/@mui/material/esm/DialogContentText/dialogContentTextClasses.js","../node_modules/@mui/material/esm/DialogContentText/DialogContentText.js"],"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 React, { useRef, useState } from \"react\";\nimport {\n  Avatar,\n  Box,\n  Button,\n  CircularProgress,\n  Container,\n  IconButton,\n  Modal,\n  TextField,\n  Typography,\n} from \"@mui/material\";\nimport { useHistory, useParams } from \"react-router\";\nimport { TActiveRoomFilter, useStoreState } from \"../../store\";\nimport xmpp from \"../../xmpp\";\nimport EditIcon from \"@mui/icons-material/Edit\";\nimport StarPurple500Icon from \"@mui/icons-material/StarPurple500\";\nimport StarRateIcon from \"@mui/icons-material/StarRate\";\nimport { ROOMS_FILTERS } from \"../../config/config\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport InsertPhotoIcon from \"@mui/icons-material/InsertPhoto\";\nimport { DeleteDialog } from \"../../components/DeleteDialog\";\nimport { useSnackbar } from \"../../context/SnackbarContext\";\nimport { uploadFile } from \"../../http\";\n\nexport default function ChatDetailCard() {\n  const { roomJID } = useParams<{ roomJID: string }>();\n\n  const [newDescription, setNewDescription] = useState(\"\");\n  const [newRoomName, setNewRoomName] = useState(\"\");\n  const [showModal, setShowModal] = useState(false);\n  const [showDeleteRoomDialog, setShowDeleteRoomDialog] = useState(false);\n  const [showRoomRenameModal, setShowRoomRenameModal] = useState(false);\n\n  const [loading, setLoading] = useState<\"chatIcon\" | false>(false);\n\n  const currentRoomData = useStoreState((store) => store.userChatRooms).find(\n    (e) => e?.jid === roomJID\n  );\n  const updateUserChatRoom = useStoreState((state) => state.updateUserChatRoom);\n  const roomRoles = useStoreState((state) => state.roomRoles);\n\n  const { showSnackbar } = useSnackbar();\n  const history = useHistory();\n  const fileRef = useRef(null);\n\n  const currentRoomRole = roomRoles.find(\n    (value) => value.roomJID === currentRoomData?.jid\n  )?.role;\n\n  const isAllowedToChangeData =\n    currentRoomRole === \"moderator\" ||\n    currentRoomRole === \"owner\" ||\n    currentRoomRole === \"admin\";\n\n  const isFavouriteOrOfficialRoom =\n  currentRoomData &&\n    (currentRoomData.group === ROOMS_FILTERS.official ||\n      currentRoomData.group === ROOMS_FILTERS.favourite);\n\n  const handleChangeDescription = (newDescription: string) => {\n    xmpp.changeRoomDescription(roomJID, newDescription);\n  };\n\n  const handleChangeRoomName = (newRoomName: string) => {\n    xmpp.changeRoomName(roomJID, newRoomName);\n  };\n\n  const changeRoomType = (status: TActiveRoomFilter) => {\n    const newRoomData = Object.assign({}, currentRoomData);\n    newRoomData.group = status;\n    updateUserChatRoom(newRoomData);\n  };\n  const goToChangeBackground = (e: React.MouseEvent<HTMLElement>) => {\n    if (isAllowedToChangeData) {\n      history.push(\"/changebg/\" + roomJID);\n    }\n  };\n  const closeRoomDeleteDialog = () => {\n    setShowDeleteRoomDialog(false);\n  };\n  const leaveTheRoom = async () => {\n    xmpp.leaveTheRoom(roomJID);\n    xmpp.unsubscribe(roomJID);\n    closeRoomDeleteDialog();\n    history.push(\"/chat/none\");\n  };\n\n  const changeRoomIcon = async (file: File) => {\n    const formData = new FormData();\n    formData.append(\"files\", file);\n    setLoading(\"chatIcon\");\n    try {\n      const result = await uploadFile(formData);\n      const roomAddress = roomJID.split(\"@\")[0];\n      xmpp.setRoomImage(\n        roomAddress,\n        result.data.results[0].location,\n        currentRoomData.room_background,\n        \"icon\"\n      );\n\n      let newRoomData = Object.assign({}, currentRoomData);\n      newRoomData.room_thumbnail = result.data.results[0].location;\n      updateUserChatRoom(newRoomData);\n      showSnackbar(\"success\", \"Success! The chat icon was set\");\n    } catch (error) {\n      console.log(error);\n      showSnackbar(\n        \"error\",\n        \"An error occurred while loading the image. \" +\n          \" ( \" +\n          error.message +\n          \" \" +\n          error.response.data +\n          \" )\"\n      );\n    }\n    setLoading(false);\n  };\n  return (\n    <Container\n      style={{\n        justifyContent: \"center\",\n        alignItems: \"center\",\n        display: \"flex\",\n        flexDirection: \"column\",\n      }}\n    >\n      <div style={{ cursor: \"pointer\" }}>\n        <Box\n          sx={{\n            width: 200,\n            height: 200,\n            margin: 5,\n            backgroundColor: \"primary.dark\",\n            justifyContent: \"center\",\n            alignItems: \"center\",\n            display: \"flex\",\n            borderRadius: \"10px\",\n            position: \"relative\",\n          }}\n        >\n          <Box\n            sx={{\n              position: \"absolute\",\n              top: 0,\n              right: 0,\n              display: \"flex\",\n              flexDirection: \"column\",\n              zIndex: 99999,\n            }}\n          >\n            <IconButton\n              sx={{ color: \"white\" }}\n              onClick={() =>\n                isFavouriteOrOfficialRoom\n                  ? changeRoomType(\"\")\n                  : changeRoomType(ROOMS_FILTERS.favourite)\n              }\n            >\n              {isFavouriteOrOfficialRoom ? (\n                <StarRateIcon />\n              ) : (\n                <StarPurple500Icon />\n              )}\n            </IconButton>\n            {isAllowedToChangeData && (\n              <IconButton\n                sx={{ color: \"white\" }}\n                onClick={() => fileRef.current?.click()}\n              >\n                <input\n                  type=\"file\"\n                  name=\"file\"\n                  id=\"file\"\n                  onChange={(event) => changeRoomIcon(event.target.files[0])}\n                  ref={fileRef}\n                  style={{ display: \"none\" }}\n                  accept=\"image/*\"\n                />\n                {loading === \"chatIcon\" ? (\n                  <CircularProgress style={{ color: \"white\" }} size={24} />\n                ) : (\n                  <InsertPhotoIcon />\n                )}\n              </IconButton>\n            )}\n            {isAllowedToChangeData && (\n              <IconButton\n                sx={{ color: \"red\" }}\n                onClick={() => setShowDeleteRoomDialog(true)}\n              >\n                <DeleteIcon />\n              </IconButton>\n            )}\n          </Box>\n          <IconButton disableRipple onClick={goToChangeBackground}>\n            {currentRoomData?.room_thumbnail &&\n            currentRoomData?.room_thumbnail !== \"none\" ? (\n              <Avatar\n                sx={{\n                  width: 200,\n                  height: 200,\n                  borderRadius: \"10px\",\n                }}\n                variant=\"square\"\n                src={currentRoomData.room_thumbnail}\n              />\n            ) : (\n              <Typography color={\"white\"} fontSize={\"120px\"}>\n                {currentRoomData?.name[0]}\n              </Typography>\n            )}\n          </IconButton>\n        </Box>\n      </div>\n      <Box flexDirection={\"row\"} display=\"flex\">\n        <Typography fontSize={\"20px\"} fontWeight={\"bold\"}>\n          {currentRoomData?.name}\n        </Typography>\n        {isAllowedToChangeData && (\n          <IconButton\n            onClick={() => setShowRoomRenameModal(true)}\n            style={{\n              marginLeft: 10,\n            }}\n          >\n            <EditIcon fontSize=\"small\" />\n          </IconButton>\n        )}\n      </Box>\n      <Container\n        style={{\n          flexDirection: \"row\",\n          justifyContent: \"center\",\n          alignItems: \"center\",\n          display: \"flex\",\n        }}\n      >\n        <Typography fontSize={\"20px\"}>\n          {currentRoomData?.description\n            ? currentRoomData.description\n            : \"No description\"}\n        </Typography>\n        {isAllowedToChangeData && (\n          <IconButton\n            onClick={() => setShowModal(true)}\n            style={{\n              marginLeft: 10,\n            }}\n          >\n            <EditIcon fontSize=\"small\" />\n          </IconButton>\n        )}\n      </Container>\n      <Modal\n        open={showModal}\n        onClose={() => setShowModal(false)}\n        aria-labelledby=\"modal-modal-title\"\n        aria-describedby=\"modal-modal-description\"\n      >\n        <Box sx={style}>\n          <Typography id=\"modal-modal-title\" variant=\"h6\" component=\"h2\">\n            Set new description\n          </Typography>\n          <TextField\n            onChange={(e) => setNewDescription(e.target.value)}\n            margin=\"normal\"\n            id=\"outlined-basic\"\n            label=\"Description\"\n            variant=\"outlined\"\n          />\n          <Button\n            onClick={() => {\n              setShowModal(false);\n              handleChangeDescription(newDescription);\n            }}\n            style={{\n              justifyContent: \"center\",\n              alignItems: \"center\",\n              display: \"flex\",\n            }}\n            variant=\"outlined\"\n          >\n            <Typography id=\"modal-modal-description\">Submit</Typography>\n          </Button>\n        </Box>\n      </Modal>\n      <Modal\n        open={showRoomRenameModal}\n        onClose={() => setShowRoomRenameModal(false)}\n        aria-labelledby=\"modal-modal-title\"\n        aria-describedby=\"modal-modal-description\"\n      >\n        <Box sx={style}>\n          <Typography id=\"modal-modal-title\" variant=\"h6\" component=\"h2\">\n            Set new room name\n          </Typography>\n          <TextField\n            onChange={(e) => setNewRoomName(e.target.value)}\n            margin=\"normal\"\n            id=\"outlined-basic\"\n            label=\"Room Name\"\n            variant=\"outlined\"\n          />\n          <Button\n            onClick={() => {\n              setShowRoomRenameModal(false);\n              handleChangeRoomName(newRoomName);\n            }}\n            style={{\n              justifyContent: \"center\",\n              alignItems: \"center\",\n              display: \"flex\",\n            }}\n            variant=\"outlined\"\n          >\n            <Typography id=\"modal-modal-description\">Submit</Typography>\n          </Button>\n        </Box>\n      </Modal>\n      <DeleteDialog\n        open={showDeleteRoomDialog}\n        title={\"Delete\"}\n        description={\"Do you want to delete this room?\"}\n        onDeletePress={leaveTheRoom}\n        onClose={closeRoomDeleteDialog}\n      />\n    </Container>\n  );\n}\n\nconst style = {\n  position: \"absolute\" as \"absolute\",\n  top: \"50%\",\n  left: \"50%\",\n  transform: \"translate(-50%, -50%)\",\n  width: 400,\n  bgcolor: \"background.paper\",\n  border: \"2px solid #000\",\n  boxShadow: 24,\n  p: 4,\n  justifyContent: \"center\",\n  flex: \"display\",\n};\n","import {\n  Avatar,\n  Box,\n  Button,\n  IconButton,\n  List,\n  ListItem,\n  Menu,\n  MenuItem,\n  Typography,\n} from \"@mui/material\";\nimport React, { useEffect, useState } from \"react\";\nimport { useHistory, useParams } from \"react-router\";\nimport { TMemberInfo, TUserChatRooms, useStoreState } from \"../../store\";\nimport MoreVertIcon from \"@mui/icons-material/MoreVert\";\nimport xmpp, { usernameToWallet, walletToUsername } from \"../../xmpp\";\n\nexport default function MembersList() {\n  const { roomJID }: any = useParams();\n  const userChatRooms = useStoreState((store) => store.userChatRooms);\n  const membersList = useStoreState((store) =>\n    store.roomMemberInfo.filter((item) => item.name !== \"none\")\n  );\n  const user = useStoreState((store) => store.user);\n  const currentRoomData = userChatRooms.find((e) => e?.jid === roomJID);\n  const [showMenu, setShowMenu] = useState<boolean>(false);\n  const [selectedUser, setSelectedUser] = useState<TMemberInfo>();\n  const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n  const roomRoles = useStoreState((state) => state.roomRoles);\n  const history = useHistory();\n\n  const currentRoomRole = roomRoles.find(\n    (value) => value.roomJID === currentRoomData?.jid\n  )?.role;\n\n\n \n  const handleMenuClose = (event: React.MouseEvent<HTMLElement>) => {\n    event.stopPropagation();\n    setAnchorEl(null);\n    setShowMenu(false);\n  };\n\n  const handleOnMemberPress = (member: TMemberInfo) => {\n    if (member.jid.includes(walletToUsername(user.walletAddress))) {\n      history.push(\"/profile/\" + user.walletAddress);\n    } else {\n      history.push(\"/profile/\" + usernameToWallet(member.jid.split(\"@\")[0]));\n    }\n  };\n  const handleMenuClick = (\n    event: React.MouseEvent<HTMLElement>,\n    member: TMemberInfo\n  ) => {\n    event.stopPropagation();\n    setSelectedUser(member);\n    setAnchorEl(event.currentTarget);\n    setShowMenu(true);\n  };\n  const banUser = (\n    member: TMemberInfo,\n    event: React.MouseEvent<HTMLElement>\n  ) => {\n    if (member.ban_status === \"clear\") {\n      xmpp.banUserStanza(member.jid, currentRoomData.jid);\n    } else {\n      xmpp.unbanUserStanza(member.jid, currentRoomData.jid);\n    }\n\n    xmpp.getRoomMemberInfo(currentRoomData.jid);\n    handleMenuClose(event);\n  };\n\n  return (\n    <Box>\n      <Typography variant=\"h5\">Members ({membersList.length})</Typography>\n      <List sx={{ width: \"100%\", bgcolor: \"background.paper\" }}>\n        {membersList.map((member) => {\n          return (\n            <ListItem\n              dense\n              onClick={() => handleOnMemberPress(member)}\n              style={{ flexDirection: \"row\", alignItems: \"center\" }}\n              key={member.jid}\n            >\n              <Box\n                alignItems=\"center\"\n                justifyContent=\"center\"\n                style={{\n                  background: \"#003E9C\",\n                  width: \"40px\",\n                  height: \"40px\",\n                  margin: 5,\n                  display: \"flex\",\n                }}\n              >\n                {member.profile !== \"none\" ? (\n                  <Avatar\n                    style={{\n                      width: \"40px\",\n                      height: \"40px\",\n                    }}\n                    variant=\"square\"\n                    src={member.profile}\n                  />\n                ) : (\n                  <Typography style={{ color: \"white\" }}>\n                    {member.name ? member.name[0] : null}\n                  </Typography>\n                )}\n              </Box>\n              <Typography>\n                {member.jid.includes(walletToUsername(user.walletAddress))\n                  ? \"You\"\n                  : member.name}\n              </Typography>\n              {!member.jid.includes(walletToUsername(user.walletAddress)) &&\n                (currentRoomRole === \"moderator\" ||\n                  currentRoomRole === \"owner\") && (\n                  <IconButton\n                    aria-label=\"more\"\n                    id=\"long-button\"\n                    aria-haspopup=\"true\"\n                    onClick={(e) => handleMenuClick(e, member)}\n                  >\n                    <MoreVertIcon />\n                  </IconButton>\n                )}\n              {member.role === \"owner\" && (\n                <Box\n                  style={{\n                    border: \"1px solid\",\n                    borderWidth: 1,\n                    borderRadius: 5,\n                    width: \"70px\",\n                    alignItems: \"center\",\n                    display: \"flex\",\n                    justifyContent: \"center\",\n                    marginLeft: 10,\n                  }}\n                >\n                  <Typography>{member.role}</Typography>\n                </Box>\n              )}\n              {member.ban_status !== \"clear\" ? (\n                <Box\n                  style={{\n                    border: \"1px solid\",\n                    borderWidth: 1,\n                    borderRadius: 5,\n                    width: \"70px\",\n                    alignItems: \"center\",\n                    display: \"flex\",\n                    justifyContent: \"center\",\n                    marginLeft: 10,\n                  }}\n                >\n                  <Typography>banned</Typography>\n                </Box>\n              ) : null}\n              <Menu\n                id=\"long-menu\"\n                MenuListProps={{\n                  \"aria-labelledby\": \"long-button\",\n                }}\n                anchorEl={anchorEl}\n                open={showMenu}\n                onClose={handleMenuClose}\n                PaperProps={{\n                  style: {\n                    maxHeight: 48 * 4.5,\n                    width: \"20ch\",\n                  },\n                }}\n              >\n                <MenuItem onClick={(event) => banUser(member, event)}>\n                  {member?.ban_status === \"clear\" ? \"Ban\" : \"Unban\"}\n                </MenuItem>\n              </Menu>\n            </ListItem>\n          );\n        })}\n      </List>\n    </Box>\n  );\n}\n","import React, { useEffect } from \"react\";\nimport { Container } from \"@mui/material\";\nimport ChatDetailCard from \"./ChatDetailCard\";\nimport MembersList from \"./MembersList\";\nimport xmpp from \"../../xmpp\";\nimport { useParams } from \"react-router\";\n\nexport default function ChatRoomDetails(){\n    const {roomJID}:any = useParams();\n    useEffect(()=>{\n        xmpp.getRoomMemberInfo(roomJID)\n        xmpp.getRoomInfo(roomJID);\n    },[])\n    return(\n        <Container maxWidth=\"xl\">\n            <ChatDetailCard/>\n            <MembersList />\n        </Container>\n    )\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: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\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: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), 'Edit');\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: \"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\"\n}), 'InsertPhoto');\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: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreVert');\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: \"m12 8.89.94 3.11h2.82l-2.27 1.62.93 3.01L12 14.79l-2.42 1.84.93-3.01L8.24 12h2.82L12 8.89M12 2l-2.42 8H2l6.17 4.41L5.83 22 12 17.31 18.18 22l-2.35-7.59L22 10h-7.58L12 2z\"\n}), 'StarPurple500');\n\nexports.default = _default;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getDialogActionsUtilityClass(slot) {\n  return generateUtilityClass('MuiDialogActions', slot);\n}\nconst dialogActionsClasses = generateUtilityClasses('MuiDialogActions', ['root', 'spacing']);\nexport default dialogActionsClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disableSpacing\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogActionsUtilityClass } from './dialogActionsClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    disableSpacing\n  } = ownerState;\n  const slots = {\n    root: ['root', !disableSpacing && 'spacing']\n  };\n  return composeClasses(slots, getDialogActionsUtilityClass, classes);\n};\nconst DialogActionsRoot = styled('div', {\n  name: 'MuiDialogActions',\n  slot: 'Root',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.root, !ownerState.disableSpacing && styles.spacing];\n  }\n})(({\n  ownerState\n}) => _extends({\n  display: 'flex',\n  alignItems: 'center',\n  padding: 8,\n  justifyContent: 'flex-end',\n  flex: '0 0 auto'\n}, !ownerState.disableSpacing && {\n  '& > :not(:first-of-type)': {\n    marginLeft: 8\n  }\n}));\nconst DialogActions = /*#__PURE__*/React.forwardRef(function DialogActions(inProps, ref) {\n  const props = useThemeProps({\n    props: inProps,\n    name: 'MuiDialogActions'\n  });\n  const {\n      className,\n      disableSpacing = false\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  const ownerState = _extends({}, props, {\n    disableSpacing\n  });\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsx(DialogActionsRoot, _extends({\n    className: clsx(classes.root, className),\n    ownerState: ownerState,\n    ref: ref\n  }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogActions.propTypes /* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * If `true`, the actions do not have additional margin.\n   * @default false\n   */\n  disableSpacing: PropTypes.bool,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogActions;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getDialogContentUtilityClass(slot) {\n  return generateUtilityClass('MuiDialogContent', slot);\n}\nconst dialogContentClasses = generateUtilityClasses('MuiDialogContent', ['root', 'dividers']);\nexport default dialogContentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"dividers\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogContentUtilityClass } from './dialogContentClasses';\nimport dialogTitleClasses from '../DialogTitle/dialogTitleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    dividers\n  } = ownerState;\n  const slots = {\n    root: ['root', dividers && 'dividers']\n  };\n  return composeClasses(slots, getDialogContentUtilityClass, classes);\n};\nconst DialogContentRoot = styled('div', {\n  name: 'MuiDialogContent',\n  slot: 'Root',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.root, ownerState.dividers && styles.dividers];\n  }\n})(({\n  theme,\n  ownerState\n}) => _extends({\n  flex: '1 1 auto',\n  // Add iOS momentum scrolling for iOS < 13.0\n  WebkitOverflowScrolling: 'touch',\n  overflowY: 'auto',\n  padding: '20px 24px'\n}, ownerState.dividers ? {\n  padding: '16px 24px',\n  borderTop: `1px solid ${(theme.vars || theme).palette.divider}`,\n  borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n} : {\n  [`.${dialogTitleClasses.root} + &`]: {\n    paddingTop: 0\n  }\n}));\nconst DialogContent = /*#__PURE__*/React.forwardRef(function DialogContent(inProps, ref) {\n  const props = useThemeProps({\n    props: inProps,\n    name: 'MuiDialogContent'\n  });\n  const {\n      className,\n      dividers = false\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  const ownerState = _extends({}, props, {\n    dividers\n  });\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsx(DialogContentRoot, _extends({\n    className: clsx(classes.root, className),\n    ownerState: ownerState,\n    ref: ref\n  }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContent.propTypes /* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * Display the top and bottom dividers.\n   * @default false\n   */\n  dividers: PropTypes.bool,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogContent;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getDialogContentTextUtilityClass(slot) {\n  return generateUtilityClass('MuiDialogContentText', slot);\n}\nconst dialogContentTextClasses = generateUtilityClasses('MuiDialogContentText', ['root']);\nexport default dialogContentTextClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Typography from '../Typography';\nimport { getDialogContentTextUtilityClass } from './dialogContentTextClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes\n  } = ownerState;\n  const slots = {\n    root: ['root']\n  };\n  const composedClasses = composeClasses(slots, getDialogContentTextUtilityClass, classes);\n  return _extends({}, classes, composedClasses);\n};\nconst DialogContentTextRoot = styled(Typography, {\n  shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n  name: 'MuiDialogContentText',\n  slot: 'Root',\n  overridesResolver: (props, styles) => styles.root\n})({});\nconst DialogContentText = /*#__PURE__*/React.forwardRef(function DialogContentText(inProps, ref) {\n  const props = useThemeProps({\n    props: inProps,\n    name: 'MuiDialogContentText'\n  });\n  const {\n      className\n    } = props,\n    ownerState = _objectWithoutPropertiesLoose(props, _excluded);\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsx(DialogContentTextRoot, _extends({\n    component: \"p\",\n    variant: \"body1\",\n    color: \"text.secondary\",\n    ref: ref,\n    ownerState: ownerState,\n    className: clsx(classes.root, className)\n  }, props, {\n    classes: classes\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogContentText.propTypes /* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n  /**\n   * The content of the component.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogContentText;"],"names":["DeleteDialog","open","onClose","onDeletePress","loading","title","description","deleteButtonTitle","cancelButtonTitle","id","disabled","onClick","autoFocus","color","ChatDetailCard","roomJID","useParams","useState","newDescription","setNewDescription","newRoomName","setNewRoomName","showModal","setShowModal","showDeleteRoomDialog","setShowDeleteRoomDialog","showRoomRenameModal","setShowRoomRenameModal","setLoading","currentRoomData","useStoreState","store","userChatRooms","find","e","jid","updateUserChatRoom","state","roomRoles","showSnackbar","useSnackbar","history","useHistory","fileRef","useRef","currentRoomRole","value","role","isAllowedToChangeData","isFavouriteOrOfficialRoom","group","ROOMS_FILTERS","changeRoomType","status","newRoomData","Object","assign","closeRoomDeleteDialog","leaveTheRoom","xmpp","push","changeRoomIcon","file","formData","FormData","append","uploadFile","result","roomAddress","split","data","results","location","room_background","room_thumbnail","console","log","message","response","Container","style","justifyContent","alignItems","display","flexDirection","cursor","Box","sx","width","height","margin","backgroundColor","borderRadius","position","top","right","zIndex","IconButton","StarRate","StarPurple500","current","click","type","name","onChange","event","target","files","ref","accept","CircularProgress","size","InsertPhoto","Delete","disableRipple","Avatar","variant","src","Typography","fontSize","fontWeight","marginLeft","Edit","Modal","component","TextField","label","Button","handleChangeDescription","handleChangeRoomName","left","transform","bgcolor","border","boxShadow","p","flex","MembersList","membersList","roomMemberInfo","filter","item","user","showMenu","setShowMenu","setSelectedUser","anchorEl","setAnchorEl","handleMenuClose","stopPropagation","length","List","map","member","ListItem","dense","includes","walletToUsername","walletAddress","usernameToWallet","handleOnMemberPress","background","profile","currentTarget","handleMenuClick","MoreVert","borderWidth","ban_status","Menu","MenuListProps","PaperProps","maxHeight","MenuItem","banUser","ChatRoomDetails","useEffect","maxWidth","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getDialogActionsUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","DialogActionsRoot","styled","overridesResolver","props","styles","ownerState","root","disableSpacing","spacing","_extends","padding","React","inProps","useThemeProps","className","other","_objectWithoutPropertiesLoose","classes","slots","composeClasses","useUtilityClasses","_jsx","clsx","getDialogContentUtilityClass","DialogContentRoot","dividers","theme","WebkitOverflowScrolling","overflowY","borderTop","vars","palette","divider","borderBottom","dialogTitleClasses","paddingTop","getDialogContentTextUtilityClass","DialogContentTextRoot","shouldForwardProp","prop","rootShouldForwardProp","composedClasses"],"sourceRoot":""}