Guest User

Untitled

a guest
Jan 19th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.78 KB | None | 0 0
  1. export type IHideToastOnTimeoutEpic = IEpic<
  2. IToastShowAction | IToastDismissAction,
  3. IToastDismissAction
  4. >;
  5.  
  6. const hideToastOnTimeoutEpic: IHideToastOnTimeoutEpic = (action$, state$) => {
  7. const showAction$ = action$.ofType<IToastShowAction>(TOAST_SHOW);
  8. const dismissAction$ = action$.ofType<IToastDismissAction>(TOAST_DISMISS);
  9.  
  10. return showAction$.pipe(
  11. filter(showAction => 'timeout' in showAction.payload),
  12. mergeMap(showAction =>
  13. timer(showAction.payload.timeout).pipe(
  14. takeUntil(
  15. dismissAction$.pipe(
  16. filter(dismissAction => dismissAction.payload.uuid === showAction.payload.uuid),
  17. ),
  18. ),
  19. map(() => createToastDismissAction(showAction.payload.uuid)),
  20. ),
  21. ),
  22. );
  23. };
  24.  
  25. export default hideToastOnTimeoutEpic;
Add Comment
Please, Sign In to add comment