Add ability to manage room history visibility

Signed-off-by: Ajay Bura <ajbura@gmail.com>
This commit is contained in:
Ajay Bura 2022-01-01 16:27:36 +05:30
parent c23acf9e9e
commit 0ddeb02d23
4 changed files with 156 additions and 8 deletions

View file

@ -17,6 +17,7 @@ import RoomProfile from '../../molecules/room-profile/RoomProfile';
import RoomNotification from '../../molecules/room-notification/RoomNotification';
import RoomVisibility from '../../molecules/room-visibility/RoomVisibility';
import RoomAliases from '../../molecules/room-aliases/RoomAliases';
import RoomHistoryVisibility from '../../molecules/room-history-visibility/RoomHistoryVisibility';
import SettingsIC from '../../../../public/res/ic/outlined/settings.svg';
import SearchIC from '../../../../public/res/ic/outlined/search.svg';
@ -28,25 +29,33 @@ import LeaveArrowIC from '../../../../public/res/ic/outlined/leave-arrow.svg';
import { useForceUpdate } from '../../hooks/useForceUpdate';
const tabText = {
GENERAL: 'General',
SEARCH: 'Search',
PERMISSIONS: 'Permissions',
SECURITY: 'Security',
ADVANCED: 'Advanced',
};
const tabItems = [{
iconSrc: SettingsIC,
text: 'General',
text: tabText.GENERAL,
disabled: false,
}, {
iconSrc: SearchIC,
text: 'Search',
text: tabText.SEARCH,
disabled: false,
}, {
iconSrc: ShieldUserIC,
text: 'Permissions',
text: tabText.PERMISSIONS,
disabled: false,
}, {
iconSrc: LockIC,
text: 'Security',
text: tabText.SECURITY,
disabled: false,
}, {
iconSrc: InfoIC,
text: 'Advanced',
text: tabText.ADVANCED,
disabled: false,
}];
@ -87,6 +96,20 @@ GeneralSettings.propTypes = {
roomId: PropTypes.string.isRequired,
};
function SecuritySettings({ roomId }) {
return (
<>
<div className="room-settings__card">
<MenuHeader>Message history visibility (Who can read history)</MenuHeader>
<RoomHistoryVisibility roomId={roomId} />
</div>
</>
);
}
SecuritySettings.propTypes = {
roomId: PropTypes.string.isRequired,
};
function RoomSettings({ roomId }) {
const [, forceUpdate] = useForceUpdate();
const [selectedTab, setSelectedTab] = useState(tabItems[0]);
@ -127,7 +150,8 @@ function RoomSettings({ roomId }) {
onSelect={handleTabChange}
/>
<div className="room-settings__cards-wrapper">
{selectedTab.text === tabItems[0].text && <GeneralSettings roomId={roomId} />}
{selectedTab.text === tabText.GENERAL && <GeneralSettings roomId={roomId} />}
{selectedTab.text === tabText.SECURITY && <SecuritySettings roomId={roomId} />}
</div>
</div>
</ScrollView>