Sha256: 66f3d3482e3a01faeda3eb0b99c9d14dd817bc55eaa1f0330ae7163251afca4e

Contents?: true

Size: 1.71 KB

Versions: 2

Compression:

Stored size: 1.71 KB

Contents

var FilterableShopList = React.createClass({

    getDefaultProps: function() {
        return {
            filterTabs: [
                { label: 'All Shops', filter: {} },
                { label: 'Installed', filter: { 'filter[status]': 'installed' } },
                { label: 'Uninstalled', filter: { 'filter[status]': 'uninstalled' } }
            ],
            availableFilters: {
                'filter[status]': {
                    getLabel: function(value) {
                        return 'Status is ' + value;
                    }
                }
            }
        }
    },

    getInitialState: function() {
        return {
            filter: {}
        };
    },

    onFilterReplace: function(filter) {
        this.setState({
            filter: filter
        });
    },

    onFilterSet: function(name, value) {
        this.onFiltersSet([{
            name: name,
            value: value
        }]);
    },

    onFiltersSet: function(filters) {
        var nextFilter = $.extend({}, this.state.filter);
        filters.forEach(function(filter) {
            if(!filter.value) {
                delete nextFilter[filter.name];
            } else {
                nextFilter[filter.name] = filter.value;
            }
        });
        this.onFilterReplace(nextFilter);
    },

    render: function() {
        return (
            <div className="next-card">
              <ShopFilterTabs filterTabs={this.props.filterTabs} filter={this.state.filter} onFilterReplace={this.onFilterReplace} />
              <ShopList shopsUrl={this.props.shopsUrl} editShopUrl={this.props.editShopUrl} editSubscriptionUrl={this.props.editSubscriptionUrl} filter={this.state.filter} />
            </div>
        );
    }

});

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
disco_app-0.9.0 app/assets/javascripts/disco_app/components/custom/filterable_shop_list.js.jsx
disco_app-0.9.1 app/assets/javascripts/disco_app/components/custom/filterable_shop_list.js.jsx