2025-11-07 11:04:59 +01:00

25 lines
697 B
TypeScript

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;