introduce `persistOnNavigate` option for toasts (#1095)
ensure that post auto-delete success toasts are preserved when navigating back to the prior page
This commit is contained in:
parent
fa5adac297
commit
fbd3f8efed
|
@ -110,7 +110,7 @@ export const ToastProvider = ({ children }) => {
|
|||
// Only clear toasts with no cancel function on page navigation
|
||||
// since navigation should not interfere with being able to cancel an action.
|
||||
useEffect(() => {
|
||||
const handleRouteChangeStart = () => setToasts(toasts => toasts.length > 0 ? toasts.filter(({ onCancel, onUndo }) => onCancel || onUndo) : toasts)
|
||||
const handleRouteChangeStart = () => setToasts(toasts => toasts.length > 0 ? toasts.filter(({ onCancel, onUndo, persistOnNavigate }) => onCancel || onUndo || persistOnNavigate) : toasts)
|
||||
router.events.on('routeChangeStart', handleRouteChangeStart)
|
||||
|
||||
return () => {
|
||||
|
|
|
@ -40,6 +40,7 @@ export const toastDeleteScheduled = (toaster, upsertResponseData, dataKey, isEdi
|
|||
}[dataKey] ?? 'item'
|
||||
|
||||
const message = `${itemType === 'comment' ? 'your comment' : isEdit ? `this ${itemType}` : `your new ${itemType}`} will be deleted at ${deleteScheduledAt.toLocaleString()}`
|
||||
toaster.success(message)
|
||||
// only persist this on navigation for posts, not comments
|
||||
toaster.success(message, { persistOnNavigate: itemType !== 'comment' })
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue