Skip to content

Commit ca6c6c2

Browse files
authored
feat: Filter out bad data for LCM table (#860)
* feat: Filter out bad data for LCM table * feat: Filter out bad data for LCM table * feat: Filter out bad data for LCM table * Merge
1 parent 4ff91d0 commit ca6c6c2

File tree

6 files changed

+50
-14
lines changed

6 files changed

+50
-14
lines changed

package-lock.json

Lines changed: 41 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
"regenerator-runtime": "0.13.7",
6767
"universal-cookie": "4.0.4",
6868
"url": "0.11.0",
69+
"uuid": "9.0.0",
6970
"validator": "10.11.0"
7071
},
7172
"peerDependencies": {
@@ -95,4 +96,4 @@
9596
"react-test-renderer": "16.13.1",
9697
"resize-observer-polyfill": "1.5.1"
9798
}
98-
}
99+
}

src/components/learner-credit-management/EmailAddressTableCell.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ EmailAddressTableCell.propTypes = {
5959
row: PropTypes.shape({
6060
original: PropTypes.shape({
6161
userEmail: PropTypes.string,
62-
enterpriseEnrollmentId: PropTypes.number.isRequired,
62+
enterpriseEnrollmentId: PropTypes.number,
6363
}),
6464
}).isRequired,
6565
enterpriseUUID: PropTypes.string.isRequired,

src/components/learner-credit-management/LearnerCreditAllocationTable.jsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ const LearnerCreditAllocationTable = ({
1818
enterpriseUUID,
1919
}) => {
2020
const isDesktopTable = useMediaQuery({ minWidth: breakpoints.extraLarge.minWidth });
21-
2221
return (
2322
<DataTable
2423
isSortable
@@ -55,7 +54,7 @@ const LearnerCreditAllocationTable = ({
5554
},
5655
]}
5756
initialTableOptions={{
58-
getRowId: row => row.enterpriseEnrollmentId.toString(),
57+
getRowId: row => row?.uuid?.toString(),
5958
}}
6059
initialState={{
6160
pageSize: PAGE_SIZE,
@@ -85,7 +84,7 @@ LearnerCreditAllocationTable.propTypes = {
8584
isLoading: PropTypes.bool.isRequired,
8685
tableData: PropTypes.shape({
8786
results: PropTypes.arrayOf(PropTypes.shape({
88-
userEmail: PropTypes.string.isRequired,
87+
userEmail: PropTypes.string,
8988
courseTitle: PropTypes.string.isRequired,
9089
courseListPrice: PropTypes.number.isRequired,
9190
enrollmentDate: PropTypes.string.isRequired,

src/components/learner-credit-management/data/utils.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
import { v4 as uuidv4 } from 'uuid';
12
import {
23
LOW_REMAINING_BALANCE_PERCENT_THRESHOLD,
34
NO_BALANCE_REMAINING_DOLLAR_THRESHOLD,
45
} from './constants';
5-
66
/**
77
* Transforms offer summary from API for display in the UI, guarding
88
* against bad data (e.g., accounting for refunds).
@@ -45,6 +45,7 @@ export const transformOfferSummary = (offerSummary) => {
4545
/**
4646
* Transforms enrollment data from analytics api to fields for display
4747
* in learner credit allocation table.
48+
* A uuid is added to each enrollment to be used as a key for the table.
4849
*
4950
* @param {array} results List of raw enrollment results from API.
5051
*
@@ -57,6 +58,7 @@ export const transformUtilizationTableResults = results => results.map(result =>
5758
courseTitle: result.courseTitle,
5859
courseListPrice: result.courseListPrice,
5960
enrollmentDate: result.enrollmentDate,
61+
uuid: uuidv4(),
6062
}));
6163

6264
/**

src/components/learner-credit-management/tests/LearnerCreditManagement.test.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ describe('<LearnerCreditManagement />', () => {
139139
courseTitle: 'edX Demonstration Course',
140140
courseListPrice: 100,
141141
enrollmentDate: '2022-01-01',
142+
uuid: '123abc-abc123',
142143
};
143144
const subsidiesContextValue = {
144145
offers: [mockOffer],

0 commit comments

Comments
 (0)