about summary refs log tree commit diff
path: root/app/assets/javascripts/components/middleware/sounds.jsx
blob: 200efa3d79a1fa9308eef3ff0e6b438be61bedbc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const play = audio => {
  if (!audio.paused) {
    audio.pause();
    audio.fastSeek(0);
  }

  audio.play();
};

export default function soundsMiddleware() {
  const soundCache = {
    boop: new Audio(['/sounds/boop.mp3'])
  };

  return ({ dispatch }) => next => (action) => {
    if (action.meta && action.meta.sound && soundCache[action.meta.sound]) {
      play(soundCache[action.meta.sound]);
    }

    return next(action);
  };
};