Swipeable and cancellable
Part of what makes native mobile applications easier to use than mobile web applications is that they feel more intuitive. Using gestures, you can quickly get a handle on how things work. For example, swiping an element across the screen with your finger is a common gesture, but the gesture has to be discoverable.
Let's say that you're using an app, and you're not exactly sure what something on the screen does. So, you press down with your finger, and try dragging the element. It starts to move. Unsure of what will happen, you lift your finger up, and the element moves back into place. You've just discovered how part of this application works.
We'll use the Scrollable
component to implement swipeable and cancelable behavior like this. We can create a somewhat generic component that allows the user to swipe text off the screen, and when that happens, call a callback function. But let's look at the code to render the swipeables before...