import { Epic } from "redux-observable"; import { login, logout } from "./authSlice"; import { filter, tap, ignoreElements, map } from "rxjs/operators"; import { fetchMetadata } from "../metadata/metadataSlice"; export const logoutRedirectEpic: Epic = action$ => action$.pipe( filter(logout.fulfilled.match), tap(() => { // Use window.location for redirection in epics since we can't use hooks window.location.href = "/login"; }), ignoreElements() ); export const onloginEpic: Epic = action$ => action$.pipe( filter(login.fulfilled.match), map(() => fetchMetadata()) ); const authEpics = [logoutRedirectEpic, onloginEpic]; export default authEpics;