Skip to content

A react hook to detect page changes in SPA's, especially Mendix Apps

License

Notifications You must be signed in to change notification settings

ahwelgemoed/useDomLocation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

useDomLocation

License: MIT License: MIT GitHub issues License: MIT License: MIT

A helper hook for monitoring page changes in Mendix Widgets.

Brief Explanation

Mendix is a SPA and window.onpopstate is inconsistent in detecting location changes, and only seems to fire if back and forward button in the browser is clicked.

What useDomLocation does:

It monitors changes in the Dom using the MutationObserver, and when changes are detected it will check window.history or mx.ui.getContentForm() for changes. If there are changes it will fire a Callback function you passed in, thus giving you a reliable way to monitor page changes.

As MutationObserver will fire a lot ,but is very performant, when the page location is changed and even fire when stuff like info boxes are opened, useDomLocation throttles the MutationObserver.

Normal back and forward button presses are handled by window.onpopstate.

useDomLocation will not fire on Page Load.

Usage

const { lastUpdateTime, createObserver, turnOffObserver } = useDomLocation({
  locationCallBack,
  throttleDuration: 500,
  useMendixNav: true,
});

Props Passed In

Type Info
locationCallBack func The callback that will fire when Location is detected
throttleDuration number For how long the MutantObserver must be throttled
useMendixNav boolean Indicate if you are using it in a mendix Widget, true for Mendix false for non Mendix apps

Props Passed back

Type Info
lastUpdateTime Date Passes back the last time the dom was updated.
createObserver number Manually Create observer
turnOffObserver boolean Manually turn off observer

Issues

Please open an GH issue.

About

A react hook to detect page changes in SPA's, especially Mendix Apps

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published