Skip to content

Commit

Permalink
feat: upgraded to node v18, added .nvmrc and updated workflows (opene…
Browse files Browse the repository at this point in the history
…dx#471)

* feat: upgraded to node v18, added .nvmrc and updated workflows

* refactor: updated packages

* refactor: resolved eslint issues
  • Loading branch information
BilalQamar95 authored and sambapete committed Oct 11, 2023
1 parent 9293caa commit ebea4ec
Show file tree
Hide file tree
Showing 4 changed files with 124 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/discussions/discussions-home/DiscussionContent.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@ import { Route, Switch } from 'react-router';
import Spinner from '../../components/Spinner';
import { Routes } from '../../data/constants';

<<<<<<< HEAD
const PostEditor = lazy(() => import('../posts/post-editor/PostEditor'));
const PostCommentsView = lazy(() => import('../post-comments/PostCommentsView'));

=======
>>>>>>> 5c6e40b (feat: upgraded to node v18, added .nvmrc and updated workflows (#471))
const DiscussionContent = () => {
const postEditorVisible = useSelector((state) => state.threads.postEditorVisible);

Expand Down
15 changes: 15 additions & 0 deletions src/discussions/discussions-home/DiscussionSidebar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,16 @@ import {
} from '../data/hooks';
import { selectconfigLoadingStatus, selectEnableInContext } from '../data/selectors';

<<<<<<< HEAD
const TopicPostsView = lazy(() => import('../in-context-topics/TopicPostsView'));
const InContextTopicsView = lazy(() => import('../in-context-topics/TopicsView'));
const LearnerPostsView = lazy(() => import('../learners/LearnerPostsView'));
const LearnersView = lazy(() => import('../learners/LearnersView'));
const PostsView = lazy(() => import('../posts/PostsView'));
const LegacyTopicsView = lazy(() => import('../topics/TopicsView'));

=======
>>>>>>> 5c6e40b (feat: upgraded to node v18, added .nvmrc and updated workflows (#471))
const DiscussionSidebar = ({ displaySidebar, postActionBarRef }) => {
const location = useLocation();
const isOnDesktop = useIsOnDesktop();
Expand Down Expand Up @@ -106,6 +109,14 @@ const DiscussionSidebar = ({ displaySidebar, postActionBarRef }) => {
</Suspense>
</div>
);
<<<<<<< HEAD
=======
};

DiscussionSidebar.defaultProps = {
displaySidebar: false,
postActionBarRef: null,
>>>>>>> 5c6e40b (feat: upgraded to node v18, added .nvmrc and updated workflows (#471))
};

DiscussionSidebar.propTypes = {
Expand All @@ -116,9 +127,13 @@ DiscussionSidebar.propTypes = {
]),
};

<<<<<<< HEAD
DiscussionSidebar.defaultProps = {
displaySidebar: false,
postActionBarRef: null,
};

export default React.memo(DiscussionSidebar);
=======
export default DiscussionSidebar;
>>>>>>> 5c6e40b (feat: upgraded to node v18, added .nvmrc and updated workflows (#471))
42 changes: 42 additions & 0 deletions src/discussions/discussions-home/DiscussionsHome.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import messages from '../messages';
import { selectPostEditorVisible } from '../posts/data/selectors';
import useFeedbackWrapper from './FeedbackWrapper';

<<<<<<< HEAD
const Footer = lazy(() => import('@edx/frontend-component-footer'));
const PostActionsBar = lazy(() => import('../posts/post-actions-bar/PostActionsBar'));
const CourseTabsNavigation = lazy(() => import('../../components/NavigationBar/CourseTabsNavigation'));
Expand All @@ -33,6 +34,8 @@ const DiscussionsRestrictionBanner = lazy(() => import('./DiscussionsRestriction
const DiscussionContent = lazy(() => import('./DiscussionContent'));
const DiscussionSidebar = lazy(() => import('./DiscussionSidebar'));

=======
>>>>>>> 5c6e40b (feat: upgraded to node v18, added .nvmrc and updated workflows (#471))
const DiscussionsHome = () => {
const location = useLocation();
const postActionBarRef = useRef(null);
Expand Down Expand Up @@ -60,6 +63,7 @@ const DiscussionsHome = () => {
if (displayContentArea) { displaySidebar = isOnDesktop; }

return (
<<<<<<< HEAD
<Suspense fallback={(<Spinner />)}>
<DiscussionContext.Provider value={{
page,
Expand All @@ -73,6 +77,44 @@ const DiscussionsHome = () => {
>
{!enableInContextSidebar && (
<Header courseOrg={org} courseNumber={courseNumber} courseTitle={courseTitle} />
=======
// eslint-disable-next-line react/jsx-no-constructed-context-values
<DiscussionContext.Provider value={{
page,
courseId,
postId,
topicId,
enableInContextSidebar,
category,
learnerUsername,
}}
>
{!enableInContextSidebar && <Header courseOrg={org} courseNumber={courseNumber} courseTitle={courseTitle} />}
<main className="container-fluid d-flex flex-column p-0 w-100" id="main" tabIndex="-1">
{!enableInContextSidebar && <CourseTabsNavigation activeTab="discussion" courseId={courseId} />}
<div
className={classNames('header-action-bar', {
'shadow-none border-light-300 border-bottom': enableInContextSidebar,
})}
ref={postActionBarRef}
>
<div
className={classNames('d-flex flex-row justify-content-between navbar fixed-top', {
'pl-4 pr-3 py-0': enableInContextSidebar,
})}
>
{!enableInContextSidebar && <Route path={Routes.DISCUSSIONS.PATH} component={NavigationBar} />}
<PostActionsBar />
</div>
{isFeedbackBannerVisible && <InformationBanner />}
<BlackoutInformationBanner />
</div>
{provider === DiscussionProvider.LEGACY && (
<Route
path={[Routes.POSTS.PATH, Routes.TOPICS.CATEGORY]}
component={LegacyBreadcrumbMenu}
/>
>>>>>>> 5c6e40b (feat: upgraded to node v18, added .nvmrc and updated workflows (#471))
)}
<main className="container-fluid d-flex flex-column p-0 w-100" id="main" tabIndex="-1">
{!enableInContextSidebar && <CourseTabsNavigation activeTab="discussion" courseId={courseId} />}
Expand Down
64 changes: 64 additions & 0 deletions src/discussions/discussions-home/InformationBanner.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import React, { useState } from 'react';

import { useSelector } from 'react-redux';

import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
import { Hyperlink, PageBanner } from '@edx/paragon';

import { selectUserIsStaff, selectUserRoles } from '../data/selectors';
import messages from '../messages';

const InformationBanner = ({
intl,
}) => {
const [showBanner, setShowBanner] = useState(true);
const userRoles = useSelector(selectUserRoles);
const isAdmin = useSelector(selectUserIsStaff);
const learnMoreLink = 'https://openedx.atlassian.net/wiki/spaces/COMM/pages/3509551260/Overview+New+discussions+experience';
const TAFeedbackLink = process.env.TA_FEEDBACK_FORM;
const staffFeedbackLink = process.env.STAFF_FEEDBACK_FORM;
const hideLearnMoreButton = ((userRoles.includes('Student') && userRoles.length === 1) || !userRoles.length) && !isAdmin;
const showStaffLink = isAdmin || userRoles.includes('Moderator') || userRoles.includes('Administrator');

return (
<PageBanner
variant="light"
show={showBanner}
dismissible
onDismiss={() => setShowBanner(false)}
>
<div className="font-weight-500">
{intl.formatMessage(messages.bannerMessage)}
{!hideLearnMoreButton
&& (
<Hyperlink
destination={learnMoreLink}
target="_blank"
showLaunchIcon={false}
className="pl-2.5"
variant="muted"
isInline
>
{intl.formatMessage(messages.learnMoreBannerLink)}
</Hyperlink>
)}
<Hyperlink
destination={showStaffLink ? staffFeedbackLink : TAFeedbackLink}
target="_blank"
showLaunchIcon={false}
variant="muted"
className="pl-2.5"
isInline
>
{intl.formatMessage(messages.shareFeedback)}
</Hyperlink>
</div>
</PageBanner>
);
};

InformationBanner.propTypes = {
intl: intlShape.isRequired,
};

export default injectIntl(InformationBanner);

0 comments on commit ebea4ec

Please sign in to comment.