mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-14 23:52:09 +00:00
Addressed PR suggestions
This commit is contained in:
@@ -1,24 +1,34 @@
|
||||
import { useCallback } from "react";
|
||||
import { useBlocker } from "@tanstack/react-router";
|
||||
import { BatchContext, useBatchModeActions } from "@app/pages/secret-manager/SecretDashboardPage/SecretMainPage.store";
|
||||
|
||||
type TNavigationBlockerReturn = {
|
||||
isBlocked: boolean;
|
||||
};
|
||||
|
||||
export const useNavigationBlocker = (
|
||||
shouldBlock: boolean,
|
||||
message: string = "Are you sure you want to leave? You may have unsaved changes."
|
||||
): TNavigationBlockerReturn => {
|
||||
export const useNavigationBlocker = ({
|
||||
shouldBlock = false,
|
||||
message = "Are you sure you want to leave? You may have unsaved changes.",
|
||||
context
|
||||
}: {
|
||||
shouldBlock: boolean;
|
||||
message: string;
|
||||
context: BatchContext;
|
||||
}): TNavigationBlockerReturn => {
|
||||
const { clearAllPendingChanges } = useBatchModeActions();
|
||||
const blockerFn = useCallback(() => {
|
||||
if (!shouldBlock) return false;
|
||||
|
||||
// eslint-disable-next-line no-alert
|
||||
const confirmed = window.confirm(message);
|
||||
if (confirmed) {
|
||||
clearAllPendingChanges(context);
|
||||
}
|
||||
|
||||
return !confirmed;
|
||||
}, [shouldBlock, message]);
|
||||
}, [shouldBlock, message, context]);
|
||||
|
||||
useBlocker(blockerFn);
|
||||
useBlocker(blockerFn, shouldBlock);
|
||||
|
||||
return {
|
||||
isBlocked: shouldBlock
|
||||
|
||||
Reference in New Issue
Block a user