GithubHelp home page GithubHelp logo

reactrondev / react-native-web-swiper Goto Github PK

View Code? Open in Web Editor NEW
210.0 6.0 53.0 1.31 MB

Swiper-Slider for React-Native and React-Native-Web

JavaScript 100.00%
react-native react-native-web swiper slider swipe

react-native-web-swiper's Introduction

react-native-web-swiper

Simple swiper / slider. Works both on React-Native and React-Native-Web.

Demo

Hybrid Snack: https://snack.expo.io/@oxyii/react-native-web-swiper

Installation

$ npm i react-native-web-swiper --save

Usage

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import Swiper from 'react-native-web-swiper';

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
  slideContainer: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
  slide1: {
    backgroundColor: 'rgba(20,20,200,0.3)',
  },
  slide2: {
    backgroundColor: 'rgba(20,200,20,0.3)',
  },
  slide3: {
    backgroundColor: 'rgba(200,20,20,0.3)',
  },
});

export default class Screen extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Swiper>
          <View style={[styles.slideContainer,styles.slide1]}>
            <Text>Slide 1</Text>
          </View>
          <View style={[styles.slideContainer,styles.slide2]}>
            <Text>Slide 2</Text>
          </View>
          <View style={[styles.slideContainer,styles.slide3]}>
            <Text>Slide 3</Text>
          </View>
        </Swiper>
      </View>
    );
  }
}

With props

<Swiper
  vertical {/* slide up / down instead left / right */}
  from={1} {/* initial slide is second */}
  loop {/* back to first slide after last */}
  timeout={2} {/* autoplay duration (2 secs) */}
  springConfig={{ speed: 11 }} {/* RN Animated.spring config */}
  minDistanceForAction={0.15} {/* Swipe less that 15% keep active slide */}
  positionFixed {/* Fix mobile safari vertical bounces */}
  controlsProps={{
    DotComponent: ({ index, activeIndex, isActive, onPress }) => <Text onPress={onPress}>Your Custom Dot {activeIndex+1}/{index+1}</Text>
  }}
>
  <View style={{ flex: 1 }} /> {/* Slide 1 */}
  <View style={{ flex: 1 }} /> {/* Slide 2 */}
  {/* ... */}
</Swiper>

Dynamic content

The slide automatically gets props.isActive, props.activeIndex and props.index.

import React from 'react';
import { Text, View } from 'react-native';
import Swiper from 'react-native-web-swiper';

type Props = {
  index?: number,
  activeIndex?: number,
}
export const SomeSlide = (props: Props) => (
  <View>
    <Text>{props.activeIndex}/{props.index}{props.isActive ? ' (active)' : ''}</Text>
  </View>
)

export default () => (
  <Swiper>
    <SomeSlide />
    <SomeSlide />
  </Swiper>
)

This is possible because Swiper used cloneElement and inject internally the activeIndex and index props to each slide. This also means that all slides will re-render on swipe, since the activeIndex prop value changes on swipe.


Props

Prop Default Type Description
vertical false boolean Swiper vertical layout
from 0 number Initial slide index
loop false boolean Set to true to enable continuous loop mode
timeout 0 number Delay between auto play transitions (in second). Set negative value for reverse autoplay 😆. Autoplay disabled by default
gesturesEnabled () => true function Function that returns boolean value. Must return false to disable swiping mechanism. Does not disable Prev / Next buttons
springConfig Animated.spring Tune spring animation on autoplay, touch release or slides changes via buttons
minDistanceToCapture 5 number Initiate animation after swipe this distance. It fix gesture collisions inside ScrollView
minDistanceForAction 0.2 number Minimal part of swiper width (or height for vertical) must be swiped for changing index. Otherwise animation restore current slide. Default value 0.2 means that 20% must be swiped for change index
positionFixed false boolean Swiper inner container position fixed instead relative. Fix mobile safari vertical bounce
containerStyle ViewPropTypes.style Outer (root) container style
innerContainerStyle ViewPropTypes.style Inner container style
swipeAreaStyle ViewPropTypes.style Swipe area style
slideWrapperStyle ViewPropTypes.style Each slide wrapper style
controlsEnabled true boolean Dots and control buttons visible and enabled
Controls React.Component Custom controls component
onAnimationStart function Any swiper animation start
onAnimationEnd function Any swiper animation end
onIndexChanged function Called when active index changed
controlsProps object see below

