<!DOCTYPE html>
<html>

<head>
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" />
    <link rel="stylesheet" href="style.css" />
    
    <style>
        .navbar-brand img {
            height: 20px;
        }
        
        .filtered-list .filter {
            margin-bottom: 21px;
        }
    </style>
</head>

<body>
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <div class="navbar-header">
                <a class="navbar-brand" href="#">
                    <img alt="Brand" src="http://rubix23.sketchpixy.com/imgs/homepage/bootstrapreact.png">
                </a>
            </div>
        </div>
    </nav>
    
    <div class="container" id="content"></div>
    
    <script src="http://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/react.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/react/0.13.1/JSXTransformer.js"></script>
    
    <script type="text/jsx">
        var ListItem = React.createClass({
            render: function() {
                return(
                    <li className="list-group-item">{this.props.children}</li>
                );
            }
        });
        
        var FilteredList = React.createClass({
            getInitialState: function() {
                return {
                    items: []
                };
            },
            componentDidMount: function() {
                this.setState({ items: this.props.items });
            },
            handleSearchInput: function(e) {
                var searchText = e.target.value;
                
                var filteredItems = this.props.items.filter(function(item) {
                    return item.search(searchText) > -1;
                });
                
                this.setState({ items: filteredItems });
            },
            render: function() {
                return (
                    <div className="list filtered-list">
                        <input className="filter form-control" onInput={this.handleSearchInput} type="text" placeholder="Search for..."/>
                        <ul className="list-group">
                            {this.state.items.map(function(item) {
                                return(<ListItem>{item}</ListItem>);
                            })}
                        </ul>
                    </div>
                );
            }
        });
    
        var items = [
            'apple',
            'computer',
            'windows',
            'mouse',
            'keyboard',
            'monitor',
            'smartphone'
        ];
    
        React.render(<FilteredList items={items}/>, document.getElementById('content'));
    </script>
</body>

</html>
// Code goes here

/* Styles go here */