|
1 | 1 | import Immutable from 'immutable'; |
2 | 2 | import MAX_SAFE_INTEGER from 'max-safe-integer'; |
3 | 3 | import { createSelector } from 'reselect'; |
4 | | -import { getVisibleDataColumns, getMetaData } from '../utils/dataUtils' |
| 4 | +import { getVisibleDataColumns, getDataForColumns } from '../utils/dataUtils' |
5 | 5 |
|
6 | 6 | //oy - not a fan -- refactor asap because this is no good |
7 | 7 | let localUtils = null; |
@@ -53,6 +53,9 @@ export const allColumnsSelector = createSelector( |
53 | 53 | (data) => (data.size === 0 ? [] : data.get(0).keySeq().toJSON()) |
54 | 54 | ) |
55 | 55 |
|
| 56 | +//gets the metadata columns or nothing |
| 57 | +export const metaDataColumnsSelector = state => (state.get('metadataColumns') || []) |
| 58 | + |
56 | 59 | //gets the column property objects ordered by order |
57 | 60 | export const sortedColumnPropertiesSelector = createSelector( |
58 | 61 | renderPropertiesSelector, |
@@ -129,11 +132,34 @@ export const visibleDataSelector = createSelector( |
129 | 132 | (currentPageData, visibleColumns) => getVisibleDataColumns(currentPageData, visibleColumns) |
130 | 133 | ) |
131 | 134 |
|
| 135 | +export const hiddenColumnsSelector = createSelector( |
| 136 | + visibleColumnsSelector, |
| 137 | + allColumnsSelector, |
| 138 | + metaDataColumnsSelector, |
| 139 | + (visibleColumns, allColumns, metaDataColumns) => { |
| 140 | + const removeColumns = [...visibleColumns, ...metaDataColumns]; |
| 141 | + |
| 142 | + return allColumns.filter(c => removeColumns.indexOf(c) === -1); |
| 143 | + } |
| 144 | +) |
| 145 | + |
132 | 146 | //TODO: this needs some tests |
133 | | -export const metaDataSelector = createSelector( |
| 147 | +export const hiddenDataSelector = createSelector( |
134 | 148 | currentPageDataSelector, |
135 | 149 | visibleColumnsSelector, |
136 | | - (currentPageData, visibleColumns) => getMetaData(currentPageData, visibleColumns) |
| 150 | + allColumnsSelector, |
| 151 | + metaDataColumnsSelector, |
| 152 | + (currentPageData, visibleColumns, allColumns, metaDataColumns) => { |
| 153 | + debugger; |
| 154 | + return getDataForColumns(currentPageData, keys) |
| 155 | + } |
| 156 | +) |
| 157 | + |
| 158 | +//TODO: this needs some tests |
| 159 | +export const metaDataSelector = createSelector( |
| 160 | + currentPageDataSelector, |
| 161 | + metaDataColumnsSelector, |
| 162 | + (currentPageData, metaDataColumns) => { return getDataForColumns(currentPageData, metaDataColumns) } |
137 | 163 | ) |
138 | 164 |
|
139 | 165 | //TODO: This NEEDS tests |
|
0 commit comments