Controls Props

Over the swiper we need to create a controls layer. But this layer will block the possibility of swiper layer control. We created 9 controls placeholders to solve this problem: top-left, top, top-right, left, center, right, bottom-left, bottom and bottom-right. You can adjust controls position by placing into relevant placeholder:

<Swiper
  ...
  controlsProps={{
    prevTitle: 'prev button title',
    nextTitle: 'next button title',
    dotsTouchable: true, {/* touch over dot will make swiper move to rel slide */}
    dotsPos: 'top',
    prevPos: false, {/* hide prev button */}
    nextPos: 'top-right',
    cellsStyle: {
      'top': { padding: 5, backgroundColor: 'rgba(0, 0, 0, .3)' },
      'top-left': { /* any custom placeholder style */ },
    },
    cellsContent: {
      'bottom-right': <AnyComponent /> {/* Additional content in placeholder */}
    }
  }}
/>
Prop Default Type Description
cellsStyle object Controls corners placeholders styles. Allowed keys is: top-left, top, top-right, left, center, right, bottom-left, bottom and bottom-right, allowed values is ViewPropTypes.style
cellsContent object Controls corners placeholders additional content. Allowed keys is: top-left, top, top-right, left, center, right, bottom-left, bottom and bottom-right, allowed values is string OR React element
dotsPos 'bottom' OR 'right' if vertical boolean OR enum('top-left', 'top', 'top-right', 'left', 'center', 'right', 'bottom-left', 'bottom', 'bottom-right') Dots position
prevPos 'bottom-left' OR 'top-right' if vertical boolean OR enum('top-left', 'top', 'top-right', 'left', 'center', 'right', 'bottom-left', 'bottom', 'bottom-right') Prev button position
nextPos 'bottom-right' boolean OR enum('top-left', 'top', 'top-right', 'left', 'center', 'right', 'bottom-left', 'bottom', 'bottom-right') Next button position
prevTitle 'Prev' string Prev button title
nextTitle 'Next' string Next button title
prevTitleStyle Text.propTypes.style Customize prev button title
nextTitleStyle Text.propTypes.style Customize next button title
PrevComponent React.Component Custom prev button component
NextComponent React.Component Custom next button component
firstPrevElement element Custom prev element on first slide (if not loop)
lastNextElement element Custom next element on last slide (if not loop)
dotsTouchable false boolean Touches over dots will move swiper to relative slide
dotsWrapperStyle ViewPropTypes.style Dots wrapper View style
dotProps object react-native-elements Badge props
dotActiveStyle object Additional style to active dot. Will be added to dot badgeStyle
DotComponent React.Component Custom dot component

Interaction methods

Store a reference to the Swiper in your component by using the ref prop provided by React (see docs):

const swiperRef = useRef(null);

...

<Swiper
  ref={swiperRef}
  ...
/>

Then you can manually trigger swiper from anywhere:

() => {
  swiperRef.current.goTo(1);
  swiperRef.current.goToPrev();
  swiperRef.current.goToNext();
  const index = swiperRef.current.getActiveIndex();
};

react-native-web-swiper's People

Contributors

dependabot[bot] avatar elijahr avatar eungwang1 avatar jarredt avatar jarvisluong avatar nathaniaelvina avatar oxyii avatar siokstoksanoks avatar soroushm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

react-native-web-swiper's Issues

[WEB] Having another onPress handler Component makes swiping absurd

I have an image swiper implementation wherein upon clicking the image, I hide/show details regarding the image, UI buttons etc.
Now whenever I try to drag this image to go to next one, the image doesn't move until I release the mouse button. Then it follows the mouse (no key is pressed at this time), now when I press the mouse button again, proper behaviour is observed.

Therefore, in order for me to go from one element to another I have to:

  1. Start the drag
  2. Release the mouse button as soon as you start the drag
  3. freely move the mouse, the element will follow the mouse
  4. release the mouse, when done.

