Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/grading-settings/grading-scale/GradingScale.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ const GradingScale = ({
idx={idx}
handleLetterChange={handleLetterChange}
letters={letters}
totalSegments={gradingSegments.length}
/>
))}
{handles.map(({ value, getHandleProps }, idx) => (
Expand Down
12 changes: 6 additions & 6 deletions src/grading-settings/grading-scale/GradingScale.scss
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,12 @@
display: none;
}

@each $key, $color in $grading-scale-segment-colors {
&.segment-#{$key} {
background-color: $color;
z-index: #{$key};
}
}
// @each $key, $color in $grading-scale-segment-colors {
// &.segment-#{$key} {
// background-color: $color;
// z-index: #{$key};
// }
// }

&:hover .grading-scale-segment-btn-remove {
display: block;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Button } from '@openedx/paragon';
import React, { ChangeEvent } from 'react';
import messages from '../messages';

import { getLettersOnLongScale, getLettersOnShortScale } from '../utils';
import { getLettersOnLongScale, getLettersOnShortScale, setGradeSegmentColor } from '../utils';

interface RangeSegment {
previous: number,
Expand All @@ -18,6 +18,7 @@ interface GradingScaleSegmentProps {
letters: [string],
gradingSegments: RangeSegment[],
removeGradingSegment: (idx: number) => void,
totalSegments: number,
}

const GradingScaleSegment = ({
Expand All @@ -28,17 +29,22 @@ const GradingScaleSegment = ({
letters,
gradingSegments,
removeGradingSegment,
totalSegments
}: GradingScaleSegmentProps) => {
const intl = useIntl();
const prevValue = gradingSegments[idx === 0 ? 0 : idx - 1]?.previous ?? 0;
const segmentRightMargin = (value - prevValue) < 6 ? '0.125rem' : '1.25rem';
return (
<div
key={value}
className={`grading-scale-segment segment-${idx - 1}`}
data-testid="grading-scale-segment"
{...getSegmentProps()}
>
<div
key={value}
className={`grading-scale-segment`}
data-testid={`grading-scale-segment`}
{...getSegmentProps()}
style={{
...getSegmentProps().style,
backgroundColor: setGradeSegmentColor(idx, totalSegments),
}}
>
<div
className="grading-scale-segment-content"
style={{
Expand Down
13 changes: 13 additions & 0 deletions src/grading-settings/grading-scale/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,16 @@ export const convertGradeData = (letters, gradingSegments, setConvertedResult) =

setConvertedResult(convertedData);
};

/**
* Determines hue(range 0–130) and saturation value of grade segment
*
* @param {number} index - The current grade letter index.
* @param {number} total - Configured total number of grade letters.
* @returns {string} - css hsla function call with hue and saturation values set for a grade segment
*/
export const setGradeSegmentColor = (index, total) => {
const hue = ((total-index) / (total - 1)) * 130;
const saturation = index % 2 === 0 ? 100 : 50;
return `hsla(${hue}, ${saturation}%, 50%, 1)`;
};
29 changes: 22 additions & 7 deletions src/grading-settings/scss/_variables.scss
Original file line number Diff line number Diff line change
@@ -1,7 +1,22 @@
$grading-scale-segment-colors: (
0: #87D771,
1: #FDE370,
2: #F6BF58,
3: #FF7E6A,
4: #E94949,
);
// $grading-scale-segment-colors: (
// 0: #0099B1,
// 1: #00B7D3,
// 2: #95D4DC,
// 3: #27B173,
// 4: #2ED389,
// 5: #93DBAF,
// 6: #D4BE17,
// 7: #F6DD1B,
// 8: #FFF2BB,
// 9: #F67B00,
// 10: #FF9B3B,
// 11: #E23900
// );

// $grading-scale-segment-colors: (
// 0: #87D771,
// 1: #FDE370,
// 2: #F6BF58,
// 3: #FF7E6A,
// 4: #E94949,
// );