vaulterm/frontend/components/ui/pager-view.tsx

31 lines
762 B
TypeScript
Raw Normal View History

2024-11-15 09:39:35 +00:00
import React, { ComponentPropsWithoutRef, forwardRef } from "react";
2024-11-06 14:53:07 +07:00
import RNPagerView from "react-native-pager-view";
export type PagerViewProps = ComponentPropsWithoutRef<typeof RNPagerView> & {
onChangePage?: (page: number) => void;
};
2024-11-15 09:39:35 +00:00
export type PagerViewRef = {
setPage: (page: number) => void;
setPageWithoutAnimation: (page: number) => void;
2024-11-06 14:53:07 +07:00
};
2024-11-15 09:39:35 +00:00
const PagerView = forwardRef<PagerViewRef, PagerViewProps>(
({ onChangePage, children, ...props }, ref) => {
return (
<RNPagerView
ref={ref as never}
{...props}
onPageSelected={(e) => {
const pos = e.nativeEvent.position;
onChangePage?.(pos);
}}
>
{children}
</RNPagerView>
);
}
);
2024-11-06 14:53:07 +07:00
export default PagerView;