import { takeLatest } from 'redux-saga/effects'; import { PLAYER_ACTIONS } from './constants'; import { playerSetFile } from './actions'; import { Player } from '~/utils/player'; import { getURL } from '~/utils/dom'; function setFileSaga({ file }: ReturnType) { Player.set(getURL(file)); Player.play(); } function playSaga() { Player.play(); } function pauseSaga() { Player.pause(); } export default function* playerSaga() { yield takeLatest(PLAYER_ACTIONS.SET_FILE, setFileSaga); yield takeLatest(PLAYER_ACTIONS.PAUSE, pauseSaga); yield takeLatest(PLAYER_ACTIONS.PLAY, playSaga); }