mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-10 17:49:58 +00:00
Re-use open popup when requesting a new session
This commit is contained in:
@@ -126,12 +126,21 @@ cast.requestSession = (
|
||||
return;
|
||||
}
|
||||
|
||||
// Already requesting session
|
||||
if (state.sessionRequestInProgress) {
|
||||
errorCallback(new Error_(ErrorCode.INVALID_PARAMETER
|
||||
, "Session request already in progress."));
|
||||
return;
|
||||
}
|
||||
|
||||
// No available receivers
|
||||
if (!state.receiverList.length) {
|
||||
errorCallback(new Error_(ErrorCode.RECEIVER_UNAVAILABLE));
|
||||
return;
|
||||
}
|
||||
|
||||
state.sessionRequestInProgress = true;
|
||||
|
||||
sessionSuccessCallback = successCallback;
|
||||
sessionErrorCallback = errorCallback;
|
||||
|
||||
@@ -218,6 +227,7 @@ onMessage(message => {
|
||||
});
|
||||
|
||||
state.apiConfig.sessionListener(session);
|
||||
state.sessionRequestInProgress = false;
|
||||
sessionSuccessCallback(session, message.data.selectedMedia);
|
||||
}
|
||||
];
|
||||
@@ -256,6 +266,17 @@ onMessage(message => {
|
||||
|
||||
break;
|
||||
};
|
||||
|
||||
/**
|
||||
* Popup closed before session established.
|
||||
*/
|
||||
case "shim:popupClosed": {
|
||||
if (state.sessionRequestInProgress) {
|
||||
state.sessionRequestInProgress = false;
|
||||
sessionErrorCallback(new Error_(ErrorCode.CANCEL));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
// Global API state
|
||||
const state = {
|
||||
apiConfig: null
|
||||
, receiverList: []
|
||||
, sessionList: []
|
||||
};
|
||||
|
||||
export default state;
|
||||
"use strict";
|
||||
|
||||
// Global API state
|
||||
const state = {
|
||||
apiConfig: null
|
||||
, receiverList: []
|
||||
, sessionList: []
|
||||
, sessionRequestInProgress: false
|
||||
};
|
||||
|
||||
export default state;
|
||||
|
||||
Reference in New Issue
Block a user