-);
-
-GradingScaleSegment.propTypes = {
- intl: intlShape.isRequired,
- idx: PropTypes.number.isRequired,
- value: PropTypes.number.isRequired,
- getSegmentProps: PropTypes.func.isRequired,
- handleLetterChange: PropTypes.func.isRequired,
- removeGradingSegment: PropTypes.func.isRequired,
- gradingSegments: PropTypes.arrayOf(
- PropTypes.shape({
- current: PropTypes.number.isRequired,
- previous: PropTypes.number.isRequired,
- }),
- ).isRequired,
- letters: PropTypes.arrayOf(PropTypes.string).isRequired,
-};
-
-export default injectIntl(GradingScaleSegment);
diff --git a/src/grading-settings/grading-scale/components/GradingScaleSegment.tsx b/src/grading-settings/grading-scale/components/GradingScaleSegment.tsx
new file mode 100644
index 000000000..9cc3e059d
--- /dev/null
+++ b/src/grading-settings/grading-scale/components/GradingScaleSegment.tsx
@@ -0,0 +1,86 @@
+import { useIntl } from '@edx/frontend-platform/i18n';
+import { Button } from '@openedx/paragon';
+import React, { ChangeEvent } from 'react';
+import messages from '../messages';
+
+import { getLettersOnLongScale, getLettersOnShortScale } from '../utils';
+
+interface RangeSegment {
+ previous: number,
+ current: number,
+}
+
+interface GradingScaleSegmentProps {
+ idx: number,
+ value: number,
+ getSegmentProps: () => { [key: string]: string },
+ handleLetterChange: (event: ChangeEvent, idx: number) => void,
+ letters: [string],
+ gradingSegments: RangeSegment[],
+ removeGradingSegment: (idx: number) => void,
+}
+
+const GradingScaleSegment = ({
+ idx,
+ value,
+ getSegmentProps,
+ handleLetterChange,
+ letters,
+ gradingSegments,
+ removeGradingSegment,
+}: GradingScaleSegmentProps) => {
+ const intl = useIntl();
+ const prevValue = gradingSegments[idx === 0 ? 0 : idx - 1]?.previous ?? 0;
+ const segmentRightMargin = (value - prevValue) < 6 ? '0.125rem' : '1.25rem';
+ return (
+
+ );
+};
+
+export default GradingScaleSegment;
diff --git a/src/store.js b/src/store.js
index 661862f60..bf761aadf 100644
--- a/src/store.js
+++ b/src/store.js
@@ -10,7 +10,6 @@ import { reducer as discussionsReducer } from './pages-and-resources/discussions
import { reducer as pagesAndResourcesReducer } from './pages-and-resources/data/slice';
import { reducer as customPagesReducer } from './custom-pages/data/slice';
import { reducer as advancedSettingsReducer } from './advanced-settings/data/slice';
-import { reducer as gradingSettingsReducer } from './grading-settings/data/slice';
import { reducer as studioHomeReducer } from './studio-home/data/slice';
import { reducer as scheduleAndDetailsReducer } from './schedule-and-details/data/slice';
import { reducer as filesReducer } from './files-and-videos/files-page/data/slice';
@@ -40,7 +39,6 @@ export default function initializeStore(preloadedState = undefined) {
pagesAndResources: pagesAndResourcesReducer,
scheduleAndDetails: scheduleAndDetailsReducer,
advancedSettings: advancedSettingsReducer,
- gradingSettings: gradingSettingsReducer,
studioHome: studioHomeReducer,
models: modelsReducer,
live: liveReducer,