dynamic react router
This commit is contained in:
64
client/dashboard/house/house.component.js
Normal file
64
client/dashboard/house/house.component.js
Normal file
@@ -0,0 +1,64 @@
|
||||
import React from 'react';
|
||||
import Templates from 'config/templates';
|
||||
import House from './../../models/house';
|
||||
import {RouteHelper} from './../routes';
|
||||
import EnergyComponent from './../energy/energy.component';
|
||||
import PowerComponent from './../power/power.component';
|
||||
|
||||
class HouseComponent extends React.Component {
|
||||
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.renders = 0;
|
||||
}
|
||||
|
||||
setParam(event){
|
||||
var house_component = this,
|
||||
house = house_component.context.house,
|
||||
param = event.target.dataset.param,
|
||||
value = event.target.dataset.value,
|
||||
update = {}, route_helper;
|
||||
update[param] = value;
|
||||
route_helper = new RouteHelper(house, house_component.props, update);
|
||||
if (route_helper.routeUpdated()){
|
||||
route_helper.updateHouseState();
|
||||
if (house_component.renders < 10){
|
||||
house_component.context.router.push(route_helper.newRoute());
|
||||
house_component.renders += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
graphSelected(){
|
||||
var house_component = this;
|
||||
return RouteHelper.graphSelected(house_component.props.routes);
|
||||
}
|
||||
|
||||
tableSelected(){
|
||||
var house_component = this;
|
||||
return RouteHelper.tableSelected(house_component.props.routes);
|
||||
}
|
||||
|
||||
energySelected(){
|
||||
var house_component = this;
|
||||
return RouteHelper.energySelected(house_component.props.routes);
|
||||
}
|
||||
|
||||
powerSelected(){
|
||||
var house_component = this;
|
||||
return RouteHelper.powerSelected(house_component.props.routes);
|
||||
}
|
||||
|
||||
render() {
|
||||
var houseRt = Templates.forComponent('house');
|
||||
return houseRt.call(this);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
HouseComponent.contextTypes = {
|
||||
house: React.PropTypes.instanceOf(House),
|
||||
router: React.PropTypes.object.isRequired
|
||||
};
|
||||
|
||||
export default HouseComponent;
|
||||
Reference in New Issue
Block a user