diff --git a/packages/react-native-sortables/src/providers/shared/hooks/useItemZIndex.ts b/packages/react-native-sortables/src/providers/shared/hooks/useItemZIndex.ts index 13294183..d86e3baa 100644 --- a/packages/react-native-sortables/src/providers/shared/hooks/useItemZIndex.ts +++ b/packages/react-native-sortables/src/providers/shared/hooks/useItemZIndex.ts @@ -7,18 +7,26 @@ export default function useItemZIndex( key: string, activationAnimationProgress: SharedValue ): SharedValue { - const { activeItemKey, prevActiveItemKey } = useCommonValuesContext(); + const { activeItemKey, indexToKey, keyToIndex, prevActiveItemKey } = + useCommonValuesContext(); return useDerivedValue(() => { + const itemCount = indexToKey.value.length; + if (activeItemKey.value === key) { - return 3; - } - if (prevActiveItemKey.value === key) { - return 2; + return 2 * itemCount + 1; } + + const orderZIndex = keyToIndex.value[key] ?? 0; + if (activationAnimationProgress.value > 0) { - return 1; + if (prevActiveItemKey.value === key) { + return 2 * itemCount; + } + + return itemCount + orderZIndex; } - return 0; + + return orderZIndex; }); }