All files / src history.js

100% Statements 16/16
100% Branches 7/7
100% Functions 4/4
100% Lines 16/16

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  1x   1x   1x   1x 1x 1x     1x 4x     1x 2x 2x   2x 2x 1x     2x 1x        
 
import { createBrowserHistory } from 'history'
 
import { actions, dispatcher } from './actions'
 
var defaultHistory = null
 
const create = () => {
  defaultHistory = createBrowserHistory()
  return defaultHistory
}
 
export const getHistory = (history) => {
  return history || defaultHistory || create()
}
 
export const createListener = signal => {
  const pop = dispatcher(signal, actions.pop)
  const push = dispatcher(signal, actions.push)
 
  return (location, action) => {
    if (action === 'POP') {
      pop({ location })
    }
 
    if (action === 'PUSH') {
      push({ location })
    }
  }
}