|
|
|
|
|
|
|
var AppSettingsMixin = require('../common/AppSettingsMixin.js');
|
|
|
|
var EventListenerMixin = require('../common/EventListenerMixin.js');
|
|
|
|
|
|
|
|
module.exports = ProfileMixin = {
|
|
|
|
mixins: [
|
|
|
|
AppSettingsMixin,
|
|
|
|
EventListenerMixin('profileupdatebyuser'),
|
|
|
|
EventListenerMixin('avatarupdatebyuser'),
|
|
|
|
],
|
|
|
|
onprofileupdatebyuser: function(event){
|
|
|
|
//console.log("catched event",this.state.username,event.detail)
|
|
|
|
var profile =event.detail;
|
|
|
|
if(profile.getUsername()==this.state.username){
|
|
|
|
this.setState(function(state){
|
|
|
|
state.fullname = profile.getField("fullname");
|
|
|
|
state.bio = profile.getField("bio");
|
|
|
|
state.location = profile.getField("location");
|
|
|
|
state.url = profile.getField("url");
|
|
|
|
return state;
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
onavatarupdatebyuser: function(event){
|
|
|
|
//console.log("catched event",this.state.username,event.detail)
|
|
|
|
var avatar =event.detail;
|
|
|
|
if(avatar.getUsername()==this.state.username){
|
|
|
|
this.setState(function(state){
|
|
|
|
state.avatar = avatar.getUrl();
|
|
|
|
return state;
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
getInitialState: function() {
|
|
|
|
|
|
|
|
var username = this.props.username;
|
|
|
|
|
|
|
|
if (!username) {
|
|
|
|
|
|
|
|
username = (this.context.router.getCurrentParams().username ? this.context.router.getCurrentParams().username : this.props.activeAccount);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var state = {
|
|
|
|
username: username,
|
|
|
|
avatar: "img/genericPerson.png",
|
|
|
|
fullname: "",
|
|
|
|
bio: "",
|
|
|
|
location: "",
|
|
|
|
url: ""
|
|
|
|
};
|
|
|
|
|
|
|
|
var profile = Twister.getUser(username).getProfile();
|
|
|
|
|
|
|
|
if (profile.inCache()) {
|
|
|
|
|
|
|
|
state.fullname = profile.getField("fullname");
|
|
|
|
state.bio = profile.getField("bio");
|
|
|
|
state.location = profile.getField("location");
|
|
|
|
state.url = profile.getField("url");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
var avatar = Twister.getUser(username).getAvatar();
|
|
|
|
|
|
|
|
if (avatar.inCache()) {
|
|
|
|
|
|
|
|
state.avatar = avatar.getUrl();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return state;
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
updateProfile: function () {
|
|
|
|
|
|
|
|
var thisComponent = this;
|
|
|
|
|
|
|
|
Twister.getUser(this.state.username).doAvatar(function(avatar){
|
|
|
|
if (avatar.getUrl()) {
|
|
|
|
thisComponent.setStateSafe({avatar: avatar.getUrl()});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
Twister.getUser(this.state.username).doProfile(function(profile){
|
|
|
|
thisComponent.setStateSafe({
|
|
|
|
fullname: profile.getField("fullname"),
|
|
|
|
bio: profile.getField("bio"),
|
|
|
|
location: profile.getField("location"),
|
|
|
|
url: profile.getField("url"),
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
},
|
|
|
|
componentDidMount: function () {
|
|
|
|
|
|
|
|
this.updateProfile();
|
|
|
|
|
|
|
|
this.setInterval(this.updateProfile,this.state.appSettings.pollIntervalProfile*1000);
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|