* feat: add language selection chore: update tests so we have less error message test: update test * test: update tests * chore: remove duplicate translation * chore: lint for console * chore: remove comments * chore: make sure the affect url frame refresh after the language selection change * chore: add whole_course_translation and language to courseware meta (#1305) * feat: Add feedback widget UI mock Add unit tests Fix snapshot Clean Sequence component logEvent calls Clean unit test Put feedback widget behind whole course translation flag Fix useFeedbackWidget test * chore: add src and dest translation * feat: first iteration of plugin translation chore: update plugin instruction * feat: Connect FeedbackWidget with backend services (#1325) Connect FeedbackWidget with backend services Move feedback widget to unit translation plugin * feat: Add authentication to WCT feedback endpoints (#1329) * chore: add fetch config and move feedback widget for the plugin chore: rewrite and test the api request chore: rebase chore: update translation feedback chore: test chore: add more tests * chore: rebase * chore: update requested change * chore: update package * chore: upgrade frontend-lib-special-exams and frontend-lib-learning-assistant * chore: update tests * chore: remove unneeded package * chore: update example config * chore: add source-map-loader * fix: feedback widget render error after submit feedback (#1335) * fix: feedback widget render error after submit feedback * fix: widget logic --------- Co-authored-by: Rodrigo Martin <rodrigom_94@hotmail.com>
37 lines
1.0 KiB
JavaScript
37 lines
1.0 KiB
JavaScript
import classNames from 'classnames';
|
|
import React, { useContext } from 'react';
|
|
import { breakpoints, useWindowSize } from '@openedx/paragon';
|
|
import SidebarContext from './SidebarContext';
|
|
import { SIDEBAR_ORDER, SIDEBARS } from './sidebars';
|
|
|
|
const SidebarTriggers = () => {
|
|
const {
|
|
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': !isMobileView, 'border-primary-700': isActive })}
|
|
style={{ borderBottom: isActive ? '2px solid' : null }}
|
|
key={sidebarId}
|
|
>
|
|
<Trigger onClick={() => toggleSidebar(sidebarId)} key={sidebarId} />
|
|
</div>
|
|
);
|
|
})}
|
|
</div>
|
|
);
|
|
};
|
|
|
|
SidebarTriggers.propTypes = {};
|
|
|
|
export default SidebarTriggers;
|