asr-active-state-watcher

Waches an abstract-state-router and calls your function with all active DOM APIs

Usage no npm install needed!

<script type="module">
  import asrActiveStateWatcher from 'https://cdn.skypack.dev/asr-active-state-watcher';
</script>

README

So you start with an abstract-state-router, right?

When you call addDomApiAttachListener, your callback will be called for every currently active state, as well as every state that becomes active after that point.

When you call addDomApiDetachListener, your callback will be called every time a state is navigated away from.

Your callbacks will be passed one argument: the DOM API object for the state.


const stateWatcher = makeAsrStateWatcher(stateRouter)

const removeAttachListener = stateWatcher.addDomApiAttachListener(domApi => {
    domApi.get() // the starting state, probably!
})

const removeDetachListener = stateWatcher.addDomApiDetachListener(domApi => {
    domApi.get() // the final state, presumably!
})

function cleanUp() {
    removeAttachListener()
    removeDetachListener()
}