backendless
Version:
Backendless JavaScript SDK for Node.js and the browser
72 lines (55 loc) • 1.81 kB
JavaScript
export class SocialContainer {
constructor(socialType, container) {
this.socialType = socialType
this.container = container
if (container) {
this.processContainer()
} else {
this.createContainer()
}
}
processContainer() {
let client
const container = this.container[0] || this.container
const loadingMsg = document.createElement('div')
loadingMsg.innerHTML = 'Loading...'
container.appendChild(loadingMsg)
container.style.cursor = 'wait'
this.closeContainer = () => {
container.style.cursor = 'default'
container.removeChild(client)
}
this.removeLoading = () => {
container.removeChild(loadingMsg)
}
this.doAuthorizationActivity = url => {
this.removeLoading()
client = document.createElement('iframe')
client.frameBorder = 0
client.width = container.style.width
client.height = container.style.height
client.id = 'SocialAuthFrame'
client.setAttribute('src', url + '&output=embed')
container.appendChild(client)
client.onload = () => {
container.style.cursor = 'default'
}
}
}
createContainer() {
const container = window.open('', this.socialType + ' authorization',
'resizable=yes, scrollbars=yes, titlebar=yes, top=10, left=10')
const body = container.document.getElementsByTagName('body')[0]
body.innerHTML = 'Loading...'
container.document.getElementsByTagName('html')[0].style.cursor = 'wait'
this.closeContainer = function() {
container.close()
}
this.doAuthorizationActivity = function(url) {
container.location.href = url
container.onload = function() {
container.document.getElementsByTagName('html')[0].style.cursor = 'default'
}
}
}
}