From 3696836de68760d2654819925bcd502bc33780ea Mon Sep 17 00:00:00 2001 From: ABBOUD Moncef Date: Wed, 9 Oct 2024 22:23:12 +0200 Subject: [PATCH] feat: save discussion alert dismissal (#1245) --- 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 172e40774..4b1299639 100644 --- a/src/course-outline/page-alerts/PageAlerts.jsx +++ b/src/course-outline/page-alerts/PageAlerts.jsx @@ -42,8 +42,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 = () => { @@ -84,6 +87,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 ce572ab6a..21d2f7491 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');