Skip to content

Commit

Permalink
refactor: change toast component
Browse files Browse the repository at this point in the history
  • Loading branch information
rpenido committed Aug 13, 2024
1 parent 7c59b4a commit 44b4e1d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
4 changes: 1 addition & 3 deletions src/generic/processing-notification/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import { Badge, Icon } from '@openedx/paragon';
import { Settings as IconSettings } from '@openedx/paragon/icons';
import { capitalize } from 'lodash';

import { NOTIFICATION_MESSAGES } from '../../constants';

const ProcessingNotification = ({ isShow, title }) => (
<Badge
className={classNames('processing-notification', {
Expand All @@ -24,7 +22,7 @@ const ProcessingNotification = ({ isShow, title }) => (

ProcessingNotification.propTypes = {
isShow: PropTypes.bool.isRequired,
title: PropTypes.oneOf(Object.values(NOTIFICATION_MESSAGES)).isRequired,
title: PropTypes.string.isRequired,
};

export default ProcessingNotification;
15 changes: 10 additions & 5 deletions src/generic/toast-context/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import { Toast } from '@openedx/paragon';

import ProcessingNotification from '../processing-notification';

export interface ToastContextData {
toastMessage: string | null;
Expand Down Expand Up @@ -35,7 +36,13 @@ export const ToastProvider = (props: ToastProviderProps) => {
setToastMessage(null);
}, []);

const showToast = React.useCallback((message) => setToastMessage(message), [setToastMessage]);
const showToast = React.useCallback((message) => {
setToastMessage(message);
// Close the toast after 5 seconds
setTimeout(() => {
setToastMessage(null);

Check warning on line 43 in src/generic/toast-context/index.tsx

View check run for this annotation

Codecov / codecov/patch

src/generic/toast-context/index.tsx#L43

Added line #L43 was not covered by tests
}, 5000);
}, [setToastMessage]);
const closeToast = React.useCallback(() => setToastMessage(null), [setToastMessage]);

const context = React.useMemo(() => ({
Expand All @@ -48,9 +55,7 @@ export const ToastProvider = (props: ToastProviderProps) => {
<ToastContext.Provider value={context}>
{props.children}
{ toastMessage && (
<Toast show={toastMessage !== null} onClose={closeToast}>
{toastMessage}
</Toast>
<ProcessingNotification isShow={toastMessage !== null} title={toastMessage} />
)}
</ToastContext.Provider>
);
Expand Down

0 comments on commit 44b4e1d

Please sign in to comment.