UNPKG

@refinedev/core

Version:

Refine is a React meta-framework for building enterprise-level, data-intensive applications rapidly with support for modern UI libraries and headless integrations.

31 lines (25 loc) 1.2 kB
import { useContext } from "react"; import { RefineContext } from "@contexts/refine"; import { UnsavedWarnContext } from "@contexts/unsavedWarn"; import type { IRefineContextOptions } from "../../../contexts/refine/types"; import type { IUnsavedWarnContext } from "../../../contexts/unsavedWarn/types"; type UseWarnAboutChangeType = () => { warnWhenUnsavedChanges: IRefineContextOptions["warnWhenUnsavedChanges"]; warnWhen: NonNullable<IUnsavedWarnContext["warnWhen"]>; setWarnWhen: NonNullable<IUnsavedWarnContext["setWarnWhen"]>; }; /** * When you have unsaved changes and try to leave the current page, **refine** shows a confirmation modal box. * To activate this feature, set the `warnWhenUnsavedChanges` to `true`. * * @see {@link https://refine.dev/docs/api-reference/core/components/refine-config#warnwhenunsavedchanges} for more details. */ export const useWarnAboutChange: UseWarnAboutChangeType = () => { const { warnWhenUnsavedChanges } = useContext(RefineContext); const { warnWhen, setWarnWhen } = useContext(UnsavedWarnContext); return { warnWhenUnsavedChanges, warnWhen: Boolean(warnWhen), setWarnWhen: setWarnWhen ?? (() => undefined), }; };