We started this chapter by introducing the Redux middleware. As an example, we used redux-diff-logger to monitor mutations in the store. We also plugged in a collection of tools (redux-devtools), enabling DevTools-like panels on a page for inspecting the store and traveling back in time using the cancelling actions. Closing with Redux, we examined unit-testing of action creators and reducers.
In this chapter, we created the Capturer service responsible for taking screenshots and recording screencasts. We achieved capturing of desktop video input in MediaStream by using webkitGetUserMedia API. With the Canvas API, we managed to take a still frame from the video stream and convert it into an image. For video recording, we went with the MediaRecorder API. Both screenshot and screencast actions we have provided with the corresponding desktop notifications. We implemented an...