react-native-reanimated-tab-view
TypeScript icon, indicating that this package has built-in type declarations

0.4.3 • Public • Published

react-native-reanimated-tab-view

An implementation of Tab View fully managed by react-native-reanimated library.

⚠️ This library is currently under development, production use is not recommended. ⚠️

Feel free to open new issue.

Installation

yarn add react-native-reanimated-tab-view

To run properly, it needs to install two other dependencies:.

Library Supported version
react-native-reanimated >=3.3.0
react-native-gesture-handler >= 2.12.0

Dependency Installation

yarn add react-native-reanimated react-native-gesture-handler

According to react-native-reanimated documentation, it needs to add this line in babel.config.js

module.exports = {
  presets: [/*...*/],
  plugins: [/* other plugins, */ 'react-native-reanimated/plugin'], // <-- add this (the reanimated's plugin MUST BE the last)
};

Usage Example

import React, { useMemo, useState } from 'react';
import { View } from 'react-native';
import { ReanimatedTabView, SceneMap } from 'react-native-reanimated-tab-view';

export const TabView = () => {
  const [index, setIndex] = useState(0);
  const renderScene = SceneMap({
    first: <View style={{ flex: 1, backgroundColor: 'blue' }} />,
    second: <View style={{ flex: 1, backgroundColor: 'yellow' }} />,
    third: <View style={{ flex: 1, backgroundColor: 'red' }} />,
  });

  const routes = useMemo(
    () => [
      { key: 'first', title: 'Posts' },
      { key: 'second', title: 'Reels' },
      { key: 'third', title: 'Tagged' },
    ],
    []
  );
  return (
    <SafeAreaView style={{ flex: 1 }}>
      <ReanimatedTabView
        navigationState={{ index, routes }}
        renderScene={renderScene}
        onIndexChange={setIndex}
      />
    </View>
  );
};

To see full implementation, see example folder

Properties

Property Description Type Required Default
renderScene Used to render each card specified in the code function true -
navigationState Object accepts index and routes to manage the visible screen NavigationState true -
onIndexChange Callback to pass the current index on the parent component function true -
percentageTrigger The portion of screen you have to swipe before change tab number false 0.4
positionInterpolation Object to manipulate animation passed to TabBar component PositionInterpolation false -
lazy Decide to render only visible tabs or all tabs at component's mount boolean false false
LazyPlaceholder Component to render when lazy is true function false null
renderTabBar Used to render a TabBar custom component function false -

Types

Route { key: string; title: string }

NavigationState { index: number; routes: Route[] }

PositionInterpolation { input: number[]; output: number[] }

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT


Made with create-react-native-library

/react-native-reanimated-tab-view/

    Package Sidebar

    Install

    npm i react-native-reanimated-tab-view

    Weekly Downloads

    4

    Version

    0.4.3

    License

    MIT

    Unpacked Size

    58.6 kB

    Total Files

    38

    Last publish

    Collaborators

    • risck256