@momo-kits/tab-view 0.102.1-beta.1 → 0.102.3-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/index.tsx +32 -13
  2. package/package.json +16 -16
  3. package/publish.sh +5 -5
  4. package/types.ts +4 -0
package/index.tsx CHANGED
@@ -1,6 +1,14 @@
1
- import React, {FC, useCallback, useContext, useRef, useState} from 'react';
1
+ import React, {
2
+ forwardRef,
3
+ ForwardRefRenderFunction,
4
+ useCallback,
5
+ useContext,
6
+ useImperativeHandle,
7
+ useRef,
8
+ useState,
9
+ } from 'react';
2
10
  import {Animated, LayoutChangeEvent, View} from 'react-native';
3
- import {Tab, TabViewProps} from './types';
11
+ import {Tab, TabViewProps, TabViewRef} from './types';
4
12
  import TabBar from './tabBar/TabBar';
5
13
  import styles from './styles';
6
14
  import CardTabBar from './tabBar/CardTabBar';
@@ -8,17 +16,20 @@ import ScrollableTabBar from './tabBar/SrollableTabBar';
8
16
  import PagerView from 'react-native-pager-view';
9
17
  import {ApplicationContext} from '@momo-kits/foundation';
10
18
 
11
- const TabView: FC<TabViewProps> = ({
12
- scrollable = false,
13
- tabs = [],
14
- onPressTabItem,
15
- type = 'default',
16
- initialPage = 0,
17
- pagerProps,
18
- direction,
19
- selectedColor,
20
- unselectedColor,
21
- }) => {
19
+ const TabComponent: ForwardRefRenderFunction<TabViewRef, TabViewProps> = (
20
+ {
21
+ scrollable = false,
22
+ tabs = [],
23
+ onPressTabItem,
24
+ type = 'default',
25
+ initialPage = 0,
26
+ pagerProps,
27
+ direction,
28
+ selectedColor,
29
+ unselectedColor,
30
+ },
31
+ ref
32
+ ) => {
22
33
  const startPage =
23
34
  initialPage > tabs.length - 1 ? tabs.length - 1 : initialPage;
24
35
  const [selectedIndex, setSelectedIndex] = useState(startPage);
@@ -69,6 +80,12 @@ const TabView: FC<TabViewProps> = ({
69
80
  [tabs]
70
81
  );
71
82
 
83
+ useImperativeHandle(ref, () => ({
84
+ goToPage: (page: number) => {
85
+ if (page >= 0 && page <= tabs.length) pagerRef.current?.setPage(page);
86
+ },
87
+ }));
88
+
72
89
  return (
73
90
  <View onLayout={onLayout} style={[styles.tabView, {flex: 1}]}>
74
91
  <View>
@@ -97,5 +114,7 @@ const TabView: FC<TabViewProps> = ({
97
114
  );
98
115
  };
99
116
 
117
+ const TabView = forwardRef(TabComponent);
118
+
100
119
  export {CardTabBar, ScrollableTabBar, TabBar, TabView};
101
120
  export type {TabViewProps, Tab};
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
- "name": "@momo-kits/tab-view",
3
- "version": "0.102.1-beta.1",
4
- "private": false,
5
- "main": "index.tsx",
6
- "dependencies": {},
7
- "peerDependencies": {
8
- "@momo-kits/foundation": "latest",
9
- "prop-types": "^15.7.2",
10
- "react": "16.9.0",
11
- "react-native": ">=0.55"
12
- },
13
- "devDependencies": {
14
- "@momo-platform/versions": "4.1.11"
15
- },
16
- "license": "MoMo"
17
- }
2
+ "name": "@momo-kits/tab-view",
3
+ "version": "0.102.3-beta.0",
4
+ "private": false,
5
+ "main": "index.tsx",
6
+ "dependencies": {},
7
+ "peerDependencies": {
8
+ "@momo-kits/foundation": "latest",
9
+ "prop-types": "^15.7.2",
10
+ "react": "16.9.0",
11
+ "react-native": ">=0.55"
12
+ },
13
+ "devDependencies": {
14
+ "@momo-platform/versions": "4.1.11"
15
+ },
16
+ "license": "MoMo"
17
+ }
package/publish.sh CHANGED
@@ -7,15 +7,15 @@ rsync -r --exclude=/dist ./* dist
7
7
  cd dist
8
8
 
9
9
  if [ "$1" == "stable" ]; then
10
- npm version $(npm view @momo-kits/tab-view@stable version)
11
- npm version patch
10
+ #npm version $(npm view @momo-kits/tab-view@stable version)
11
+ #npm version patch
12
12
  npm publish --tag stable --access=public
13
13
  elif [ "$1" == "latest" ]; then
14
- npm version $(npm view @momo-kits/foundation@latest version)
14
+ #npm version $(npm view @momo-kits/foundation@latest version)
15
15
  npm publish --tag latest --access=public
16
16
  else
17
- npm version $(npm view @momo-kits/tab-view@beta version)
18
- npm version prerelease --preid=beta
17
+ #npm version $(npm view @momo-kits/tab-view@beta version)
18
+ #npm version prerelease --preid=beta
19
19
  npm publish --tag beta --access=public
20
20
  fi
21
21
 
package/types.ts CHANGED
@@ -145,3 +145,7 @@ export type TabBarProps = {
145
145
 
146
146
  unselectedColor?: string;
147
147
  };
148
+
149
+ export type TabViewRef = {
150
+ goToPage: (page: number) => void;
151
+ };