From 24ca1aa7307cc0f3913410190090b20263f3740d Mon Sep 17 00:00:00 2001 From: Adam Butterworth Date: Wed, 11 Mar 2020 11:43:17 -0400 Subject: [PATCH] Improve sequence padding and containers on mobile (#27) TNL-7072. - Refactors some of the css container/content class naming - Moved UnitNavigation out of the Sequence and into its own component. - Fixes an issue with course tabs where multi-word titles would wrap text. --- src/courseware/course/Course.jsx | 7 +- src/courseware/course/SequenceContainer.jsx | 56 ++++++------- src/courseware/sequence/Sequence.jsx | 64 ++++----------- src/courseware/sequence/Unit.jsx | 36 ++++----- src/courseware/sequence/UnitNavigation.jsx | 68 ++++++++++++++++ src/courseware/sequence/messages.js | 5 -- src/index.scss | 87 +++++++++++++++------ src/tabs/Tabs.jsx | 4 +- 8 files changed, 197 insertions(+), 130 deletions(-) create mode 100644 src/courseware/sequence/UnitNavigation.jsx diff --git a/src/courseware/course/Course.jsx b/src/courseware/course/Course.jsx index 9f3e0994..294caa75 100644 --- a/src/courseware/course/Course.jsx +++ b/src/courseware/course/Course.jsx @@ -71,7 +71,7 @@ export default function Course({ /> )} -
+
+ +
+
+ {verifiedMode && }
- {verifiedMode && } ); } diff --git a/src/courseware/course/SequenceContainer.jsx b/src/courseware/course/SequenceContainer.jsx index 6ab03dee..5b288e78 100644 --- a/src/courseware/course/SequenceContainer.jsx +++ b/src/courseware/course/SequenceContainer.jsx @@ -8,7 +8,6 @@ import { history } from '@edx/frontend-platform'; import messages from '../messages'; import PageLoading from '../../PageLoading'; import Sequence from '../sequence/Sequence'; -import AlertList from '../../user-messages/AlertList'; import { fetchSequenceMetadata, checkBlockCompletion, saveSequencePosition } from '../../data/course-blocks'; import { createSequenceIdList } from '../utils'; @@ -75,35 +74,32 @@ function SequenceContainer(props) { const isLastUnit = sequenceIds.indexOf(sequenceId) === sequenceIds.length - 1 && unitIds.indexOf(unitId) === unitIds.length - 1; return ( - <> - -
- {isLoading ? ( - - ) : ( - - )} -
- +
+ {isLoading ? ( + + ) : ( + + )} +
); } diff --git a/src/courseware/sequence/Sequence.jsx b/src/courseware/sequence/Sequence.jsx index 394775cb..6286364b 100644 --- a/src/courseware/sequence/Sequence.jsx +++ b/src/courseware/sequence/Sequence.jsx @@ -4,16 +4,14 @@ import React, { } from 'react'; import PropTypes from 'prop-types'; import { sendTrackEvent } from '@edx/frontend-platform/analytics'; -import { injectIntl, intlShape, FormattedMessage } from '@edx/frontend-platform/i18n'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faChevronLeft, faChevronRight } from '@fortawesome/free-solid-svg-icons'; -import { Button } from '@edx/paragon'; +import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import Unit from './Unit'; import SequenceNavigation from './SequenceNavigation'; import PageLoading from '../../PageLoading'; import messages from './messages'; import UserMessagesContext from '../../user-messages/UserMessagesContext'; +import UnitNavigation from './UnitNavigation'; const ContentLock = React.lazy(() => import('./content-lock')); @@ -102,7 +100,7 @@ function Sequence({ }, [activeUnitId]); return ( - <> +
-
+
{isGated && ( )} -
- {unitHasLoaded ? ( -
- - {isLastUnit ? ( -
- {/* This is a hugging face emoji */} - {' '} - {intl.formatMessage(messages['learn.end.of.course'])} -
- ) : ( - - )} -
- ) : null} - + onClickNext={() => { + logEvent('edx.ui.lms.sequence.next_selected', 'bottom'); + handleNext(); + }} + isLastUnit={isLastUnit} + /> + )} +
+
); } diff --git a/src/courseware/sequence/Unit.jsx b/src/courseware/sequence/Unit.jsx index 55030272..07975e80 100644 --- a/src/courseware/sequence/Unit.jsx +++ b/src/courseware/sequence/Unit.jsx @@ -43,26 +43,26 @@ function Unit({ }; return ( - <> -
-

{displayName}

- +

{displayName}

+ +
+