UNPKG

@ticmakers-react-native/onboarding

Version:

TIC Makers - React Native Onboarding

418 lines (353 loc) 8.54 kB
import * as React from 'react' import { ViewProps, Animated } from 'react-native' import { TypeComponent, TypeStyle } from '@ticmakers-react-native/core' import Button from '@ticmakers-react-native/button' /** * Type to define the positions used in the Pagination component */ export type TypePaginationPosition = 'left' | 'center' | 'right' | undefined /** * Interface to define the props of the Pagination component * @export * @interface IPaginationProps */ export interface IPaginationProps extends ViewProps { /** * A React-Native component to replace the Done button * @type {TypeComponent} */ DoneComponent?: TypeComponent /** * A React-Native component to replace the pagination Dot * @type {TypeComponent} */ DotComponent?: TypeComponent /** * A React-Native component to replace the Next button * @type {TypeComponent} */ NextComponent?: TypeComponent /** * A React-Native component to replace the Previous button * @type {TypeComponent} */ PrevComponent?: TypeComponent /** * A React-Native component to replace the Skip button * @type {TypeComponent} */ SkipComponent?: TypeComponent /** * Font scaling can cause troubles with high-resolution screens. You may want to disable it * @type {boolean} * @default true */ allowFontScaling?: boolean /** * A number for the height of the bottom bar * @type {number} * @default 60 */ bottomBarHeight?: number /** * Apply a custom style to the pagination center container * @type {TypeStyle} */ centerContainerStyle?: TypeStyle /** * Apply a custom style to the pagination container * @type {TypeStyle} */ containerStyle?: TypeStyle /** * A number to define what is the current page * @type {number} * @default 0 */ currentPage?: number /** * Define a text to show in done button * @type {string} */ doneLabel?: string /** * Define the position where the done button will be displayed * @type {TypePaginationPosition} * @default right */ donePosition?: TypePaginationPosition /** * Apply a custom style to the done button * @type {TypeStyle} */ doneStyle?: TypeStyle /** * Apply a custom color to the Dot selected * @type {string} */ dotColorSelected?: string /** * Apply a custom style to the Dot selected * @type {TypeStyle} */ dotSelectedStyle?: TypeStyle /** * Apply a custom color to all Dots * @type {string} */ dotsColor?: string /** * Define the position where the pagination dots will be displayed * @type {TypePaginationPosition} * @default center */ dotsPosition?: TypePaginationPosition /** * Apply a size to the pagination dots * @type {number} */ dotsSize?: number /** * Apply a custom style to the pagination dots * @type {TypeStyle} */ dotsStyle?: TypeStyle /** * Set true for hide the done button * @type {boolean} * @default false */ hideDone?: boolean /** * Set true for hide the pagination dots * @type {boolean} * @default false */ hideDots?: boolean /** * Set true to hide the next button * @type {boolean} * @default false */ hideNext?: boolean /** * Set true to hide the skip button * @type {boolean} * @default false */ hideSkip?: boolean /** * A boolean to set if the style is light or dark * @type {boolean} * @default true */ isLight?: boolean /** * Apply a custom style to the pagination left container * @type {TypeStyle} */ leftContainerStyle?: TypeStyle /** * A text to show in the next button * @type {string} * @default Next */ nextLabel?: string /** * Define the position where the next button will be displayed * @type {TypePaginationPosition} * @default right */ nextPosition?: TypePaginationPosition /** * Apply a custom style to the next button * @type {TypeStyle} */ nextStyle?: TypeStyle /** * A number of the total of the pages * @type {number} */ numPages?: number /** * Method that fire when the button done is pressed * @type {Function} */ onDone?: () => void /** * Method that fire when the button next is pressed * @type {Function} */ onNext?: () => void /** * Method that fire when the button previous is pressed * @type {Function} */ onPrev?: () => void /** * Method that fire when the button skip is pressed * @type {Function} */ onSkip?: () => void /** * A text to show in the previous button * @type {string} * @default Previous */ prevLabel?: string /** * Define the position where the previous button will be displayed * @type {TypePaginationPosition} * @default left */ prevPosition?: TypePaginationPosition /** * Apply a custom style to the previous button * @type {TypeStyle} */ prevStyle?: TypeStyle /** * Apply a custom style to the pagination right container * @type {TypeStyle} */ rightContainerStyle?: TypeStyle /** * A text to show in the skip button * @type {string} * @default Skip */ skipLabel?: string /** * Define the position where the next button will be displayed * @type {TypePaginationPosition} * @default left */ skipPosition?: TypePaginationPosition /** * Apply a custom style to the skip button * @type {TypeStyle} */ skipStyle?: TypeStyle /** * Use to show the previous button * @type {boolean} */ usePrevious?: boolean } /** * Interface to define the state of the Pagination component * @export * @interface IPaginationState */ export interface IPaginationState { } /** * Class to define the Pagination component used in Onboarding * @class Pagination * @extends {React.Component<IPaginationProps, IPaginationState>} */ declare class Pagination extends React.Component<IPaginationProps, IPaginationState> { /** * Method that renders the component * @returns {TypeComponent} */ public render(): TypeComponent /** * Method that renders the left container component * @returns {TypeComponent} */ public LeftContent(): TypeComponent /** * Method that renders the center container component * @returns {TypeComponent} */ public CenterContent(): TypeComponent /** * Method that renders the right container component * @returns {TypeComponent} */ public RightContent(): TypeComponent /** * Method that renders the Done button * @returns {TypeComponent} */ public Done(): TypeComponent /** * Method that renders the pagination Dots * @returns {TypeComponent} */ public Dots(): TypeComponent /** * Method that renders the Next button * @returns {TypeComponent} */ public Next(): TypeComponent /** * Method that renders the Previous button * @returns {TypeComponent} */ public Prev(): TypeComponent /** * Methods that renders the Skip button * @returns {TypeComponent} */ public Skip(): TypeComponent /** * Method to check if the current page is the first page * @returns {boolean} */ public isFirstPage(): boolean /** * Method to check if the current page is the last page * @returns {boolean} */ public isLastPage(): boolean /** * Method that renders the content of each container (left, center and right) * @private * @param {TypePaginationPosition} position Position of the container * @returns {TypeComponent[]} */ private _getContent(position: TypePaginationPosition): TypeComponent[] /** * Method that process the props of the component * @private * @returns {IPaginationProps} */ private _processProps(): IPaginationProps } /** * Class to define the component DoneButton used in Onboarding * @class DoneButton * @extends {Button} */ declare class DoneButton extends Button { /** * Initial value to the animation */ public fadeAnimation?: Animated.Value /** * Duration of the animation */ public fadeDuration?: number /** * Method that fire when the component is mounted * @returns {void} */ public componentDidMount(): void /** * Method that renders the component * @returns {TypeComponent} */ public render(): TypeComponent /** * Method that renders the button * @returns {TypeComponent} */ public ButtonComponent(): TypeComponent } /** * Export default */ export default Pagination export { DoneButton }