mirror of
				https://github.com/vector-im/element-web.git
				synced 2025-11-04 10:11:03 +01:00 
			
		
		
		
	Make Screens an enum
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
		
							parent
							
								
									e06b5f8cf3
								
							
						
					
					
						commit
						f64929187a
					
				@ -103,6 +103,22 @@ export enum Views {
 | 
				
			|||||||
    SOFT_LOGOUT = 9,
 | 
					    SOFT_LOGOUT = 9,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export enum Screens {
 | 
				
			||||||
 | 
					    REGISTER = "register",
 | 
				
			||||||
 | 
					    LOGIN = "login",
 | 
				
			||||||
 | 
					    FORGOT_PASSWORD = "forgot_password",
 | 
				
			||||||
 | 
					    SOFT_LOGOUT = "soft_logout",
 | 
				
			||||||
 | 
					    NEW = "new", // new room
 | 
				
			||||||
 | 
					    SETTINGS = "settings",
 | 
				
			||||||
 | 
					    WELCOME = "welcome",
 | 
				
			||||||
 | 
					    HOME = "home",
 | 
				
			||||||
 | 
					    START = "start",
 | 
				
			||||||
 | 
					    DIRECTORY = "directory",
 | 
				
			||||||
 | 
					    GROUPS = "groups",
 | 
				
			||||||
 | 
					    COMPLETE_SECURITY = "complete_security",
 | 
				
			||||||
 | 
					    POST_REGISTRATION = "post_registration",
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Actions that are redirected through the onboarding process prior to being
 | 
					// Actions that are redirected through the onboarding process prior to being
 | 
				
			||||||
// re-dispatched. NOTE: some actions are non-trivial and would require
 | 
					// re-dispatched. NOTE: some actions are non-trivial and would require
 | 
				
			||||||
// re-factoring to be included in this list in future.
 | 
					// re-factoring to be included in this list in future.
 | 
				
			||||||
@ -114,7 +130,7 @@ const ONBOARDING_FLOW_STARTERS = [
 | 
				
			|||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface IScreen {
 | 
					interface IScreen {
 | 
				
			||||||
    screen: string;
 | 
					    screen: Screens | string;
 | 
				
			||||||
    params?: object;
 | 
					    params?: object;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -323,9 +339,9 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
 | 
				
			|||||||
                // the old creds, but rather go straight to the relevant page
 | 
					                // the old creds, but rather go straight to the relevant page
 | 
				
			||||||
                const firstScreen = this.screenAfterLogin ? this.screenAfterLogin.screen : null;
 | 
					                const firstScreen = this.screenAfterLogin ? this.screenAfterLogin.screen : null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (firstScreen === 'login' ||
 | 
					                if (firstScreen === Screens.LOGIN ||
 | 
				
			||||||
                    firstScreen === 'register' ||
 | 
					                    firstScreen === Screens.REGISTER ||
 | 
				
			||||||
                    firstScreen === 'forgot_password') {
 | 
					                    firstScreen === Screens.FORGOT_PASSWORD) {
 | 
				
			||||||
                    this.showScreenAfterLogin();
 | 
					                    this.showScreenAfterLogin();
 | 
				
			||||||
                    return;
 | 
					                    return;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@ -539,7 +555,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
 | 
				
			|||||||
                this.setStateForNewView({
 | 
					                this.setStateForNewView({
 | 
				
			||||||
                    view: Views.LOGIN,
 | 
					                    view: Views.LOGIN,
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
                this.notifyNewScreen('login');
 | 
					                this.notifyNewScreen(Screens.LOGIN);
 | 
				
			||||||
                ThemeController.isLogin = true;
 | 
					                ThemeController.isLogin = true;
 | 
				
			||||||
                this.themeWatcher.recheck();
 | 
					                this.themeWatcher.recheck();
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
@ -552,7 +568,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
 | 
				
			|||||||
                this.setStateForNewView({
 | 
					                this.setStateForNewView({
 | 
				
			||||||
                    view: Views.FORGOT_PASSWORD,
 | 
					                    view: Views.FORGOT_PASSWORD,
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
                this.notifyNewScreen('forgot_password');
 | 
					                this.notifyNewScreen(Screens.FORGOT_PASSWORD);
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case 'start_chat':
 | 
					            case 'start_chat':
 | 
				
			||||||
                createRoom({
 | 
					                createRoom({
 | 
				
			||||||
@ -803,7 +819,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
 | 
				
			|||||||
        this.setStateForNewView(newState);
 | 
					        this.setStateForNewView(newState);
 | 
				
			||||||
        ThemeController.isLogin = true;
 | 
					        ThemeController.isLogin = true;
 | 
				
			||||||
        this.themeWatcher.recheck();
 | 
					        this.themeWatcher.recheck();
 | 
				
			||||||
        this.notifyNewScreen('register');
 | 
					        this.notifyNewScreen(Screens.REGISTER);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: Move to RoomViewStore
 | 
					    // TODO: Move to RoomViewStore
 | 
				
			||||||
@ -1282,7 +1298,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
 | 
				
			|||||||
     * Called when the session is logged out
 | 
					     * Called when the session is logged out
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private onLoggedOut() {
 | 
					    private onLoggedOut() {
 | 
				
			||||||
        this.notifyNewScreen('login');
 | 
					        this.notifyNewScreen(Screens.LOGIN);
 | 
				
			||||||
        this.setStateForNewView({
 | 
					        this.setStateForNewView({
 | 
				
			||||||
            view: Views.LOGIN,
 | 
					            view: Views.LOGIN,
 | 
				
			||||||
            ready: false,
 | 
					            ready: false,
 | 
				
			||||||
@ -1299,7 +1315,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
 | 
				
			|||||||
     * Called when the session is softly logged out
 | 
					     * Called when the session is softly logged out
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private onSoftLogout() {
 | 
					    private onSoftLogout() {
 | 
				
			||||||
        this.notifyNewScreen('soft_logout');
 | 
					        this.notifyNewScreen(Screens.SOFT_LOGOUT);
 | 
				
			||||||
        this.setStateForNewView({
 | 
					        this.setStateForNewView({
 | 
				
			||||||
            view: Views.SOFT_LOGOUT,
 | 
					            view: Views.SOFT_LOGOUT,
 | 
				
			||||||
            ready: false,
 | 
					            ready: false,
 | 
				
			||||||
@ -1588,152 +1604,168 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    showScreen(screen: string, params?: {[key: string]: any}) {
 | 
					    showScreen(screen: Screens | string, params?: {[key: string]: any}) {
 | 
				
			||||||
        if (screen === 'register') {
 | 
					        switch (screen) {
 | 
				
			||||||
            dis.dispatch({
 | 
					            case Screens.REGISTER:
 | 
				
			||||||
                action: 'start_registration',
 | 
					                dis.dispatch({
 | 
				
			||||||
                params: params,
 | 
					                    action: 'start_registration',
 | 
				
			||||||
            });
 | 
					                    params: params,
 | 
				
			||||||
        } else if (screen === 'login') {
 | 
					                });
 | 
				
			||||||
            dis.dispatch({
 | 
					                break;
 | 
				
			||||||
                action: 'start_login',
 | 
					            case Screens.LOGIN:
 | 
				
			||||||
                params: params,
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        } else if (screen === 'forgot_password') {
 | 
					 | 
				
			||||||
            dis.dispatch({
 | 
					 | 
				
			||||||
                action: 'start_password_recovery',
 | 
					 | 
				
			||||||
                params: params,
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        } else if (screen === 'soft_logout') {
 | 
					 | 
				
			||||||
            if (MatrixClientPeg.get() && MatrixClientPeg.get().getUserId() && !Lifecycle.isSoftLogout()) {
 | 
					 | 
				
			||||||
                // Logged in - visit a room
 | 
					 | 
				
			||||||
                this.viewLastRoom();
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                // Ultimately triggers soft_logout if needed
 | 
					 | 
				
			||||||
                dis.dispatch({
 | 
					                dis.dispatch({
 | 
				
			||||||
                    action: 'start_login',
 | 
					                    action: 'start_login',
 | 
				
			||||||
                    params: params,
 | 
					                    params: params,
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            }
 | 
					                break;
 | 
				
			||||||
        } else if (screen === 'new') {
 | 
					            case Screens.FORGOT_PASSWORD:
 | 
				
			||||||
            dis.dispatch({
 | 
					                dis.dispatch({
 | 
				
			||||||
                action: 'view_create_room',
 | 
					                    action: 'start_password_recovery',
 | 
				
			||||||
            });
 | 
					                    params: params,
 | 
				
			||||||
        } else if (screen === 'settings') {
 | 
					                });
 | 
				
			||||||
            dis.dispatch({
 | 
					                break;
 | 
				
			||||||
                action: 'view_user_settings',
 | 
					            case Screens.SOFT_LOGOUT:
 | 
				
			||||||
            });
 | 
					                if (MatrixClientPeg.get() && MatrixClientPeg.get().getUserId() && !Lifecycle.isSoftLogout()) {
 | 
				
			||||||
        } else if (screen === 'welcome') {
 | 
					                    // Logged in - visit a room
 | 
				
			||||||
            dis.dispatch({
 | 
					                    this.viewLastRoom();
 | 
				
			||||||
                action: 'view_welcome_page',
 | 
					                } else {
 | 
				
			||||||
            });
 | 
					                    // Ultimately triggers soft_logout if needed
 | 
				
			||||||
        } else if (screen === 'home') {
 | 
					                    dis.dispatch({
 | 
				
			||||||
            dis.dispatch({
 | 
					                        action: 'start_login',
 | 
				
			||||||
                action: 'view_home_page',
 | 
					                        params: params,
 | 
				
			||||||
            });
 | 
					                    });
 | 
				
			||||||
        } else if (screen === 'start') {
 | 
					                }
 | 
				
			||||||
            this.showScreen('home');
 | 
					                break;
 | 
				
			||||||
            dis.dispatch({
 | 
					            case Screens.NEW:
 | 
				
			||||||
                action: 'require_registration',
 | 
					                dis.dispatch({
 | 
				
			||||||
            });
 | 
					                    action: 'view_create_room',
 | 
				
			||||||
        } else if (screen === 'directory') {
 | 
					                });
 | 
				
			||||||
            dis.dispatch({
 | 
					                break;
 | 
				
			||||||
                action: 'view_room_directory',
 | 
					            case Screens.SETTINGS:
 | 
				
			||||||
            });
 | 
					                dis.dispatch({
 | 
				
			||||||
        } else if (screen === 'groups') {
 | 
					                    action: 'view_user_settings',
 | 
				
			||||||
            dis.dispatch({
 | 
					                });
 | 
				
			||||||
                action: 'view_my_groups',
 | 
					                break;
 | 
				
			||||||
            });
 | 
					            case Screens.WELCOME:
 | 
				
			||||||
        } else if (screen === 'complete_security') {
 | 
					                dis.dispatch({
 | 
				
			||||||
            dis.dispatch({
 | 
					                    action: 'view_welcome_page',
 | 
				
			||||||
                action: 'start_complete_security',
 | 
					                });
 | 
				
			||||||
            });
 | 
					                break;
 | 
				
			||||||
        } else if (screen === 'post_registration') {
 | 
					            case Screens.HOME:
 | 
				
			||||||
            dis.dispatch({
 | 
					                dis.dispatch({
 | 
				
			||||||
                action: 'start_post_registration',
 | 
					                    action: 'view_home_page',
 | 
				
			||||||
            });
 | 
					                });
 | 
				
			||||||
        } else if (screen.indexOf('room/') === 0) {
 | 
					                break;
 | 
				
			||||||
            // Rooms can have the following formats:
 | 
					            case Screens.START:
 | 
				
			||||||
            // #room_alias:domain or !opaque_id:domain
 | 
					                this.showScreen(Screens.HOME);
 | 
				
			||||||
            const room = screen.substring(5);
 | 
					                dis.dispatch({
 | 
				
			||||||
            const domainOffset = room.indexOf(':') + 1; // 0 in case room does not contain a :
 | 
					                    action: 'require_registration',
 | 
				
			||||||
            let eventOffset = room.length;
 | 
					                });
 | 
				
			||||||
            // room aliases can contain slashes only look for slash after domain
 | 
					                break;
 | 
				
			||||||
            if (room.substring(domainOffset).indexOf('/') > -1) {
 | 
					            case Screens.DIRECTORY:
 | 
				
			||||||
                eventOffset = domainOffset + room.substring(domainOffset).indexOf('/');
 | 
					                dis.dispatch({
 | 
				
			||||||
            }
 | 
					                    action: 'view_room_directory',
 | 
				
			||||||
            const roomString = room.substring(0, eventOffset);
 | 
					                });
 | 
				
			||||||
            let eventId = room.substring(eventOffset + 1); // empty string if no event id given
 | 
					                break;
 | 
				
			||||||
 | 
					            case Screens.GROUPS:
 | 
				
			||||||
 | 
					                dis.dispatch({
 | 
				
			||||||
 | 
					                    action: 'view_my_groups',
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case Screens.COMPLETE_SECURITY:
 | 
				
			||||||
 | 
					                dis.dispatch({
 | 
				
			||||||
 | 
					                    action: 'start_complete_security',
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case Screens.POST_REGISTRATION:
 | 
				
			||||||
 | 
					                dis.dispatch({
 | 
				
			||||||
 | 
					                    action: 'start_post_registration',
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            default:
 | 
				
			||||||
 | 
					                if (screen.startsWith('room/')) {
 | 
				
			||||||
 | 
					                    // Rooms can have the following formats:
 | 
				
			||||||
 | 
					                    // #room_alias:domain or !opaque_id:domain
 | 
				
			||||||
 | 
					                    const room = screen.substring(5);
 | 
				
			||||||
 | 
					                    const domainOffset = room.indexOf(':') + 1; // 0 in case room does not contain a :
 | 
				
			||||||
 | 
					                    let eventOffset = room.length;
 | 
				
			||||||
 | 
					                    // room aliases can contain slashes only look for slash after domain
 | 
				
			||||||
 | 
					                    if (room.substring(domainOffset).indexOf('/') > -1) {
 | 
				
			||||||
 | 
					                        eventOffset = domainOffset + room.substring(domainOffset).indexOf('/');
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    const roomString = room.substring(0, eventOffset);
 | 
				
			||||||
 | 
					                    let eventId = room.substring(eventOffset + 1); // empty string if no event id given
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Previously we pulled the eventID from the segments in such a way
 | 
					                    // Previously we pulled the eventID from the segments in such a way
 | 
				
			||||||
            // where if there was no eventId then we'd get undefined. However, we
 | 
					                    // where if there was no eventId then we'd get undefined. However, we
 | 
				
			||||||
            // now do a splice and join to handle v3 event IDs which results in
 | 
					                    // now do a splice and join to handle v3 event IDs which results in
 | 
				
			||||||
            // an empty string. To maintain our potential contract with the rest
 | 
					                    // an empty string. To maintain our potential contract with the rest
 | 
				
			||||||
            // of the app, we coerce the eventId to be undefined where applicable.
 | 
					                    // of the app, we coerce the eventId to be undefined where applicable.
 | 
				
			||||||
            if (!eventId) eventId = undefined;
 | 
					                    if (!eventId) eventId = undefined;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // TODO: Handle encoded room/event IDs: https://github.com/vector-im/riot-web/issues/9149
 | 
					                    // TODO: Handle encoded room/event IDs: https://github.com/vector-im/riot-web/issues/9149
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // FIXME: sort_out caseConsistency
 | 
					                    // FIXME: sort_out caseConsistency
 | 
				
			||||||
            const thirdPartyInvite = {
 | 
					                    const thirdPartyInvite = {
 | 
				
			||||||
                inviteSignUrl: params.signurl,
 | 
					                        inviteSignUrl: params.signurl,
 | 
				
			||||||
                invitedEmail: params.email,
 | 
					                        invitedEmail: params.email,
 | 
				
			||||||
            };
 | 
					                    };
 | 
				
			||||||
            const oobData = {
 | 
					                    const oobData = {
 | 
				
			||||||
                name: params.room_name,
 | 
					                        name: params.room_name,
 | 
				
			||||||
                avatarUrl: params.room_avatar_url,
 | 
					                        avatarUrl: params.room_avatar_url,
 | 
				
			||||||
                inviterName: params.inviter_name,
 | 
					                        inviterName: params.inviter_name,
 | 
				
			||||||
            };
 | 
					                    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // on our URLs there might be a ?via=matrix.org or similar to help
 | 
					                    // on our URLs there might be a ?via=matrix.org or similar to help
 | 
				
			||||||
            // joins to the room succeed. We'll pass these through as an array
 | 
					                    // joins to the room succeed. We'll pass these through as an array
 | 
				
			||||||
            // to other levels. If there's just one ?via= then params.via is a
 | 
					                    // to other levels. If there's just one ?via= then params.via is a
 | 
				
			||||||
            // single string. If someone does something like ?via=one.com&via=two.com
 | 
					                    // single string. If someone does something like ?via=one.com&via=two.com
 | 
				
			||||||
            // then params.via is an array of strings.
 | 
					                    // then params.via is an array of strings.
 | 
				
			||||||
            let via = [];
 | 
					                    let via = [];
 | 
				
			||||||
            if (params.via) {
 | 
					                    if (params.via) {
 | 
				
			||||||
                if (typeof(params.via) === 'string') via = [params.via];
 | 
					                        if (typeof(params.via) === 'string') via = [params.via];
 | 
				
			||||||
                else via = params.via;
 | 
					                        else via = params.via;
 | 
				
			||||||
            }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            const payload = {
 | 
					                    const payload = {
 | 
				
			||||||
                action: 'view_room',
 | 
					                        action: 'view_room',
 | 
				
			||||||
                event_id: eventId,
 | 
					                        event_id: eventId,
 | 
				
			||||||
                via_servers: via,
 | 
					                        via_servers: via,
 | 
				
			||||||
                // If an event ID is given in the URL hash, notify RoomViewStore to mark
 | 
					                        // If an event ID is given in the URL hash, notify RoomViewStore to mark
 | 
				
			||||||
                // it as highlighted, which will propagate to RoomView and highlight the
 | 
					                        // it as highlighted, which will propagate to RoomView and highlight the
 | 
				
			||||||
                // associated EventTile.
 | 
					                        // associated EventTile.
 | 
				
			||||||
                highlighted: Boolean(eventId),
 | 
					                        highlighted: Boolean(eventId),
 | 
				
			||||||
                third_party_invite: thirdPartyInvite,
 | 
					                        third_party_invite: thirdPartyInvite,
 | 
				
			||||||
                oob_data: oobData,
 | 
					                        oob_data: oobData,
 | 
				
			||||||
                room_alias: undefined,
 | 
					                        room_alias: undefined,
 | 
				
			||||||
                room_id: undefined,
 | 
					                        room_id: undefined,
 | 
				
			||||||
            };
 | 
					                    };
 | 
				
			||||||
            if (roomString[0] === '#') {
 | 
					                    if (roomString[0] === '#') {
 | 
				
			||||||
                payload.room_alias = roomString;
 | 
					                        payload.room_alias = roomString;
 | 
				
			||||||
            } else {
 | 
					                    } else {
 | 
				
			||||||
                payload.room_id = roomString;
 | 
					                        payload.room_id = roomString;
 | 
				
			||||||
            }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            dis.dispatch(payload);
 | 
					                    dis.dispatch(payload);
 | 
				
			||||||
        } else if (screen.indexOf('user/') === 0) {
 | 
					                } else if (screen.startsWith('user/')) {
 | 
				
			||||||
            const userId = screen.substring(5);
 | 
					                    const userId = screen.substring(5);
 | 
				
			||||||
            dis.dispatch({
 | 
					                    dis.dispatch({
 | 
				
			||||||
                action: 'view_user_info',
 | 
					                        action: 'view_user_info',
 | 
				
			||||||
                userId: userId,
 | 
					                        userId: userId,
 | 
				
			||||||
                subAction: params.action,
 | 
					                        subAction: params.action,
 | 
				
			||||||
            });
 | 
					                    });
 | 
				
			||||||
        } else if (screen.indexOf('group/') === 0) {
 | 
					                } else if (screen.startsWith('group/')) {
 | 
				
			||||||
            const groupId = screen.substring(6);
 | 
					                    const groupId = screen.substring(6);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // TODO: Check valid group ID
 | 
					                    // TODO: Check valid group ID
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            dis.dispatch({
 | 
					                    dis.dispatch({
 | 
				
			||||||
                action: 'view_group',
 | 
					                        action: 'view_group',
 | 
				
			||||||
                group_id: groupId,
 | 
					                        group_id: groupId,
 | 
				
			||||||
            });
 | 
					                    });
 | 
				
			||||||
        } else {
 | 
					                } else {
 | 
				
			||||||
            console.info("Ignoring showScreen for '%s'", screen);
 | 
					                    console.info("Ignoring showScreen for '%s'", screen);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1800,15 +1832,15 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    onRegisterClick = () => {
 | 
					    onRegisterClick = () => {
 | 
				
			||||||
        this.showScreen("register");
 | 
					        this.showScreen(Screens.REGISTER);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    onLoginClick = () => {
 | 
					    onLoginClick = () => {
 | 
				
			||||||
        this.showScreen("login");
 | 
					        this.showScreen(Screens.LOGIN);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    onForgotPasswordClick = () => {
 | 
					    onForgotPasswordClick = () => {
 | 
				
			||||||
        this.showScreen("forgot_password");
 | 
					        this.showScreen(Screens.FORGOT_PASSWORD);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    onRegisterFlowComplete = (credentials: object, password: string) => {
 | 
					    onRegisterFlowComplete = (credentials: object, password: string) => {
 | 
				
			||||||
@ -1825,7 +1857,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
 | 
				
			|||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            view: Views.LOGGED_IN,
 | 
					            view: Views.LOGGED_IN,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        this.showScreen("settings");
 | 
					        this.showScreen(Screens.SETTINGS);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    onVersion(current: string, latest: string, releaseNotes?: string) {
 | 
					    onVersion(current: string, latest: string, releaseNotes?: string) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user