Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/anvilabs/react-native-image-carousel

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/anvilabs/react-native-image-carousel

  • v0.0.0-20181227042513-71e5e5b2af55
  • Source
  • Go
  • Socket score

Version published
Created
Source

Image carousel with support for heading, captions, fullscreen mode, image swiping and pinch-to-zoom in fullscreen mode.

Supports both Android and iOS. Zoom feature works on iOS only.

Demo

Demo

Installation

npm install --save react-native-image-carousel

Usage

import ImageCarousel from 'react-native-image-carousel';

export default class App extends Component<any, any, any> {
  _imageCarousel: ImageCarousel;

  componentWillMount() {
    (this: any)._renderHeader = this._renderHeader.bind(this);
  }

  _renderHeader(): ReactElement<any> {
    return (
      <TouchableWithoutFeedback onPress={this._imageCarousel.close}>
        <View>
          <Text style={styles.closeText}>Exit</Text>
        </View>
      </TouchableWithoutFeedback>
    );
  }

  _renderFooter(): ReactElement<any> {
    return (
      <Text style={styles.footerText}>Footer!</Text>
    );
  }

  _renderContent(idx: number): ReactElement<any> {
    return (
      <Image
        style={styles.container}
        source={{ uri: urls[idx] }}
        resizeMode={'contain'}
      />
    );
  }

  render(): ReactElement<any> {
    return (
      <View style={styles.container}>
        <ImageCarousel
          ref={(imageCarousel: ImageCarousel) => {
            this._imageCarousel = imageCarousel;
          }}
          renderContent={this._renderContent}
          renderHeader={this._renderHeader}
          renderFooter={this._renderFooter}
        >
          {urls.map((url: string): ReactElement<any> => (
            <Image
              key={url}
              style={styles.image}
              source={{ uri: url, height: 100 }}
              resizeMode={'contain'}
            />
          ))}
        </ImageCarousel>
      </View>
    );
  }
}

Check full example in Example folder.

Props and methods

Every prop is optional.

NameTypeDescription
activeProps?ObjectProps of each child when in fullscreen mode. (For a component to fill the screen activeProp's style must be flex: 1). This prop is ignored in case renderContent prop is provided.
activeComponents?[ReactElement<any>]Active components' bounds will be used for opening/closing fullscreen mode animations. If not provided, the immediate children are used.
zoomEnabled?booleantrue by default, if false, children are not zoomable.
hideStatusBarOnOpen?booleantrue by default, if false, status bar does not fade out on open.
renderContent?(idx: number) => ReactElement<any>Component to render in fullscreen mode for the given index.
renderHeader?() => ReactElement<any>Component to render at the top when in fullscreen mode.
renderFooter?() => ReactElement<any>Component to render at the bottom when in fullscreen mode.
onIdxChange?(idx: number)Fired on index change in fullscreen mode.
onOpen?() => voidFired on fullscreen mode open.
onClose?() => voidFired on fullscreen mode close.

react-native-image-carousel also provides two methods for opening and closing the fullscreen mode respectively:

open(startIdx: number), close.

License

MIT License © Anvilabs LLC

FAQs

Package last updated on 27 Dec 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc