Improve first-run UX
- Replace LoginPage with step-by-step approach to support different login flows - Implement login using SSO
This commit is contained in:
20
qml/main.qml
20
qml/main.qml
@@ -246,6 +246,12 @@ Kirigami.ApplicationWindow {
|
||||
activeConnection: Controller.activeConnection
|
||||
}
|
||||
}
|
||||
Connections {
|
||||
target: LoginHelper
|
||||
function onInitialSyncFinished() {
|
||||
roomManager.roomList = pageStack.replace(roomListComponent);
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: Controller
|
||||
@@ -255,23 +261,13 @@ Kirigami.ApplicationWindow {
|
||||
return;
|
||||
}
|
||||
if (Controller.accountCount === 0) {
|
||||
pageStack.replace("qrc:/imports/NeoChat/Page/LoginPage.qml", {});
|
||||
pageStack.replace("qrc:/imports/NeoChat/Page/WelcomePage.qml", {});
|
||||
} else {
|
||||
roomManager.roomList = pageStack.replace(roomListComponent, {'activeConnection': Controller.activeConnection});
|
||||
roomManager.loadInitialRoom();
|
||||
}
|
||||
}
|
||||
|
||||
function onConnectionAdded() {
|
||||
if (Controller.accountCount === 1) {
|
||||
if (Controller.busy) {
|
||||
pageStack.replace("qrc:/imports/NeoChat/Page/LoadingPage.qml");
|
||||
} else {
|
||||
roomManager.roomList = pageStack.replace(roomListComponent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onBusyChanged() {
|
||||
if(!Controller.busy && roomManager.roomList === null) {
|
||||
roomManager.roomList = pageStack.replace(roomListComponent);
|
||||
@@ -286,7 +282,7 @@ Kirigami.ApplicationWindow {
|
||||
function onConnectionDropped() {
|
||||
if (Controller.accountCount === 0) {
|
||||
pageStack.clear();
|
||||
pageStack.replace("qrc:/imports/NeoChat/Page/LoginPage.qml");
|
||||
pageStack.replace("qrc:/imports/NeoChat/Page/WelcomePage.qml");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user