--- /dev/null
+import React from 'react';
+import PropTypes from 'prop-types';
+
+import { twemojify } from '../../../util/twemojify';
+
+import initMatrix from '../../../client/initMatrix';
+import { openInviteUser } from '../../../client/action/navigation';
+import * as roomActions from '../../../client/action/room';
+
+import { MenuHeader, MenuItem } from '../../atoms/context-menu/ContextMenu';
+import RoomNotification from '../room-notification/RoomNotification';
+
+import TickMarkIC from '../../../../public/res/ic/outlined/tick-mark.svg';
+import AddUserIC from '../../../../public/res/ic/outlined/add-user.svg';
+import LeaveArrowIC from '../../../../public/res/ic/outlined/leave-arrow.svg';
+
+function RoomOptions({ roomId, afterOptionSelect }) {
+ const mx = initMatrix.matrixClient;
+ const room = mx.getRoom(roomId);
+ const canInvite = room?.canInvite(mx.getUserId());
+
+ const handleMarkAsRead = () => {
+ afterOptionSelect();
+ if (!room) return;
+ const events = room.getLiveTimeline().getEvents();
+ mx.sendReadReceipt(events[events.length - 1]);
+ };
+
+ const handleInviteClick = () => {
+ openInviteUser(roomId);
+ afterOptionSelect();
+ };
+ const handleLeaveClick = () => {
+ if (confirm('Are you really want to leave this room?')) {
+ roomActions.leave(roomId);
+ afterOptionSelect();
+ }
+ };
+
+ return (
+ <>
+ <MenuHeader>{twemojify(`Options for ${initMatrix.matrixClient.getRoom(roomId)?.name}`)}</MenuHeader>
+ <MenuItem iconSrc={TickMarkIC} onClick={handleMarkAsRead}>Mark as read</MenuItem>
+ <MenuItem
+ iconSrc={AddUserIC}
+ onClick={handleInviteClick}
+ disabled={!canInvite}
+ >
+ Invite
+ </MenuItem>
+ <MenuItem iconSrc={LeaveArrowIC} variant="danger" onClick={handleLeaveClick}>Leave</MenuItem>
+ <MenuHeader>Notification</MenuHeader>
+ <RoomNotification roomId={roomId} />
+ </>
+ );
+}
+
+RoomOptions.defaultProps = {
+ afterOptionSelect: null,
+};
+
+RoomOptions.propTypes = {
+ roomId: PropTypes.string.isRequired,
+ afterOptionSelect: PropTypes.func,
+};
+
+export default RoomOptions;
+++ /dev/null
-import React from 'react';
-import PropTypes from 'prop-types';
-
-import { twemojify } from '../../../util/twemojify';
-
-import initMatrix from '../../../client/initMatrix';
-import { openInviteUser } from '../../../client/action/navigation';
-import * as roomActions from '../../../client/action/room';
-
-import { MenuHeader, MenuItem } from '../../atoms/context-menu/ContextMenu';
-import RoomNotification from '../room-notification/RoomNotification';
-
-import TickMarkIC from '../../../../public/res/ic/outlined/tick-mark.svg';
-import AddUserIC from '../../../../public/res/ic/outlined/add-user.svg';
-import LeaveArrowIC from '../../../../public/res/ic/outlined/leave-arrow.svg';
-
-function RoomOptions({ roomId, afterOptionSelect }) {
- const mx = initMatrix.matrixClient;
- const room = mx.getRoom(roomId);
- const canInvite = room?.canInvite(mx.getUserId());
-
- const handleMarkAsRead = () => {
- afterOptionSelect();
- if (!room) return;
- const events = room.getLiveTimeline().getEvents();
- mx.sendReadReceipt(events[events.length - 1]);
- };
-
- const handleInviteClick = () => {
- openInviteUser(roomId);
- afterOptionSelect();
- };
- const handleLeaveClick = () => {
- if (confirm('Are you really want to leave this room?')) {
- roomActions.leave(roomId);
- afterOptionSelect();
- }
- };
-
- return (
- <>
- <MenuHeader>{twemojify(`Options for ${initMatrix.matrixClient.getRoom(roomId)?.name}`)}</MenuHeader>
- <MenuItem iconSrc={TickMarkIC} onClick={handleMarkAsRead}>Mark as read</MenuItem>
- <MenuItem
- iconSrc={AddUserIC}
- onClick={handleInviteClick}
- disabled={!canInvite}
- >
- Invite
- </MenuItem>
- <MenuItem iconSrc={LeaveArrowIC} variant="danger" onClick={handleLeaveClick}>Leave</MenuItem>
- <MenuHeader>Notification</MenuHeader>
- <RoomNotification roomId={roomId} />
- </>
- );
-}
-
-RoomOptions.defaultProps = {
- afterOptionSelect: null,
-};
-
-RoomOptions.propTypes = {
- roomId: PropTypes.string.isRequired,
- afterOptionSelect: PropTypes.func,
-};
-
-export default RoomOptions;
import IconButton from '../../atoms/button/IconButton';
import RoomSelector from '../../molecules/room-selector/RoomSelector';
-import RoomOptions from '../../molecules/room-optons/RoomOptions';
+import RoomOptions from '../../molecules/room-options/RoomOptions';
import HashIC from '../../../../public/res/ic/outlined/hash.svg';
import HashGlobeIC from '../../../../public/res/ic/outlined/hash-globe.svg';
import IconButton from '../../atoms/button/IconButton';
import Header, { TitleWrapper } from '../../atoms/header/Header';
import Avatar from '../../atoms/avatar/Avatar';
-import RoomOptions from '../../molecules/room-optons/RoomOptions';
+import RoomOptions from '../../molecules/room-options/RoomOptions';
import UserIC from '../../../../public/res/ic/outlined/user.svg';
import ChevronBottomIC from '../../../../public/res/ic/outlined/chevron-bottom.svg';