Skip to content
Snippets Groups Projects
react-swipeable-views-utils.d.ts 1.15 KiB
Newer Older
Hugo NOUTS's avatar
Hugo NOUTS committed
declare module 'react-swipeable-views-utils' {
  import ReactSwipeableViews from 'react-swipeable-views'

  export interface VirtualizedSlideRendererParams {
    index: number
    key: number
  }

  interface VirtualizedComponentProps {
    index?: number
    onChangeIndex?: (currentIndex: number, prevIndex: number) => void
    onTransitionEnd?: () => void
    overscanSlideAfter?: number
    overscanSlideBefore?: number
    slideCount?: number
    slideRenderer?: (params: VirtualizedSlideRendererParams) => JSX.Element
    enableMouseEvents?: boolean
    axis?: AxisType
  }

  interface VirtualizedComponentState {
    indexContainer: number
    indexStart: number
    indexStop: number
  }

  class VirtualizedComponent extends React.Component<
    VirtualizedComponentProps,
    VirtualizedComponentState
  > {
    handleChangeIndex(indexContainer: number, indexLatest: number): void
    handleTransitionEnd(): void
    setIndex(index: number, indexContainer: number, indexDiff: number): void
    setWindow(index: number): void
  }

  export function virtualize(
    component: typeof ReactSwipeableViews
  ): typeof VirtualizedComponent
  export default virtualize
}