import React, { PropTypes } from 'react' import { connect } from 'react-redux' import { Link } from 'react-router' import { createStore, bindActionCreators } from 'redux' import FontAwesome from 'react-fontawesome' import Thumbnail from './Thumbnail' import * as actions from '../services/spotify/actions' class SpotifyAuthenticationFrame extends React.Component{ constructor(props) { super(props); this.state = { frameUrl: '//jamesbarnsley.co.nz/spotmop.php?action=frame', authorizing: false } } componentDidMount(){ let self = this; // listen for incoming messages from the authorization iframe // this is triggered when authentication is granted from the popup window.addEventListener('message', function(event){ // only allow incoming data from our authorized authenticator proxy if( !/^https?:\/\/jamesbarnsley\.co\.nz/.test(event.origin) ) return false; var data = JSON.parse(event.data); self.props.actions.authorizationGranted( data ); self.props.actions.getMe(); // and turn off our authorizing switch self.setState({ frameUrl: '//jamesbarnsley.co.nz/spotmop.php?action=frame', authorizing: false }) }, false); } startAuthorization(){ this.setState({ frameUrl: '//jamesbarnsley.co.nz/spotmop.php?action=authorize&app='+location.protocol+'//'+window.location.host, authorizing: true }) } renderMe(){ if( !this.props.spotify.me ) return null; return (