Skip to content

Commit

Permalink
fix: sequence container width and responsive for sequence navigation …
Browse files Browse the repository at this point in the history
…block (#1218)
  • Loading branch information
ihor-romaniuk authored Mar 13, 2024
1 parent 21698b4 commit e8d49a0
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 25 deletions.
42 changes: 22 additions & 20 deletions src/courseware/course/sequence/Sequence.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -144,27 +144,29 @@ const Sequence = ({
};

const defaultContent = (
<div className="sequence-container d-inline-flex flex-row">
<div className="sequence-container d-inline-flex flex-row w-100">
<div className={classNames('sequence w-100', { 'position-relative': shouldDisplayNotificationTriggerInSequence })}>
<SequenceNavigation
sequenceId={sequenceId}
unitId={unitId}
className="mb-4"
nextSequenceHandler={() => {
logEvent('edx.ui.lms.sequence.next_selected', 'top');
handleNext();
}}
onNavigate={(destinationUnitId) => {
logEvent('edx.ui.lms.sequence.tab_selected', 'top', destinationUnitId);
handleNavigate(destinationUnitId);
}}
previousSequenceHandler={() => {
logEvent('edx.ui.lms.sequence.previous_selected', 'top');
handlePrevious();
}}
goToCourseExitPage={() => goToCourseExitPage()}
/>
{shouldDisplayNotificationTriggerInSequence && <SidebarTriggers />}
<div className="sequence-navigation-container">
<SequenceNavigation
sequenceId={sequenceId}
unitId={unitId}
className="mb-4"
nextSequenceHandler={() => {
logEvent('edx.ui.lms.sequence.next_selected', 'top');
handleNext();
}}
onNavigate={(destinationUnitId) => {
logEvent('edx.ui.lms.sequence.tab_selected', 'top', destinationUnitId);
handleNavigate(destinationUnitId);
}}
previousSequenceHandler={() => {
logEvent('edx.ui.lms.sequence.previous_selected', 'top');
handlePrevious();
}}
goToCourseExitPage={() => goToCourseExitPage()}
/>
{shouldDisplayNotificationTriggerInSequence && <SidebarTriggers />}
</div>

<div className="unit-container flex-grow-1">
<SequenceContent
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ const SequenceNavigation = ({
const prevArrow = isRtl(getLocale()) ? ChevronRight : ChevronLeft;

return sequenceStatus === LOADED && (
<nav id="courseware-sequenceNavigation" className={classNames('sequence-navigation', className)} style={{ width: shouldDisplayNotificationTriggerInSequence ? '90%' : null }}>
<nav id="courseware-sequenceNavigation" className={classNames('sequence-navigation', className, { 'mr-2': shouldDisplayNotificationTriggerInSequence })}>
<Button variant="link" className="previous-btn" onClick={previousSequenceHandler} disabled={isFirstUnit} iconBefore={prevArrow}>
{shouldDisplayNotificationTriggerInSequence ? null : intl.formatMessage(messages.previousButton)}
</Button>
Expand Down
6 changes: 5 additions & 1 deletion src/courseware/course/sidebar/SidebarTriggers.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import classNames from 'classnames';
import React, { useContext } from 'react';
import { breakpoints, useWindowSize } from '@edx/paragon';
import SidebarContext from './SidebarContext';
import { SIDEBAR_ORDER, SIDEBARS } from './sidebars';

Expand All @@ -8,14 +9,17 @@ const SidebarTriggers = () => {
toggleSidebar,
currentSidebar,
} = useContext(SidebarContext);

const isMobileView = useWindowSize().width < breakpoints.small.minWidth;

return (
<div className="d-flex ml-auto">
{SIDEBAR_ORDER.map((sidebarId) => {
const { Trigger } = SIDEBARS[sidebarId];
const isActive = sidebarId === currentSidebar;
return (
<div
className={classNames('mt-3', { 'border-primary-700': isActive })}
className={classNames({ 'mt-3': !isMobileView, 'border-primary-700': isActive })}
style={{ borderBottom: isActive ? '2px solid' : null }}
key={sidebarId}
>
Expand Down
2 changes: 1 addition & 1 deletion src/courseware/course/sidebar/common/TriggerBase.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const SidebarTriggerBase = ({
children,
}) => (
<button
className="border border-light-400 bg-transparent align-items-center align-content-center d-flex"
className="border border-light-400 bg-transparent align-items-center align-content-center d-flex notification-btn"
type="button"
onClick={onClick}
aria-label={ariaLabel}
Expand Down
1 change: 1 addition & 0 deletions src/generic/tabs/useIndexOfLastVisibleChild.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const invisibleStyle = {
left: 0,
pointerEvents: 'none',
visibility: 'hidden',
maxWidth: '100%',
};

/**
Expand Down
20 changes: 18 additions & 2 deletions src/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@
// On mobile, the unit container will be responsible
// for container padding.
@media (min-width: map-get($grid-breakpoints, "sm")) {
width: 100%;
margin-right: auto;
margin-left: auto;
}
Expand All @@ -103,8 +102,24 @@
}
}

.sequence-navigation-container {
display: flex;
align-items: flex-start;
}

.notification-btn {
@media (max-width: -1 + map-get($grid-breakpoints, "sm")) {
height: 3rem;
}
}

.sequence-navigation {
display: flex;
flex-grow: 1;

@media (max-width: -1 + map-get($grid-breakpoints, "sm")) {
max-width: 100%;
}

@media (min-width: map-get($grid-breakpoints, "sm")) {
margin: -1px -1px 0;
Expand Down Expand Up @@ -172,9 +187,10 @@
}

.sequence-navigation-tabs {
overflow: auto;
.btn {
flex-basis: 100%;
min-width: 2rem;
min-width: 3rem;
}
}

Expand Down

0 comments on commit e8d49a0

Please sign in to comment.