Use enums in SecurityRoomSettingsTab

pull/21833/head
J. Ryan Stinnett 2021-04-26 16:14:21 +01:00
parent cddcedcce2
commit d497d62db3
1 changed files with 29 additions and 14 deletions

View File

@ -27,9 +27,24 @@ import SettingsStore from "../../../../../settings/SettingsStore";
import {UIFeature} from "../../../../../settings/UIFeature"; import {UIFeature} from "../../../../../settings/UIFeature";
import { replaceableComponent } from "../../../../../utils/replaceableComponent"; import { replaceableComponent } from "../../../../../utils/replaceableComponent";
type JoinRule = "public" | "knock" | "invite" | "private"; enum JoinRule {
type GuestAccess = "can_join" | "forbidden"; Public = "public",
type HistoryVisibility = "invited" | "joined" | "shared" | "world_readable"; Knock = "knock",
Invite = "invite",
Private = "private",
}
enum GuestAccess {
CanJoin = "can_join",
Forbidden = "forbidden",
}
enum HistoryVisibility {
Invited = "invited",
Joined = "joined",
Shared = "shared",
WorldReadable = "world_readable",
}
interface IProps { interface IProps {
roomId: string; roomId: string;
@ -49,9 +64,9 @@ export default class SecurityRoomSettingsTab extends React.Component<IProps, ISt
super(props); super(props);
this.state = { this.state = {
joinRule: "invite", joinRule: JoinRule.Invite,
guestAccess: "can_join", guestAccess: GuestAccess.CanJoin,
history: "shared", history: HistoryVisibility.Shared,
hasAliases: false, hasAliases: false,
encrypted: false, encrypted: false,
}; };
@ -141,8 +156,8 @@ export default class SecurityRoomSettingsTab extends React.Component<IProps, ISt
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
const joinRule = "invite"; const joinRule = JoinRule.Invite;
const guestAccess = "can_join"; const guestAccess = GuestAccess.CanJoin;
const beforeJoinRule = this.state.joinRule; const beforeJoinRule = this.state.joinRule;
const beforeGuestAccess = this.state.guestAccess; const beforeGuestAccess = this.state.guestAccess;
@ -173,20 +188,20 @@ export default class SecurityRoomSettingsTab extends React.Component<IProps, ISt
// invite them, you clearly want them to join, whether they're a // invite them, you clearly want them to join, whether they're a
// guest or not. In practice, guest_access should probably have // guest or not. In practice, guest_access should probably have
// been implemented as part of the join_rules enum. // been implemented as part of the join_rules enum.
let joinRule: JoinRule = "invite"; let joinRule = JoinRule.Invite;
let guestAccess: GuestAccess = "can_join"; let guestAccess = GuestAccess.CanJoin;
switch (roomAccess) { switch (roomAccess) {
case "invite_only": case "invite_only":
// no change - use defaults above // no change - use defaults above
break; break;
case "public_no_guests": case "public_no_guests":
joinRule = "public"; joinRule = JoinRule.Public;
guestAccess = "forbidden"; guestAccess = GuestAccess.Forbidden;
break; break;
case "public_with_guests": case "public_with_guests":
joinRule = "public"; joinRule = JoinRule.Public;
guestAccess = "can_join"; guestAccess = GuestAccess.CanJoin;
break; break;
} }