rn-vs-lb 1.0.30 → 1.0.32

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.
@@ -1,20 +1,91 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var react_1 = __importDefault(require("react"));
29
+ exports.BottomTab = exports.LbTypes = void 0;
30
+ var react_1 = __importStar(require("react"));
7
31
  var react_native_1 = require("react-native");
32
+ var theme_1 = require("../../constants/theme");
33
+ var Octicons_1 = __importDefault(require("react-native-vector-icons/Octicons"));
34
+ var Ionicons_1 = __importDefault(require("react-native-vector-icons/Ionicons"));
35
+ var MaterialIcons_1 = __importDefault(require("react-native-vector-icons/MaterialIcons"));
36
+ var LbTypes;
37
+ (function (LbTypes) {
38
+ LbTypes["OCTICONS"] = "Octicons";
39
+ LbTypes["IONICONS"] = "Ionicons";
40
+ LbTypes["MATERIALICONS"] = "MaterialIcons";
41
+ })(LbTypes || (exports.LbTypes = LbTypes = {}));
42
+ var renderIcon = function (tab) {
43
+ switch (tab.lb) {
44
+ case LbTypes.OCTICONS:
45
+ return react_1.default.createElement(Octicons_1.default, { name: tab.iconName, size: tab.size, color: "#475A77" });
46
+ case LbTypes.IONICONS:
47
+ return react_1.default.createElement(Ionicons_1.default, { name: tab.iconName, size: tab.size, color: "#475A77" });
48
+ case LbTypes.MATERIALICONS:
49
+ return react_1.default.createElement(MaterialIcons_1.default, { name: tab.iconName, size: tab.size, color: "#475A77" });
50
+ default:
51
+ return null;
52
+ }
53
+ };
8
54
  var BottomTab = function (_a) {
9
- var tabs = _a.tabs;
10
- return (react_1.default.createElement(react_native_1.View, { style: styles.tabContainer }, tabs.map(function (tab, index) { return (react_1.default.createElement(react_native_1.TouchableOpacity, { key: index, onPress: tab.onPress, style: [styles.tabButton, tab.isActive && styles.tabButtonActive] },
11
- react_1.default.createElement(react_native_1.Text, null, tab.label))); })));
55
+ var tabs = _a.tabs, onPress = _a.onPress, activeTabIndex = _a.activeTabIndex;
56
+ var _b = (0, react_1.useState)(activeTabIndex), activeTab = _b[0], setActiveTab = _b[1];
57
+ (0, react_1.useEffect)(function () {
58
+ setActiveTab(activeTabIndex);
59
+ }, [activeTabIndex]);
60
+ var tabWidth = theme_1.SIZES.width;
61
+ var tabW = tabWidth < theme_1.SIZES.container ? tabWidth / tabs.length : theme_1.SIZES.container / tabs.length;
62
+ var circlePosition = (0, react_1.useRef)(new react_native_1.Animated.Value(tabWidth < theme_1.SIZES.container ? tabWidth / 2.5 : theme_1.SIZES.container / 2.5)).current;
63
+ (0, react_1.useEffect)(function () {
64
+ react_native_1.Animated.spring(circlePosition, {
65
+ toValue: activeTab * tabW,
66
+ useNativeDriver: true,
67
+ }).start();
68
+ }, [activeTab]);
69
+ return (react_1.default.createElement(react_native_1.View, { style: styles.tabContainer },
70
+ react_1.default.createElement(react_native_1.Animated.View, { style: [
71
+ styles.circle,
72
+ {
73
+ width: tabW,
74
+ transform: [{ translateX: circlePosition }],
75
+ },
76
+ ] },
77
+ react_1.default.createElement(react_native_1.View, { style: styles.circleInner })),
78
+ tabs.map(function (tab, index) { return (react_1.default.createElement(react_native_1.TouchableOpacity, { key: index, activeOpacity: 0.8, onPress: function () {
79
+ setActiveTab(index);
80
+ onPress(tab.route);
81
+ }, style: styles.tabButton }, renderIcon(tab))); })));
12
82
  };
83
+ exports.BottomTab = BottomTab;
13
84
  var styles = react_native_1.StyleSheet.create({
14
85
  tabContainer: {
15
86
  flexDirection: 'row',
16
87
  height: 60,
17
- backgroundColor: '#f0f0f0',
88
+ backgroundColor: theme_1.COLORS.card,
18
89
  alignItems: 'center',
19
90
  },
20
91
  tabButton: {
@@ -22,8 +93,26 @@ var styles = react_native_1.StyleSheet.create({
22
93
  alignItems: 'center',
23
94
  justifyContent: 'center',
24
95
  },
25
- tabButtonActive: {
26
- backgroundColor: '#ddd',
96
+ circle: {
97
+ position: 'absolute',
98
+ height: '100%',
99
+ alignItems: 'center',
100
+ justifyContent: 'center',
101
+ },
102
+ circleInner: {
103
+ height: 40,
104
+ width: 40,
105
+ borderRadius: 20,
106
+ backgroundColor: theme_1.COLORS.primary,
107
+ opacity: 0.15,
108
+ },
109
+ iconImage: {
110
+ width: 20,
111
+ height: 20,
112
+ },
113
+ profileImage: {
114
+ width: 34,
115
+ height: 34,
116
+ borderRadius: 50,
27
117
  },
28
118
  });
29
- exports.default = BottomTab;
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BottomTab = void 0;
3
+ exports.LbTypes = exports.BottomTab = void 0;
7
4
  var Footer_1 = require("./Footer");
8
- Object.defineProperty(exports, "BottomTab", { enumerable: true, get: function () { return __importDefault(Footer_1).default; } });
5
+ Object.defineProperty(exports, "BottomTab", { enumerable: true, get: function () { return Footer_1.BottomTab; } });
6
+ Object.defineProperty(exports, "LbTypes", { enumerable: true, get: function () { return Footer_1.LbTypes; } });
@@ -1,12 +1,20 @@
1
1
  import React from 'react';
2
+ export declare enum LbTypes {
3
+ OCTICONS = "Octicons",
4
+ IONICONS = "Ionicons",
5
+ MATERIALICONS = "MaterialIcons"
6
+ }
2
7
  interface Tab {
3
- key: string;
4
- label: string;
5
- isActive: boolean;
6
- onPress: () => void;
8
+ name: string;
9
+ iconName: string;
10
+ size: number;
11
+ lb: LbTypes;
12
+ route: string;
7
13
  }
8
- interface BottomTabProps {
14
+ type BottomTabProps = {
9
15
  tabs: Tab[];
10
- }
11
- declare const BottomTab: React.FC<BottomTabProps>;
12
- export default BottomTab;
16
+ onPress: (route: string) => void;
17
+ activeTabIndex: number;
18
+ };
19
+ export declare const BottomTab: React.FC<BottomTabProps>;
20
+ export {};
@@ -1 +1 @@
1
- export { default as BottomTab } from "./Footer";
1
+ export { BottomTab, LbTypes } from "./Footer";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rn-vs-lb",
3
- "version": "1.0.30",
3
+ "version": "1.0.32",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/types/index.d.ts",
6
6
  "scripts": {