react-native-mobile-page-flipper
Version:
72 lines • 1.99 kB
TypeScript
import React from 'react';
import { ViewStyle } from 'react-native';
import type { Page, Size } from './types';
export interface CommonIPageFlipperProps {
enabled?: boolean;
pressable?: boolean;
singleImageMode?: boolean;
renderLastPage?: () => React.ReactElement;
portrait?: boolean;
onFlippedEnd?: (index: number) => void;
onFlipStart?: (id: number) => void;
onPageDragStart?: () => void;
onPageDrag?: () => void;
onPageDragEnd?: () => void;
onEndReached?: () => void;
onInitialized?: (props: {
pages: Page[];
index: number;
}) => void;
renderContainer?: () => any;
pageSize: Size;
contentContainerStyle: ViewStyle;
}
export type ConditionalIPageFlipperProps = {
type: 'image';
data: string[];
renderPage?: (page: {
index: number;
content: string;
totalPages: number;
}) => any;
linesFirstPage?: never;
linesPerPage?: never;
maxWidth?: never;
font?: never;
fontSize?: never;
toIndex?: number;
} | {
type: 'text';
data: string;
linesFirstPage?: number;
linesPerPage?: number;
maxWidth?: number;
font?: string;
fontSize?: number;
renderPage?: (page: {
index: number;
content: string;
totalPages: number;
}) => any;
toIndex?: number;
};
type IPageFlipperProps = CommonIPageFlipperProps & ConditionalIPageFlipperProps;
export type PageFlipperInstance = {
goToPage: (index: number) => void;
previousPage: () => void;
nextPage: () => void;
};
export type State = {
pageIndex: number;
pages: Page[];
isAnimating: boolean;
initialized: boolean;
prev: Page;
current: Page;
next: Page;
nextPageIndex?: number;
isPortrait: boolean;
};
declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<IPageFlipperProps & React.RefAttributes<PageFlipperInstance>>>;
export default _default;
//# sourceMappingURL=index.d.ts.map