DotComponent type should be ComponentType or FunctionComponent<T>

Hi @reactrondev,

Reading

DotComponent?: React.ComponentClass;
it seems that we can't use function component with the ComponentClass type.

Is this a voluntary constraints ? Class are becoming obsolete since react 16

It also seems that the typing is incorrect, while isActive should be in the props, the current typing force us to use Readonly<SwiperProps> which does not include isActive at all.

How to render dynamic image links?

I have tried many times to render image dynamically in the swipper using image code as below

<Image source={{uri: sellerimageURL+'/image2/'+this.state.productDetails.image_2}} style={{height: '100%', width: '100%'}} />

this code works on any other component except inside the swiper.

Any suggestion how this can be loaded.

Swipe stops inside ScrollView

The swipe doesnt work well when is inside in ScrollView.
Relevant code
<ScrollView style={{flex:1}}> <View style={{flex:1, height:120, margin:10, marginBottom:0}}> <Swiper index={0} > <View style={{flex:1,alignItems:"center",justifyContent:"center",backgroundColor:"rgba(20,200,20,0.3)"}}> <Text>Slide 1</Text> </View> <View style={{flex:1,alignItems:"center",justifyContent:"center",backgroundColor:"rgba(200,20,20,0.3)"}}> <Text>Slide2</Text> </View> </Swiper> </View> </ScrollView>
The error is more noticeable in ios

Crash when gesturesEnabled is set to false

I am facing and issue. I have set gesturesEnabled to false but it is crashing with this error

'TypeError: d is not a function. (In 'd()', 'd' is false )'

Need your help @oxyii

<Swiper controlsProps={{ prevPos: false, nextPos: false, }} gesturesEnabled={false} >

Regards,

'ViewPropTypes' is not supported in 'react-native-web' v12.0 onwards

Getting following error while running my app with react-native-web-swiper:

./node_modules/react-native-web-swiper/build/Badge.js
Attempted import error: 'ViewPropTypes' is not exported from 'react-native'.

My code is below:

    const carouselItems = carouselData.map((data, index)=>{
      return renderCarouselView(data, index);
    })
    return (
      <Swiper>
        { carouselItems }
      </Swiper>
    );

Customize next and previous button

@oxyii ..I Have tried the solution you have mentioned in the below link:
#12 (comment)

