Skip to content

Commit c3e2c40

Browse files
authored
chore: add optional to peer (#139)
* chore: add optional to peer * chore: fix progress bar styling issue * chore: fix test
1 parent 53f9cb1 commit c3e2c40

File tree

8 files changed

+24
-15
lines changed

8 files changed

+24
-15
lines changed

src/components/ModalActions/messages.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ const messages = defineMessages({
5959
},
6060
peerResponse: {
6161
id: 'ora-mfe.ModalActions.peerResponse',
62-
defaultMessage: 'peer response',
62+
defaultMessage: 'peer',
6363
description: 'Peer type of response for "Load(ing/ed) next <type>" action',
6464
},
6565
practiceResponse: {

src/components/ProgressBar/index.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@
5454
}
5555
}
5656

57-
@include media-breakpoint-up(md) {
57+
@include media-breakpoint-down(md) {
5858
.navbar-expand-lg .ora-progress-nav-group {
59-
@extend navbar-collapse-definition !optional;
59+
@include navbar-collapse-definition;
6060
}
6161
}
6262

6363
@include media-breakpoint-down(sm) {
6464
.navbar-expand-md .ora-progress-nav-group {
65-
@extend navbar-collapse-definition !optional;
65+
@include navbar-collapse-definition;
6666
}
6767
}

src/components/StepProgressIndicator/index.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ const StepProgressIndicator = ({ step }) => {
5555
&& !(step === stepNames.peer && stepInfo[step].isWaitingForSubmissions)
5656
&& !(step === stepNames.studentTraining && needed === done);
5757

58+
if (stepNames.peer === step && done >= needed) {
59+
loadNextAction.action.labels.default = formatMessage(messages.gradeNextPeerOptional);
60+
}
5861
return (
5962
<div className={className}>
6063
{formatMessage(messages.progress, { needed, done })}

src/components/StepProgressIndicator/messages.js

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,10 @@ const messages = defineMessages({
66
description: 'Progress indicator for assessments steps with multiple assessments',
77
id: 'frontend-app-ora.StepProgressIndicator.progress',
88
},
9-
gradeNextPeer: {
10-
defaultMessage: 'Grade next peer',
11-
description: 'Progress indicator action button text to load next peer assessment',
12-
id: 'frontend-app-ora.StepProgressIndicator.gradeNextPeer',
13-
},
14-
loadNextPractice: {
15-
defaultMessage: 'Load next practice response',
16-
description: 'Progress indicator action button text to load next practice assessment',
17-
id: 'frontend-app-ora.StepProgressIndicator.loadNextPractice',
9+
gradeNextPeerOptional: {
10+
defaultMessage: 'Grade next peer(optional)',
11+
description: 'When peer response is optional',
12+
id: 'frontend-app-ora.StepProgressIndicator.optional',
1813
},
1914
});
2015

src/hooks/actions/messages.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ const messages = defineMessages({
7474
},
7575
peerResponse: {
7676
id: 'frontend-app-ora.Actions.peerResponse',
77-
defaultMessage: 'peer response',
77+
defaultMessage: 'peer',
7878
description: 'Peer type of response for "Load(ing/ed) next <type>" action',
7979
},
8080
practiceResponse: {

src/test/smoke.test.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jest.mock('axios', () => ({
4242
...jest.requireActual('axios'),
4343
get: jest.fn().mockResolvedValue({ data: 'fake file data' }),
4444
}));
45+
jest.mock('components/HotjarSurvey', () => 'HotjarSurvey');
4546

4647
jest.unmock('react');
4748
jest.unmock('@edx/paragon');

src/views/XBlockView/Actions/index.jsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { useIntl } from '@edx/frontend-platform/i18n';
77
import { useLoadNextAction } from 'hooks/actions';
88
import { stepNames, stepStates } from 'constants/index';
99
import {
10+
useAssessmentStepConfig,
1011
useGlobalState,
1112
useStepInfo,
1213
} from 'hooks/app';
@@ -27,6 +28,8 @@ const SubmissionActions = () => {
2728
const { formatMessage } = useIntl();
2829
const stepInfo = useStepInfo()[activeStepName];
2930
const loadNextAction = useLoadNextAction();
31+
const stepConfigInfo = useAssessmentStepConfig().settings[activeStepName];
32+
3033
const action = (() => {
3134
if (
3235
[stepNames.studentTraining, stepNames.peer].includes(activeStepName)
@@ -35,9 +38,11 @@ const SubmissionActions = () => {
3538
&& !stepInfo.isWaitingForSubmissions
3639
) {
3740
const onClick = () => openModal({ view: activeStepName, title: activeStepName });
41+
const isOptional = activeStepName === stepNames.peer
42+
&& stepInfo.numberOfAssessmentsCompleted >= stepConfigInfo.minNumberToGrade;
3843
return (
3944
<Button className="mb-3" onClick={onClick} iconBefore={stepIcons[activeStepName]}>
40-
{loadNextAction.action.labels.default}
45+
{loadNextAction.action.labels.default}{isOptional && formatMessage(messages.optional)}
4146
</Button>
4247
);
4348
}

src/views/XBlockView/Actions/messages.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ const messages = defineMessages({
2828
description: 'Xblock view action button for done step to view grades',
2929
id: 'frontend-app-ora.XBlockView.Actions.done',
3030
},
31+
optional: {
32+
id: 'ora-mfe.ModalActions.optionalPeerResponse',
33+
defaultMessage: '(optional)',
34+
description: 'When peer response is optional',
35+
},
3136
});
3237

3338
export default messages;

0 commit comments

Comments
 (0)