|
1 | 1 | import {FilterInput} from "./FilterInput.react";
|
2 |
| - |
| 2 | +import {FilterButton} from "./FilterButton.react"; |
| 3 | +import {FilterGroup} from "./FilterGroup.react"; |
| 4 | +import { FilterList } from "../FilterList/FilterList.react"; |
3 | 5 | export class FilterDisplay extends React.Component {
|
4 | 6 | constructor(props) {
|
5 | 7 | super(props);
|
@@ -35,35 +37,68 @@ export class FilterDisplay extends React.Component {
|
35 | 37 | }
|
36 | 38 |
|
37 | 39 | getStateFromStores() {
|
| 40 | + console.log("FilterDisplay", this.context.filterBarStore); |
38 | 41 | return {
|
39 | 42 | filters: this.context.filterBarStore.getEnabled()
|
40 | 43 | };
|
41 | 44 | }
|
42 | 45 |
|
| 46 | + getActiveFilters() { |
| 47 | + return this.context.filterBarStore.getActiveFilters(); |
| 48 | + } |
| 49 | + |
| 50 | + getFilters() { |
| 51 | + return this.context.filterBarStore.getFilters(); |
| 52 | + } |
| 53 | + |
43 | 54 | render() {
|
44 |
| - var filters = Object.keys(this.state.filters).map(function(filterUid) { |
45 |
| - var filter = this.state.filters[filterUid]; |
| 55 | + var filters = []; |
| 56 | + this.getActiveFilters().map(function(groupFilters, idx) { |
| 57 | + if (idx > 0) { |
| 58 | + filters.push( |
| 59 | + ( |
| 60 | + <div style={ { marginTop: 'auto', marginBottom: 'auto', padding: '10px'} }>OR</div> |
| 61 | + ) |
| 62 | + ) |
| 63 | + } |
46 | 64 |
|
47 |
| - return ( |
48 |
| - <FilterInput |
49 |
| - filterUid={filterUid} |
50 |
| - key={filterUid} |
51 |
| - label={filter.label} |
52 |
| - type={filter.type} |
53 |
| - value={filter.value} |
54 |
| - operator={filter.operator} |
55 |
| - /> |
| 65 | + filters.push( |
| 66 | + (<FilterGroup |
| 67 | + key={ idx } |
| 68 | + groupKey={ idx } |
| 69 | + filters={ groupFilters } |
| 70 | + />) |
56 | 71 | );
|
57 |
| - }, this); |
| 72 | + |
| 73 | + }) |
58 | 74 |
|
59 | 75 | if (filters.length === 0) {
|
60 |
| - filters = (<div>No Filters Enabled!</div>); |
| 76 | + filters.push(( |
| 77 | + <div style={ { marginTop: 'auto', marginBottom: 'auto', padding: '10px'} }> |
| 78 | + <FilterButton |
| 79 | + filters={ this.getFilters() } |
| 80 | + title="ADD FILTER" |
| 81 | + /> |
| 82 | + </div>) |
| 83 | + ); |
| 84 | + } else { |
| 85 | + filters.push( |
| 86 | + ( |
| 87 | + <div style={ { marginTop: 'auto', marginBottom: 'auto', padding: '10px'} }> |
| 88 | + <FilterButton |
| 89 | + filters={ this.getFilters() } |
| 90 | + title="OR" |
| 91 | + /> |
| 92 | + </div> |
| 93 | + )); |
61 | 94 | }
|
62 | 95 |
|
63 | 96 | return (
|
64 | 97 | <div className="navbar filterbar">
|
65 | 98 | <div className="panel panel-default">
|
66 |
| - {filters} |
| 99 | + <div style={ { display: 'flex', float: 'left'} }> |
| 100 | + {filters} |
| 101 | + </div> |
67 | 102 | </div>
|
68 | 103 | </div>
|
69 | 104 | );
|
|
0 commit comments