There's two checks:

1. Is the flick valid
2. Was there a specific direction

The first thing is repeated 5 times, it can be written once and called from the other places. Even better would be to simply check the `axis` first since that's an easier comparison before calling into the `_isValidFlick()` shared function.