1
0
mirror of https://github.com/tooot-app/app synced 2025-04-19 04:37:24 +02:00
tooot/src/screens/ImageViewer/hooks/useImageIndexChange.ts
Zhiyuan Zheng 2825e76dad
Moved submodule to codebase
Due to using new dependencies such as `react-native-gesture-handler`
2021-03-21 12:32:49 +01:00

32 lines
875 B
TypeScript

/**
* Copyright (c) JOB TODAY S.A. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { useState } from 'react'
import { NativeSyntheticEvent, NativeScrollEvent } from 'react-native'
import { Dimensions } from '../@types'
const useImageIndexChange = (imageIndex: number, screen: Dimensions) => {
const [currentImageIndex, setImageIndex] = useState(imageIndex)
const onScroll = (event: NativeSyntheticEvent<NativeScrollEvent>) => {
const {
nativeEvent: {
contentOffset: { x: scrollX }
}
} = event
if (screen.width) {
const nextIndex = Math.round(scrollX / screen.width)
setImageIndex(nextIndex < 0 ? 0 : nextIndex)
}
}
return [currentImageIndex, onScroll] as const
}
export default useImageIndexChange