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:
Tobias Fella
2021-02-07 21:23:31 +00:00
parent e7bada4cde
commit 464c48540e
21 changed files with 779 additions and 159 deletions

View File

@@ -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");
}
}