Hi there,
I might be wrong, but I think I found a strange behavior in the code, or at least one not intuitive.
I'm using a version of the Example 1 you provide, and on my proyect, I need to know on which panel/element I'm standing so I can render some other stuff. In other words, if CurrentPanel = 0, then I render MyComponent[0], and so on.
So what I do is to access CurrentPanel variable value. I would expect this variable to start on 0; if I move right or down, increase it's value by 1; if I move left or up, decrease it's value by 1 (if I'm on 0, and InfiniteScrolling is active, then maxValue).
The issue is the following: After the first movement, the CurrentPanel value stays on 0, independantly of the direction you move. That means everything is shifted.
Another example: Let's say you are snaping on a direction (for instance, right) and CurrentPanel is increasing it's value, whenever you change to the opposite direction (in this case left), on the first movement, CurrentPanel still increases it's value before start decreasing it.
On this movements: Start->Right->Right->Left I would expect 0->1->2->1, and I get 0->0->1->2
I replicated it with your Example1 as well by adding to Previous and Next Buttons a function that prints CurrentValue. I think this happens with TargetPanel too, but I didn't test that much.
I hope you can help me with this. If it's a bug, by fixing it, and if I'm wrong, by clarifying things to me.
Thank you for your time, have a nice day.