PreventNavigationOnUnsavedChanges.tsx 724 B

1234567891011121314151617181920212223242526
  1. import {
  2. DiscardChangesConfirmationDialog,
  3. type DiscardChangesConfirmationDialogProps,
  4. } from './DiscardChangesConfirmationDialog'
  5. import { usePreventNavigationOnUnsavedChanges } from '@/hooks/ui/usePreventNavigationOnUnsavedChanges'
  6. export const PreventNavigationOnUnsavedChanges = ({
  7. hasChanges,
  8. ...props
  9. }: { hasChanges: boolean } & Omit<
  10. DiscardChangesConfirmationDialogProps,
  11. 'visible' | 'onClose' | 'onCancel'
  12. >) => {
  13. const { handleCancel, handleConfirm, shouldConfirm } = usePreventNavigationOnUnsavedChanges({
  14. hasChanges,
  15. })
  16. return (
  17. <DiscardChangesConfirmationDialog
  18. visible={shouldConfirm}
  19. onCancel={handleCancel}
  20. onClose={handleConfirm}
  21. {...props}
  22. />
  23. )
  24. }