mirror of https://github.com/vector-im/riot-web
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
|
"use strict";
|
||
|
var MatrixClientPeg = require("./MatrixClientPeg");
|
||
|
var dis = require("./dispatcher");
|
||
|
|
||
|
class Register {
|
||
|
|
||
|
}
|
||
|
|
||
|
class Login {
|
||
|
constructor(hsUrl, isUrl) {
|
||
|
this._hsUrl = hsUrl;
|
||
|
this._isUrl = isUrl;
|
||
|
this._currentFlowIndex = 0;
|
||
|
this._flows = [];
|
||
|
}
|
||
|
|
||
|
getFlows() {
|
||
|
var self = this;
|
||
|
// feels a bit wrong to be clobbering the global client for something we
|
||
|
// don't even know if it'll work, but we'll leave this here for now to
|
||
|
// not complicate matters further. It would be nicer to isolate this
|
||
|
// logic entirely from the rest of the app though.
|
||
|
MatrixClientPeg.replaceUsingUrls(
|
||
|
this._hsUrl,
|
||
|
this._isUrl
|
||
|
);
|
||
|
return MatrixClientPeg.get().loginFlows().then(function(result) {
|
||
|
self._flows = result.flows;
|
||
|
self._currentFlowIndex = 0;
|
||
|
// technically the UI should display options for all flows for the
|
||
|
// user to then choose one, so return all the flows here.
|
||
|
return self._flows;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
chooseFlow(flowIndex) {
|
||
|
this._currentFlowIndex = flowIndex;
|
||
|
}
|
||
|
|
||
|
getCurrentFlowStep() {
|
||
|
// technically the flow can have multiple steps, but no one does this
|
||
|
// for login so we can ignore it.
|
||
|
var flowStep = this._flows[this._currentFlowIndex];
|
||
|
return flowStep ? flowStep.type : null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports.Register = Register;
|
||
|
module.exports.Login = Login;
|