From 4584d6af30010635f7c12db057beb2ef25e027aa Mon Sep 17 00:00:00 2001 From: cef Date: Tue, 27 Aug 2024 09:30:12 -0500 Subject: [PATCH] feat: save discussion alert dismissal --- src/course-outline/page-alerts/PageAlerts.jsx | 6 +++++- src/course-outline/page-alerts/PageAlerts.test.jsx | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/course-outline/page-alerts/PageAlerts.jsx b/src/course-outline/page-alerts/PageAlerts.jsx index 4b0eb0dc78..3ce5f0567c 100644 --- a/src/course-outline/page-alerts/PageAlerts.jsx +++ b/src/course-outline/page-alerts/PageAlerts.jsx @@ -41,8 +41,11 @@ const PageAlerts = ({ const intl = useIntl(); const dispatch = useDispatch(); const studioBaseUrl = getConfig().STUDIO_BASE_URL; + const discussionAlertDismissKey = `discussionAlertDismissed-${courseId}`; const [showConfigAlert, setShowConfigAlert] = useState(true); - const [showDiscussionAlert, setShowDiscussionAlert] = useState(true); + const [showDiscussionAlert, setShowDiscussionAlert] = useState( + localStorage.getItem(discussionAlertDismissKey) === null, + ); const { newFiles, conflictingFiles, errorFiles } = useSelector(getPasteFileNotices); const getAssetsUrl = () => { @@ -83,6 +86,7 @@ const PageAlerts = ({ const onDismiss = () => { setShowDiscussionAlert(false); + localStorage.setItem(discussionAlertDismissKey, 'true'); }; return ( diff --git a/src/course-outline/page-alerts/PageAlerts.test.jsx b/src/course-outline/page-alerts/PageAlerts.test.jsx index ce572ab6a4..21d2f74916 100644 --- a/src/course-outline/page-alerts/PageAlerts.test.jsx +++ b/src/course-outline/page-alerts/PageAlerts.test.jsx @@ -98,6 +98,11 @@ describe('', () => { expect(learnMoreBtn).toBeInTheDocument(); expect(learnMoreBtn).toHaveAttribute('href', 'some-learn-more-url'); + const dismissBtn = queryByText('Dismiss'); + await act(async () => fireEvent.click(dismissBtn)); + const discussionAlertDismissKey = `discussionAlertDismissed-${pageAlertsData.courseId}`; + expect(localStorage.getItem(discussionAlertDismissKey)).toBe('true'); + const feedbackLink = queryByText(messages.discussionNotificationFeedback.defaultMessage); expect(feedbackLink).toBeInTheDocument(); expect(feedbackLink).toHaveAttribute('href', 'some-feedback-url');