Skip to content

Commit d018445

Browse files
committed
WEB-4460 add in table columns
1 parent f37775c commit d018445

1 file changed

Lines changed: 75 additions & 12 deletions

File tree

app/pages/clinicworkspace/TideDashboardV2/useTableColumns.js

Lines changed: 75 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
1-
import React from 'react';
1+
import React, { useMemo } from 'react';
2+
import { useSelector } from 'react-redux';
23
import { useTranslation } from 'react-i18next';
4+
import { CATEGORY } from './FilterByCategory';
5+
import { MGDL_UNITS } from '../../../core/constants';
6+
import mapValues from 'lodash/mapValues';
7+
import { utils as vizUtils } from '@tidepool/viz';
8+
const { DEFAULT_BG_BOUNDS } = vizUtils.constants;
39

410
import {
511
PatientCell,
@@ -115,21 +121,78 @@ const getColumnTypes = (t, category, thresholds) => ({
115121
}, // More
116122
});
117123

124+
const getFormattedThresholds = (clinicBgUnits) => {
125+
const thresholds = DEFAULT_BG_BOUNDS[clinicBgUnits];
126+
const precision = clinicBgUnits === MGDL_UNITS ? 0 : 1;
127+
128+
return mapValues(thresholds, value => value.toFixed(precision));
129+
};
130+
118131
const useTableColumns = (category) => {
119132
const { t } = useTranslation();
133+
const selectedClinicId = useSelector((state) => state.blip.selectedClinicId);
134+
const clinic = useSelector(state => state.blip.clinics?.[selectedClinicId]);
135+
const clinicBgUnits = clinic?.preferredBgUnits || MGDL_UNITS;
136+
137+
const columns = useMemo(() => {
138+
const thresholds = getFormattedThresholds(clinicBgUnits);
139+
const columnTypes = getColumnTypes(t, category, thresholds);
140+
141+
const standardColumnSet = [
142+
columnTypes.patientDetails,
143+
columnTypes.flag,
144+
columnTypes.avgGlucose,
145+
columnTypes.timeInRangeBarChart,
146+
columnTypes.changeInTIR,
147+
columnTypes.gmi,
148+
columnTypes.cgmUse,
149+
columnTypes.tags,
150+
columnTypes.lastReviewed,
151+
columnTypes.moreMenu,
152+
];
153+
154+
const lowColumnSet = [
155+
columnTypes.patientDetails,
156+
columnTypes.flag,
157+
columnTypes.avgGlucose,
158+
columnTypes.timeInVeryLow,
159+
columnTypes.timeInAnyLow,
160+
columnTypes.timeInTarget,
161+
columnTypes.timeInRangeBarChart,
162+
columnTypes.changeInTIR,
163+
columnTypes.tags,
164+
columnTypes.lastReviewed,
165+
columnTypes.moreMenu,
166+
];
167+
168+
const highColumnSet = [
169+
columnTypes.patientDetails,
170+
columnTypes.flag,
171+
columnTypes.avgGlucose,
172+
columnTypes.timeInVeryHigh,
173+
columnTypes.timeInAnyHigh,
174+
columnTypes.timeInTarget,
175+
columnTypes.timeInRangeBarChart,
176+
columnTypes.changeInTIR,
177+
columnTypes.tags,
178+
columnTypes.lastReviewed,
179+
columnTypes.moreMenu,
180+
];
120181

121-
const columnTypes = getColumnTypes(t, category);
182+
switch(category) {
183+
case CATEGORY.DEFAULT: return standardColumnSet;
184+
case CATEGORY.VERY_LOW: return lowColumnSet;
185+
case CATEGORY.ANY_LOW: return lowColumnSet;
186+
case CATEGORY.DROP_IN_TIR: return standardColumnSet;
187+
case CATEGORY.ANY_HIGH: return highColumnSet;
188+
case CATEGORY.VERY_HIGH: return highColumnSet;
189+
case CATEGORY.LOW_CGM_WEAR: return standardColumnSet;
190+
case CATEGORY.TARGET: return standardColumnSet;
191+
default: return standardColumnSet;
192+
}
193+
}, [category, clinicBgUnits]);
122194

123-
return [
124-
columnTypes.patientDetails,
125-
columnTypes.placeholder,
126-
columnTypes.placeholder,
127-
columnTypes.placeholder,
128-
columnTypes.placeholder,
129-
columnTypes.placeholder,
130-
columnTypes.placeholder,
131-
columnTypes.placeholder,
132-
];
195+
return columns;
133196
};
134197

135198
export default useTableColumns;

0 commit comments

Comments
 (0)