Currently, if the user cancels the upload, the promise is always in pending state, which should not make sense. The browser provides us with the [cancel event](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/cancel_event), can we listen for it?