This diff introduces a new `positionV2` variable that is a SharedValue from Reanimated V2 API. The old `position` variable stays the same and is marked as depracated. Later on when we replace all usages of `position` with `positionV2` we can rename it back to `position`.
Why have I used `makeMutable`: normally I'd have used `useSharedValue` but it's a hook. Rules of hooks say that we can't change or add hook calls during a lifetime of a component. But we want a shared value for every screen and screens are added dynamically. So I see two solutions here:
- assume a max amount of screens x and make x shared values at the beginning then assign them when needed
- use makeMutable
The first solution is a bit cumbersome so I went with the second solution. `makeMutable` is a bit of an internal function but it's documented in reanimated v3: https://docs.swmansion.com/react-native-reanimated/docs/advanced/makeMutable and it's available also in reanimated v2. And all `useSharedValue` does is it uses `makeMutable` and cleans up after it's not needed. I added clean up code according to reanimated docs.