Currently, In the prevpos and nextPos I have mentioned "left" and "right" respectively. But It does not show at the edge of the Container
I guess internally it contains a margin of 20 px. I have tried with the containerWrapperStyle.. does not seems to work..:(

Nice to be able to disable swiping

This is just a suggestion.

Sometime we might want to disable swiping until a condition is met.

It should be able to use the buttons but not the swipe.

Using <> </> as a children of RNWSwiper create only one slide

I am trying to build a slide depending on a condition, for this reason, I have my JSX that look like following:

        <RNWSwiper
          from={0}
          minDistanceForAction={0.1}
        >
          {photoList.length > 0 ? photoList.map(({ filename }) => (
            <View
              key={filename}
              style={{
                flex: 1,
                alignItems: 'center',
                justifyContent: 'center',
                backgroundColor: 'transparent',
              }}
            >
              <Image
                style={{ minHeight: '100%', minWidth: '100%' }}
                source={{ uri: `${urls.dataApi}/resources/${id}/lg/${filename}` }}
              />
            </View>
          )) : (
            <>
              <View
                style={{
                  flex: 1,
                  alignItems: 'center',
                  justifyContent: 'center',
                  backgroundColor: 'rgba(20,20,200,0.3)',
                }}
              >
                <Text>Slide 1</Text>
              </View>
              <View
                style={{
                  flex: 1,
                  alignItems: 'center',
                  justifyContent: 'center',
                  backgroundColor: 'rgba(20,200,20,0.3)',
                }}
              >
                <Text>Slide 2</Text>
              </View>
              <View
                style={{
                  flex: 1,
                  alignItems: 'center',
                  justifyContent: 'center',
                  backgroundColor: 'rgba(200,20,20,0.3)',
                }}
              >
                <Text>Slide 3</Text>
              </View>
            </>
          )}
        </RNWSwiper>

This cause the 3 views to be stacked on top of each other and have only one page of slide.

While I was expecting to have 3 slides.

Any tought about this and the possible fix?

swiper Auto-height depend on text

Could you tell me react-native-web-swiper set minHeight and depend on inner text container?
For Example, small text set minHeight and full height whenever the long text has come.

Swiper rerender issue

This is an amazing swiper for sure but the inability to rerender components is kind of a deal-breaker. I would very much like to not have to make separate components just for a simple rerender.

Could you please inform me when you add that functionality?

I would love to switch back to using your swiper!!

Rerender swiper

Hello!
Now, if state was changed, swiper won't be changed.
Can you add this functionality, because it's really needed.
Thanks!

Let external state change swipter items

Hi,

I created a small example where when clicking on each option should add it to a delectable array. Depending on if an item is in this array or not, it should show a yellow border and also an external button should be displayed. How can I do this with the current version of react-native-web-swipter?

https://codesandbox.io/s/react-native-web-swiper-with-outside-state-not-working-7qtbd?file=/src/App.js

Thanks a lot for this library!

p.d.: I now you wrote "The Swiper will not be re-rendered if slides state or props have changed. Slides must control their condition." which is probably the reason for this problem but I think my case is not very uncommon and I think there should be a solution for this.

Jest : SyntaxError: Unexpected token export

There is some problem when i use this with test that jest provide.

this is my jest config, package.json
"jest": { "roots": [ "<rootDir>/src" ], "collectCoverageFrom": [ "src/**/*.{js,jsx,ts,tsx}", "!src/**/*.d.ts" ], "setupFiles": [ "react-app-polyfill/jsdom" ], "setupFilesAfterEnv": [], "testMatch": [ "<rootDir>/src/**/__tests__/**/*.{js,jsx,ts,tsx}", "<rootDir>/src/**/*.{spec,test}.{js,jsx,ts,tsx}" ], "testEnvironment": "jest-environment-jsdom-fourteen", "transform": { "^.+\\.(js|jsx|ts|tsx)$": "<rootDir>/node_modules/babel-jest", "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js", "^(?!.*\\.(js|jsx|ts|tsx|css|json)$)": "<rootDir>/config/jest/fileTransform.js" }, "transformIgnorePatterns": [ "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|ts|tsx)$", "^.+\\.module\\.(css|sass|scss)$" ], "modulePaths": [], "moduleNameMapper": { "^react-native-web-swiper$": "react-native-web-swiper", "^react-native$": "react-native-web", "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy" }, "moduleFileExtensions": [ "web.js", "js", "web.ts", "ts", "web.tsx", "tsx", "json", "web.jsx", "jsx", "node", "ttf" ], "watchPlugins": [ "jest-watch-typeahead/filename", "jest-watch-typeahead/testname" ] },

Error Screenshot :
Screen Shot 2020-02-18 at 13 13 37

What i was doin :

  • add "react-native-web-swiper" on "transformIgnorePatterns" on jest config

Appreciate that this library will run on multiple test platform, thx

ViewPropTypes is depricated

Based on (react-native-web releases 0.12.0)[https://github.com/necolas/react-native-web/releases/tag/0.12.0] ViewPropTypes is deprecated

 web  Failed to compile.
./xxxx/node_modules/react-native-web-swiper/build/Badge.js
Module not found: Can't resolve 'react-native-web/dist/exports/ViewPropTypes' in '/Users/m.soroush/Sites/xxx/node_modules/react-native-web-swiper/build'

Reset Swiper From props

I have 4 swiper items and from={1}. So I am swiping one by one so therefore current swiper index is 2, how to reset "from" props when componentWillUnmount function call?

Auto height

Is there a way to have the swiper height automatically adjust to the slide content (height) on version ^1.16.2 ?

LOOKING FOR NEW REPO OWNER

I have no time to work on this repo for community. Please comment if you can do it. I will transfer this repo and npm package into your account

Swipe stuck

Hi,

Somethings when swipping horizontal the swipe gets stuck. It moves part of the content but does not animate. I'm using the default values of minDistanceForAction & minDistanceToCapture.

Any idea what may be the problem in here ?

Also one thing: Is possible when swipe from last to first element (with loop), instead of see the animation swipping left, just swipe to right like if it was from 2nd to 1st ? I don't have much experience in react native.

Thank you.

New "rerender children" behavior in 2.2.0 causes undesired UX due to image re-render time

The new behavior introduced in 2.2.0 that automatically re-renders children as the index changes is causing undesired UX as children are swiped through. In my case, I have a large image at the top of each child, and so as the swipe begins the images are there, then as the swipe is released and moves to the next card, the images briefly disappear and the text below pops up into the space the image occupied. By the time the cards settle, the images have appeared again and the text is back in place.

I may be able to mitigate some of the adverse effect by putting the image in a container that holds the space, but that won't stop the image itself from flickering in and out.

I would advocate for adding a prop to disable this force re-render behavior. The behavior is a little bit of a heavy solution to some of the issues that it seeks to solve. I believe those issues were mostly wanting to optionally rerender children (or an individual child) through changes to their props, for example. But this solution is forcing a re-render with every swipe, even if a re-render is not desired or is potentially problematic.

[WEB] Example repo

Where can I find the steps to run the example locally for web. I have an issue that I have to file but cannot do so without having a simple repro repo first. Can you upload the source and steps for https://oxyii.github.io/react-native-web-swiper/ to run it locally on Web?

Swiper is Laggy on Mobile phones

The swiper works very well on desktop browsers, but gets laggy on some mobile phones, while on some, it does not show up at all

Swipe is not working on a Modal

Hello ! I am using react-native-web-swiper on my project.

When I use it outside a Modal, I can swipe my elements.
But when I try to put the Swiper on Modal, swiping elements is not working.

Do you know how I can do it ?
Thanks

Swipping not working android

Does the swipe gestures even work on Android ?

I have this props and it doesn't work
timeout={10}
controlsProps={{
dotsTouchable: true,
dotsPos: 'top-right',
prevPos: false,
nextPos: false,
dotActiveStyle: { backgroundColor: red },
}}

Does any one had this problem ?

Swiper getting crashed

When I am adding more than 6 components inside the swiper in my app, it's getting slower and the app getting crashed. Please help.

Swiper dynamic height based on swiper items content

Is there exists a way to make the swiper dynamic height depend on the Swipe Item content?
eg. 1 swipe item content height: 200px, 2 swipe item content height 100px;
How to make swiper dynamically resizable for the swipe items height?

Thanks for any help!

Show Prev/Next buttons all the time

Hi, thanks for the great slider!

Is there a way to make the Prev/Next buttons show all the time?

I'm working from a design where the Prev button should be shown (at lower opacity) on the first screen of the slider, and the same treatment for the Next button on the last screen.

Is this possible?

swiper won't update content on state change

If you have views in the swiper with state variables, those component won't get updated even when the state changes! This doesn't happen in 1.16 but after 2.0. Any ideas?

How to Get Current index on every slide movement.

How to Get Current index on every slide movement. I have used below method but sometime it's crashing automatically.

swiperRef.current.getActiveIndex();

TypeError: null is not an object (evaluating 'swiperRef.current.getActiveIndex')

On each slide I want to get the index number.

Also not able to run the example code using Xcode Getting below error "Library not found for -lDoubleConversion"

Please help me to resolve this.

Can't able to set the state from inside the swiper.

Hi
I was trying to make a Swiper of five pages. each page has images, and when I click on one page/ on image one Continue button will appear on it.

for this, I tried to set my initial state false and then from my button I tried to set id true, but I can't able to do this.
the state is not getting updated and the button does not appear.
Please Help.

Code:
`import React from 'react';
import { StyleSheet, Text, View, Image,SafeAreaView,
TouchableWithoutFeedback, TouchableOpacity, TouchableHighlight } from 'react-native';

import Swiper from 'react-native-web-swiper';

export default class MaleShapes extends React.Component {
constructor(props){
super(props);
this.state={
isButtonDisplayed : false,
}
}

render() {
    return (
        <SafeAreaView style={{flex: 1}}>
            <View style={styles.container}>
                <Text>Test </Text>

                <Swiper
            controlsEnabled={false}
            onIndexChanged={this.onSwipe}
            minDistanceForAction={0.10}
            > 
                <View style={styles.slideContainer}>
                     <TouchableWithoutFeedback 
                        onPress={()=>{this.setState({ isButtonDisplayed: true})}}
                         >
                                 <Image 
                                  resizeMode= 'contain'
                                  style={styles.image}
                                  source={require('../src/shape1.png')}/>
                       </TouchableWithoutFeedback> 
                    {
                        this.state.isButtonDisplayed ?

                        <TouchableOpacity 
                        onPress ={ () => {this.setState({ isButtonDisplayed: false})}}
                        style={styles.continueButton}>
                            <Text style={styles.continueText}> Continue </Text>
                        </TouchableOpacity>                                                
                   
                    : null
                    }
                </View>
               
               <View style={styles.slideContainer}>
                    <TouchableWithoutFeedback 
                     onPress={()=>{this.setState({ isButtonDisplayed: true})}}
                     >
                         <Image 
                         resizeMode= 'contain'
                         style={styles.image}
                         source={require('../src/shape2.png')}/>
                    </TouchableWithoutFeedback> 
                    {
                        this.state.isButtonDisplayed ?

                        <TouchableOpacity 
                        onPress ={ () => {this.setState({ isButtonDisplayed: false})}}
                        style={styles.continueButton}>
                            <Text style={styles.continueText}> Continue </Text>
                        </TouchableOpacity>                                                
                   
                    : null
                    }
                </View>
                      .
                      .
                      . 
             </Swiper> 
                

            </View>
        </SafeAreaView>
        )
    }
}

const styles = StyleSheet.create({
    container: {
      flex: 1,
      backgroundColor:'#fff',
      justifyContent:'center'
    },
    image:{
        width:'100%',
        height:'90%'
      },
      continueButton:{
        backgroundColor:'#2C3335',
        borderRadius:16,
        paddingVertical:14,
        paddingHorizontal:80,
        position: 'absolute',
        bottom: 120,
        left:70
      },
      continueText:{
        color:"#fff",
          fontSize:22,
      }
}
)`

Support React-Native version 0.62

Animated.event now requires a second argument for options
in Swiper (at MainView/​index.js:1168)
in MainView (created by ConnectFunction)
in ConnectFunction (created by SceneView)
in SceneView (at StackViewLayout.tsx:900)
in StackViewLayout (created by withOrientation)
in withOrientation (at StackView.tsx:104)
in Transitioner (at StackView.tsx:41)
in StackView (created by Navigator)
in Navigator (created by KeyboardAwareNavigator)
in KeyboardAwareNavigator (created by SceneView)
in SceneView (created by Drawer)
in Drawer (created by DrawerView)
in DrawerView (created by Navigator)
in Navigator (created by NavigationContainer)
in NavigationContainer (at App.js:24)
in App

Animated: useNativeDriver was not specified. This is a required option and must be explicitly set to true or false
in Swiper (at MainView/​index.js:1168)
in MainView (created by ConnectFunction)
in ConnectFunction (created by SceneView)
in SceneView (at StackViewLayout.tsx:900)
in StackViewLayout (created by withOrientation)
in withOrientation (at StackView.tsx:104)
in Transitioner (at StackView.tsx:41)
in StackView (created by Navigator)
in Navigator (created by KeyboardAwareNavigator)
in KeyboardAwareNavigator (created by SceneView)
in SceneView (created by Drawer)
in Drawer (created by DrawerView)
in DrawerView (created by Navigator)
in Navigator (created by NavigationContainer)
in NavigationContainer (at App.js:24)
in App

RTL Limitation

Currently, when a RTL language is active the slider will detect swipes to the right as "go to next slide" when it should be "go to previous" as the RTL layout changes the swipe direction. Is an issue for the cases where the controls are hidden and depend only on user swiping for changing slides.

About Pagination

Thanks for supporting me , I have another question for Pagination, Could tell you tell me how to get item by Pagination ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.