Skip to content

Commit dd76184

Browse files
feat: assessment flow update
1 parent 9dba880 commit dd76184

File tree

6 files changed

+34
-22
lines changed

6 files changed

+34
-22
lines changed

src/components/Assessment/EditableAssessment/hooks.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ const useEditableAssessmentData = () => {
2525
submitRubricMutation.mutate(currentValue);
2626
};
2727

28+
console.log({
29+
criteria,
30+
formFields,
31+
onSubmit,
32+
});
33+
2834
return {
2935
criteria,
3036
formFields,

src/components/Assessment/index.jsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,14 @@ import './Assessment.scss';
99
/**
1010
* <Assessment />
1111
*/
12-
export const Assessment = ({ assessment, getValues }) => (assessment
12+
export const Assessment = ({ assessment }) => (assessment
1313
? <ReadonlyAssessment />
14-
: <EditableAssessment getValues={getValues} />);
14+
: <EditableAssessment />);
1515

1616
Assessment.defaultProps = {
1717
assessment: null,
1818
};
1919
Assessment.propTypes = {
20-
getValues: PropTypes.func.isRequired,
2120
assessment: PropTypes.shape({
2221
optionsSelected: PropTypes.objectOf(PropTypes.string).isRequired,
2322
criterionFeedback: PropTypes.objectOf(PropTypes.string).isRequired,

src/components/AssessmentContext/index.jsx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ import { StrictDict, useKeyedState } from '@edx/react-unit-test-utils';
66
import { useEmptyRubric } from 'data/services/lms/hooks/selectors';
77

88
export const AssessmentContext = createContext({
9-
selectedOptions: {},
9+
optionsSelected: {},
1010
criterionFeedback: {},
1111
overallFeedback: '',
1212
});
1313

1414
export const stateKeys = StrictDict({
15-
selectedOptions: 'selectedOptions',
15+
optionsSelected: 'optionsSelected',
1616
criterionFeedback: 'criterionFeedback',
1717
overallFeedback: 'overallFeedback',
1818
});
@@ -21,9 +21,9 @@ export const AssessmentContextProvider = ({
2121
children,
2222
}) => {
2323
const emptyRubric = useEmptyRubric();
24-
const [selectedOptions, setSelectedOptions] = useKeyedState(
25-
stateKeys.selectedOptions,
26-
emptyRubric.selectedOptions,
24+
const [optionsSelected, setSelectedOptions] = useKeyedState(
25+
stateKeys.optionsSelected,
26+
emptyRubric.optionsSelected,
2727
);
2828
const [criterionFeedback, setCriterionFeedback] = useKeyedState(
2929
stateKeys.criterionFeedback,
@@ -36,11 +36,11 @@ export const AssessmentContextProvider = ({
3636

3737
const genCriterionData = (name) => ({
3838
options: {
39-
value: selectedOptions[name],
39+
value: optionsSelected[name],
4040
onChange: (e) => {
41-
setSelectedOptions({ ...selectedOptions, [name]: e.target.value });
41+
setSelectedOptions({ ...optionsSelected, [name]: e.target.value });
4242
},
43-
isInvalid: selectedOptions[name] === '',
43+
isInvalid: optionsSelected[name] === '',
4444
},
4545
feedback: {
4646
value: criterionFeedback[name],
@@ -52,8 +52,8 @@ export const AssessmentContextProvider = ({
5252
},
5353
});
5454

55-
const criteriaData = Object.keys(selectedOptions).reduce(
56-
({ obj, name }) => ({ ...obj, [name]: genCriterionData(name) }),
55+
const criteriaData = Object.keys(optionsSelected).reduce(
56+
(obj, name) => ({ ...obj, [name]: genCriterionData(name) }),
5757
{},
5858
);
5959

@@ -67,10 +67,10 @@ export const AssessmentContextProvider = ({
6767
}), [overallFeedback, setOverallFeedback]);
6868

6969
const currentValue = useMemo(() => ({
70-
selectedOptions,
70+
optionsSelected,
7171
criterionFeedback,
7272
overallFeedback,
73-
}), [selectedOptions, criterionFeedback, overallFeedback]);
73+
}), [optionsSelected, criterionFeedback, overallFeedback]);
7474

7575
const value = useMemo(
7676
() => ({

src/components/BaseAssessmentView/index.jsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,19 @@ import {
77
Row,
88
} from '@edx/paragon';
99

10-
import AssessmentContextProvider from 'components/AssessmentContext';
10+
import { AssessmentContextProvider } from 'components/AssessmentContext';
1111
import ProgressBar from 'components/ProgressBar';
1212
import Assessment from 'components/Assessment';
1313

14+
import { nullMethod } from 'hooks';
15+
1416
import './BaseAssessmentView.scss';
1517

1618
const BaseAssessmentView = ({
1719
children,
1820
submitAssessment,
1921
actions,
22+
getValues,
2023
}) => (
2124
<AssessmentContextProvider>
2225
<ProgressBar />
@@ -26,7 +29,7 @@ const BaseAssessmentView = ({
2629
<Col className="p-0">
2730
{children}
2831
</Col>
29-
<Assessment submitAssessment={submitAssessment} />
32+
<Assessment {...{ submitAssessment, getValues }} />
3033
</Row>
3134
</div>
3235
</div>
@@ -35,10 +38,14 @@ const BaseAssessmentView = ({
3538
</ActionRow>
3639
</AssessmentContextProvider>
3740
);
41+
BaseAssessmentView.defaultProps = {
42+
getValues: nullMethod,
43+
};
3844
BaseAssessmentView.propTypes = {
3945
children: PropTypes.node.isRequired,
4046
actions: PropTypes.arrayOf(PropTypes.node).isRequired,
4147
submitAssessment: PropTypes.func.isRequired,
48+
getValues: PropTypes.func,
4249
};
4350

4451
export default BaseAssessmentView;

src/views/PeerAssessmentView/Content.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22

33
import {
4-
useORAConfigData,
4+
usePrompts,
55
useSubmissionResponse,
66
} from 'data/services/lms/hooks/selectors';
77

@@ -10,7 +10,7 @@ import TextResponse from 'components/TextResponse';
1010
import FileUpload from 'components/FileUpload';
1111

1212
const AssessmentContent = () => {
13-
const { prompts } = useORAConfigData();
13+
const prompts = usePrompts();
1414
const response = useSubmissionResponse();
1515
return (
1616
<div>
@@ -22,7 +22,7 @@ const AssessmentContent = () => {
2222
</div>
2323
)),
2424
)}
25-
<FileUpload isReadOnly />
25+
<FileUpload isReadOnly uploadedFiles={response.uploadedFiles} />
2626
</div>
2727
);
2828
};

src/views/PeerAssessmentView/index.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import AssessmentContent from './Content';
88
export const PeerAssessmentView = () => useIsORAConfigLoaded() && (
99
<BaseAssessmentView
1010
actions={[
11-
<Button variant="secondary">Cancel</Button>,
12-
<Button>Submit</Button>,
11+
<Button variant="secondary" key="cancel">Cancel</Button>,
12+
<Button key="submit">Submit</Button>,
1313
]}
1414
submitAssessment={() => {}}
1515
>

0 commit comments

Comments
 (0)