From 30599554f17b5094d8f4c9f76aabeb95be66bdb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Brandner?= Date: Mon, 27 Sep 2021 12:40:34 +0200 Subject: [PATCH] Convert PageTypes to TS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Šimon Brandner --- src/{PageTypes.js => PageTypes.ts} | 18 ++++++++++-------- src/components/structures/MatrixChat.tsx | 18 +++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) rename src/{PageTypes.js => PageTypes.ts} (74%) diff --git a/src/PageTypes.js b/src/PageTypes.ts similarity index 74% rename from src/PageTypes.js rename to src/PageTypes.ts index 09e0eadbd7..73967f351e 100644 --- a/src/PageTypes.js +++ b/src/PageTypes.ts @@ -16,11 +16,13 @@ limitations under the License. */ /** The types of page which can be shown by the LoggedInView */ -export default { - HomePage: "home_page", - RoomView: "room_view", - RoomDirectory: "room_directory", - UserView: "user_view", - GroupView: "group_view", - MyGroups: "my_groups", -}; +enum PageType { + HomePage = "home_page", + RoomView = "room_view", + RoomDirectory = "room_directory", + UserView = "user_view", + GroupView = "group_view", + MyGroups = "my_groups", +} + +export default PageType; diff --git a/src/components/structures/MatrixChat.tsx b/src/components/structures/MatrixChat.tsx index b6d2e21918..90ac47ffb5 100644 --- a/src/components/structures/MatrixChat.tsx +++ b/src/components/structures/MatrixChat.tsx @@ -42,7 +42,7 @@ import linkifyMatrix from "../../linkify-matrix"; import * as Lifecycle from '../../Lifecycle'; // LifecycleStore is not used but does listen to and dispatch actions import '../../stores/LifecycleStore'; -import PageTypes from '../../PageTypes'; +import PageType from '../../PageTypes'; import createRoom, { IOpts } from "../../createRoom"; import { _t, _td, getCurrentLanguage } from '../../languageHandler'; @@ -207,7 +207,7 @@ interface IState { view: Views; // What the LoggedInView would be showing if visible // eslint-disable-next-line camelcase - page_type?: PageTypes; + page_type?: PageType; // The ID of the room we're viewing. This is either populated directly // in the case where we view a room by ID or by RoomView when it resolves // what ID an alias points at. @@ -723,7 +723,7 @@ export default class MatrixChat extends React.PureComponent { break; } case 'view_my_groups': - this.setPage(PageTypes.MyGroups); + this.setPage(PageType.MyGroups); this.notifyNewScreen('groups'); break; case 'view_group': @@ -756,7 +756,7 @@ export default class MatrixChat extends React.PureComponent { localStorage.setItem("mx_seenSpacesBeta", "1"); // We just dispatch the page change rather than have to worry about // what the logic is for each of these branches. - if (this.state.page_type === PageTypes.MyGroups) { + if (this.state.page_type === PageType.MyGroups) { dis.dispatch({ action: 'view_last_screen' }); } else { dis.dispatch({ action: 'view_my_groups' }); @@ -842,7 +842,7 @@ export default class MatrixChat extends React.PureComponent { } }; - private setPage(pageType: string) { + private setPage(pageType: PageType) { this.setState({ page_type: pageType, }); @@ -949,7 +949,7 @@ export default class MatrixChat extends React.PureComponent { this.setState({ view: Views.LOGGED_IN, currentRoomId: roomInfo.room_id || null, - page_type: PageTypes.RoomView, + page_type: PageType.RoomView, threepidInvite: roomInfo.threepid_invite, roomOobData: roomInfo.oob_data, ready: true, @@ -977,7 +977,7 @@ export default class MatrixChat extends React.PureComponent { currentGroupId: groupId, currentGroupIsNew: payload.group_is_new, }); - this.setPage(PageTypes.GroupView); + this.setPage(PageType.GroupView); this.notifyNewScreen('group/' + groupId); } @@ -1020,7 +1020,7 @@ export default class MatrixChat extends React.PureComponent { justRegistered, currentRoomId: null, }); - this.setPage(PageTypes.HomePage); + this.setPage(PageType.HomePage); this.notifyNewScreen('home'); ThemeController.isLogin = false; this.themeWatcher.recheck(); @@ -1038,7 +1038,7 @@ export default class MatrixChat extends React.PureComponent { } this.notifyNewScreen('user/' + userId); this.setState({ currentUserId: userId }); - this.setPage(PageTypes.UserView); + this.setPage(PageType.UserView); }); }