Sha256: 75f7f79b60bb61c641f1f2fc6a80120d2a2c0560af3da285f874ab3bec0a13c8
Contents?: true
Size: 1.66 KB
Versions: 1
Compression:
Stored size: 1.66 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} filter={this.state.filter} /> </div> ); } });
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
disco_app-0.8.9 | app/assets/javascripts/disco_app/components/filterable_shop_list.js.jsx |