import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import './SpaceSettings.scss'; import { twemojify } from '../../../util/twemojify'; import initMatrix from '../../../client/initMatrix'; import cons from '../../../client/state/cons'; import navigation from '../../../client/state/navigation'; import { leave } from '../../../client/action/room'; import { createSpaceShortcut, deleteSpaceShortcut, categorizeSpace, unCategorizeSpace, } from '../../../client/action/accountData'; import Text from '../../atoms/text/Text'; import IconButton from '../../atoms/button/IconButton'; import Tabs from '../../atoms/tabs/Tabs'; import { MenuHeader, MenuItem } from '../../atoms/context-menu/ContextMenu'; import PopupWindow from '../../molecules/popup-window/PopupWindow'; import RoomProfile from '../../molecules/room-profile/RoomProfile'; import RoomVisibility from '../../molecules/room-visibility/RoomVisibility'; import RoomAliases from '../../molecules/room-aliases/RoomAliases'; import RoomPermissions from '../../molecules/room-permissions/RoomPermissions'; import RoomMembers from '../../molecules/room-members/RoomMembers'; import RoomEmojis from '../../molecules/room-emojis/RoomEmojis'; import UserIC from '../../../../public/res/ic/outlined/user.svg'; import CrossIC from '../../../../public/res/ic/outlined/cross.svg'; import SettingsIC from '../../../../public/res/ic/outlined/settings.svg'; import ShieldUserIC from '../../../../public/res/ic/outlined/shield-user.svg'; import LeaveArrowIC from '../../../../public/res/ic/outlined/leave-arrow.svg'; import PinIC from '../../../../public/res/ic/outlined/pin.svg'; import PinFilledIC from '../../../../public/res/ic/filled/pin.svg'; import CategoryIC from '../../../../public/res/ic/outlined/category.svg'; import CategoryFilledIC from '../../../../public/res/ic/filled/category.svg'; import EmojiIC from '../../../../public/res/ic/outlined/emoji.svg'; import { confirmDialog } from '../../molecules/confirm-dialog/ConfirmDialog'; import { useForceUpdate } from '../../hooks/useForceUpdate'; const tabText = { GENERAL: 'General', MEMBERS: 'Members', EMOJIS: 'Emojis', PERMISSIONS: 'Permissions', }; const tabItems = [{ iconSrc: SettingsIC, text: tabText.GENERAL, disabled: false, }, { iconSrc: UserIC, text: tabText.MEMBERS, disabled: false, }, { iconSrc: EmojiIC, text: tabText.EMOJIS, disabled: false, }, { iconSrc: ShieldUserIC, text: tabText.PERMISSIONS, disabled: false, }]; function GeneralSettings({ roomId }) { const isPinned = initMatrix.accountData.spaceShortcut.has(roomId); const isCategorized = initMatrix.accountData.categorizedSpaces.has(roomId); const roomName = initMatrix.matrixClient.getRoom(roomId)?.name; const [, forceUpdate] = useForceUpdate(); return ( <>