22 lines
		
	
	
	
		
			439 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			439 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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);
 | 
						|
  };
 | 
						|
};
 |