pankod/refine

View on GitHub
packages/core/src/definitions/helpers/redirectPage/index.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { IRefineContextOptions } from "../../../contexts/refine/types";
import { Action } from "../../../contexts/router/types";
import { RedirectAction } from "../../../hooks/form/types";

type RedirectPageProps = {
  redirectFromProps?: RedirectAction;
  action: Action;
  redirectOptions: IRefineContextOptions["redirect"];
};

export const redirectPage = ({
  redirectFromProps,
  action,
  redirectOptions,
}: RedirectPageProps): RedirectAction => {
  if (redirectFromProps || redirectFromProps === false) {
    return redirectFromProps;
  }

  switch (action) {
    case "clone":
      return redirectOptions.afterClone;
    case "create":
      return redirectOptions.afterCreate;
    case "edit":
      return redirectOptions.afterEdit;
    default:
      return false;
  }
};