Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var ListItem = React.createClass({
  2.     onSelect : function() {
  3.         this.props.onSelect(this.props.user);
  4.     },
  5.     render : function() {
  6.         return (
  7.             <li onClick={this.onSelect} className={this.props.isSelected ? "selected" : ""}>
  8.                                 {this.props.user.firstname} {this.props.user.lastname}
  9.             </li>
  10.         )
  11.     }
  12. });
  13.  
  14. var List = React.createClass({
  15.     render : function() {
  16.         var users = this.props.users.map(function(user) {
  17.             return <ListItem
  18.                 user={user}
  19.                 isSelected={this.props.selected === user}
  20.                 onSelect={this.props.onSelectItem} />
  21.         }, this);
  22.  
  23.         return (
  24.             <ul className="list">{users}</ul>
  25.         );
  26.     }
  27. });
  28.  
  29. var App = React.createClass({
  30.     getInitialState : function() {
  31.         return { selected : null }
  32.     },
  33.     onSelectListItem: function(user) {
  34.         this.setState({selected: user === this.state.selected ? null : user});
  35.     },
  36.     render: function() {
  37.         return (
  38.             <div>
  39.                 <List selected={this.state.selected}
  40.                     users={this.props.users}
  41.                     onSelectItem={this.onSelectListItem} />
  42.                 <Details selected={this.state.selected} />
  43.             </div>
  44.         );
  45.     }
  46. });
  47.  
  48.  
  49. var users = [];
  50. for(var i = 0; i < 40; i += 1) {
  51.     users.push({
  52.         firstname : faker.name.firstName(),
  53.         lastname : faker.name.lastName(),
  54.         email : faker.internet.email()
  55.     });
  56. }
  57.  
  58. React.render(
  59.     <App users={users} />,
  60.     document.body
  61. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement