Add a button to paint with the color white, to fix mistakes. And perhaps another button to clear the image to start over (with a confirmation).
I still feel that the method to deselect the current block and start a new block is weird. It's very different from the usual methods (aka paintbrush). (It may be good for this particular app, but it's different.)
I'm learning Redux now, so I'll integrate it with Redux some time. I do feel it's weird that you need to move your mouse over the dots to deselect, so I'll think about that when I change my code.
I still think the selection is also not intuitive, but I didn't play too much with your project. Perhaps your selection method is better. Follow your instinct but try it with a few more users. (As an alternative, show the expanded selection automatically when the user moves the mouse, but change the corner only when the user clicks.)
But your second point is brilliant! Really appreciated!