mirror of
https://github.com/khairul169/vaulterm.git
synced 2025-06-18 01:29:37 +07:00
28 lines
655 B
TypeScript
28 lines
655 B
TypeScript
|
import React, { ComponentPropsWithoutRef, useEffect, useRef } from "react";
|
||
|
import RNPagerView from "react-native-pager-view";
|
||
|
|
||
|
export type PagerViewProps = ComponentPropsWithoutRef<typeof RNPagerView> & {
|
||
|
page?: number;
|
||
|
onChangePage?: (page: number) => void;
|
||
|
};
|
||
|
|
||
|
const PagerView = ({ page, onChangePage, ...props }: PagerViewProps) => {
|
||
|
const ref = useRef<RNPagerView>(null);
|
||
|
|
||
|
useEffect(() => {
|
||
|
if (page != null) {
|
||
|
ref.current?.setPage(page);
|
||
|
}
|
||
|
}, [page]);
|
||
|
|
||
|
return (
|
||
|
<RNPagerView
|
||
|
ref={ref}
|
||
|
{...props}
|
||
|
onPageSelected={(e) => onChangePage?.(e.nativeEvent.position)}
|
||
|
/>
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export default PagerView;
|