MCPcopy
hub / github.com/callstack/react-native-pager-view / usePagerView

Function usePagerView

src/usePagerView.ts:24–148  ·  view source on GitHub ↗
(
  { pagesAmount }: UsePagerViewParams = { pagesAmount: 0 }
)

Source from the content-addressed store, hash-verified

22};
23
24export function usePagerView(
25 { pagesAmount }: UsePagerViewParams = { pagesAmount: 0 }
26) {
27 const ref = useRef<PagerView>(null);
28 const [pages, setPages] = useState<number[]>(
29 new Array(pagesAmount).fill('').map((_v, index) => index)
30 );
31 const [activePage, setActivePage] = useState(0);
32 const [isAnimated, setIsAnimated] = useState(true);
33 const [overdragEnabled, setOverdragEnabled] = useState(false);
34 const [scrollEnabled, setScrollEnabled] = useState(true);
35 const [scrollState, setScrollState] = useState('idle');
36 const [progress, setProgress] = useState({ position: 0, offset: 0 });
37 const onPageScrollOffset = useRef(new Animated.Value(0)).current;
38 const onPageScrollPosition = useRef(new Animated.Value(0)).current;
39 const onPageSelectedPosition = useRef(new Animated.Value(0)).current;
40
41 const setPage = useCallback(
42 (page: number) =>
43 isAnimated
44 ? ref.current?.setPage(page)
45 : ref.current?.setPageWithoutAnimation(page),
46 [isAnimated]
47 );
48
49 const addPage = useCallback(() => {
50 setPages((prevPages) => {
51 return [...prevPages, prevPages.length];
52 });
53 }, []);
54
55 const removePage = useCallback(() => {
56 setPages((prevPages) => {
57 if (prevPages.length === 1) {
58 return prevPages;
59 }
60 return prevPages.slice(0, prevPages.length - 1);
61 });
62 }, []);
63
64 const toggleAnimation = useCallback(
65 () => setIsAnimated((animated) => !animated),
66 []
67 );
68
69 const toggleScroll = useCallback(
70 () => setScrollEnabled((enabled) => !enabled),
71 []
72 );
73
74 const toggleOverdrag = useCallback(
75 () => setOverdragEnabled((enabled) => !enabled),
76 []
77 );
78
79 const onPageScroll = useMemo(
80 () =>
81 Animated.event<PagerViewOnPageScrollEventData>(

Callers 1

PagerHookExampleFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…