diff --git a/examples/default/babel.config.js b/examples/default/babel.config.js
index f842b77fcf..983e075de7 100644
--- a/examples/default/babel.config.js
+++ b/examples/default/babel.config.js
@@ -1,3 +1,4 @@
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
+ plugins: ['react-native-reanimated/plugin'],
};
diff --git a/examples/default/index.js b/examples/default/index.js
index ab752cb6e3..9733db05ea 100644
--- a/examples/default/index.js
+++ b/examples/default/index.js
@@ -1,3 +1,4 @@
+import 'react-native-gesture-handler';
import { AppRegistry } from 'react-native';
import { name as appName } from './app.json';
diff --git a/examples/default/ios/Podfile.lock b/examples/default/ios/Podfile.lock
index 4e63cac81d..4ba008d477 100644
--- a/examples/default/ios/Podfile.lock
+++ b/examples/default/ios/Podfile.lock
@@ -379,6 +379,8 @@ PODS:
- glog
- react-native-safe-area-context (4.7.1):
- React-Core
+ - react-native-slider (4.4.3):
+ - React-Core
- React-NativeModulesApple (0.72.3):
- hermes-engine
- React-callinvoker
@@ -489,9 +491,41 @@ PODS:
- React-jsi (= 0.72.3)
- React-logger (= 0.72.3)
- React-perflogger (= 0.72.3)
+ - RNGestureHandler (2.13.4):
+ - RCT-Folly (= 2021.07.22.00)
+ - React-Core
- RNInstabug (12.4.0):
- Instabug (= 12.4.0)
- React-Core
+ - RNReanimated (3.5.4):
+ - DoubleConversion
+ - FBLazyVector
+ - glog
+ - hermes-engine
+ - RCT-Folly
+ - RCTRequired
+ - RCTTypeSafety
+ - React-callinvoker
+ - React-Core
+ - React-Core/DevSupport
+ - React-Core/RCTWebSocket
+ - React-CoreModules
+ - React-cxxreact
+ - React-hermes
+ - React-jsi
+ - React-jsiexecutor
+ - React-jsinspector
+ - React-RCTActionSheet
+ - React-RCTAnimation
+ - React-RCTAppDelegate
+ - React-RCTBlob
+ - React-RCTImage
+ - React-RCTLinking
+ - React-RCTNetwork
+ - React-RCTSettings
+ - React-RCTText
+ - ReactCommon/turbomodule/core
+ - Yoga
- RNScreens (3.24.0):
- React-Core
- React-RCTImage
@@ -552,6 +586,7 @@ DEPENDENCIES:
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
- React-logger (from `../node_modules/react-native/ReactCommon/logger`)
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
+ - "react-native-slider (from `../node_modules/@react-native-community/slider`)"
- React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
- React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
@@ -569,7 +604,9 @@ DEPENDENCIES:
- React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
- React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
+ - RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
- RNInstabug (from `../node_modules/instabug-reactnative`)
+ - RNReanimated (from `../node_modules/react-native-reanimated`)
- RNScreens (from `../node_modules/react-native-screens`)
- RNSVG (from `../node_modules/react-native-svg`)
- RNVectorIcons (from `../node_modules/react-native-vector-icons`)
@@ -640,6 +677,8 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/logger"
react-native-safe-area-context:
:path: "../node_modules/react-native-safe-area-context"
+ react-native-slider:
+ :path: "../node_modules/@react-native-community/slider"
React-NativeModulesApple:
:path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
React-perflogger:
@@ -674,8 +713,12 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/react/utils"
ReactCommon:
:path: "../node_modules/react-native/ReactCommon"
+ RNGestureHandler:
+ :path: "../node_modules/react-native-gesture-handler"
RNInstabug:
:path: "../node_modules/instabug-reactnative"
+ RNReanimated:
+ :path: "../node_modules/react-native-reanimated"
RNScreens:
:path: "../node_modules/react-native-screens"
RNSVG:
@@ -722,6 +765,7 @@ SPEC CHECKSUMS:
React-jsinspector: b511447170f561157547bc0bef3f169663860be7
React-logger: c5b527272d5f22eaa09bb3c3a690fee8f237ae95
react-native-safe-area-context: 9697629f7b2cda43cf52169bb7e0767d330648c2
+ react-native-slider: 1cdd6ba29675df21f30544253bf7351d3c2d68c4
React-NativeModulesApple: c57f3efe0df288a6532b726ad2d0322a9bf38472
React-perflogger: 6bd153e776e6beed54c56b0847e1220a3ff92ba5
React-RCTActionSheet: c0b62af44e610e69d9a2049a682f5dba4e9dff17
@@ -739,7 +783,9 @@ SPEC CHECKSUMS:
React-runtimescheduler: 837c1bebd2f84572db17698cd702ceaf585b0d9a
React-utils: bcb57da67eec2711f8b353f6e3d33bd8e4b2efa3
ReactCommon: 3ccb8fb14e6b3277e38c73b0ff5e4a1b8db017a9
+ RNGestureHandler: 6e46dde1f87e5f018a54fe5d40cd0e0b942b49ee
RNInstabug: ae604474d8e74d7bd2bee96ccbcfd9d7e12a61fe
+ RNReanimated: ab2e96c6d5591c3dfbb38a464f54c8d17fb34a87
RNScreens: b21dc57dfa2b710c30ec600786a3fc223b1b92e7
RNSVG: 80584470ff1ffc7994923ea135a3e5ad825546b9
RNVectorIcons: 8b5bb0fa61d54cd2020af4f24a51841ce365c7e9
diff --git a/examples/default/package.json b/examples/default/package.json
index 26592d3f75..6a8ed709b0 100644
--- a/examples/default/package.json
+++ b/examples/default/package.json
@@ -9,6 +9,7 @@
"lint": "eslint ."
},
"dependencies": {
+ "@react-native-community/slider": "^4.4.3",
"@react-navigation/bottom-tabs": "^6.5.7",
"@react-navigation/native": "^6.1.6",
"@react-navigation/native-stack": "^6.9.12",
@@ -16,6 +17,8 @@
"native-base": "^3.4.28",
"react": "18.2.0",
"react-native": "0.72.3",
+ "react-native-gesture-handler": "^2.13.4",
+ "react-native-reanimated": "^3.5.4",
"react-native-safe-area-context": "^4.5.3",
"react-native-screens": "^3.20.0",
"react-native-svg": "^13.9.0",
diff --git a/examples/default/src/App.tsx b/examples/default/src/App.tsx
index fbd116e5aa..6dff03618d 100644
--- a/examples/default/src/App.tsx
+++ b/examples/default/src/App.tsx
@@ -1,5 +1,7 @@
import React, { useEffect } from 'react';
+import { StyleSheet } from 'react-native';
+import { GestureHandlerRootView } from 'react-native-gesture-handler';
import { NavigationContainer } from '@react-navigation/native';
import Instabug, { InvocationEvent, LogLevel } from 'instabug-reactnative';
import { NativeBaseProvider } from 'native-base';
@@ -18,10 +20,18 @@ export const App: React.FC = () => {
}, []);
return (
-
-
-
-
-
+
+
+
+
+
+
+
);
};
+
+const styles = StyleSheet.create({
+ root: {
+ flex: 1,
+ },
+});
diff --git a/examples/default/src/components/Screen.tsx b/examples/default/src/components/Screen.tsx
index 63745b8cbe..c0f296aaa8 100644
--- a/examples/default/src/components/Screen.tsx
+++ b/examples/default/src/components/Screen.tsx
@@ -4,7 +4,7 @@ import { VStack } from 'native-base';
export const Screen: React.FC = ({ children }) => {
return (
-
+
{children}
);
diff --git a/examples/default/src/components/Section.tsx b/examples/default/src/components/Section.tsx
new file mode 100644
index 0000000000..eed7586e2b
--- /dev/null
+++ b/examples/default/src/components/Section.tsx
@@ -0,0 +1,20 @@
+import React from 'react';
+import { Heading, VStack } from 'native-base';
+
+interface SectionProps {
+ title: string;
+ flex?: number;
+ children?: React.ReactNode;
+}
+
+export const Section: React.FC = ({ title, flex, children }) => {
+ return (
+
+
+ {title}
+
+
+ {children}
+
+ );
+};
diff --git a/examples/default/src/images/logo.png b/examples/default/src/images/logo.png
new file mode 100644
index 0000000000..4d71f0134c
Binary files /dev/null and b/examples/default/src/images/logo.png differ
diff --git a/examples/default/src/navigation/HomeStack.tsx b/examples/default/src/navigation/HomeStack.tsx
index 737a257558..360a274448 100644
--- a/examples/default/src/navigation/HomeStack.tsx
+++ b/examples/default/src/navigation/HomeStack.tsx
@@ -8,6 +8,12 @@ import { FeatureRequestsScreen } from '../screens/FeatureRequestsScreen';
import { HomeScreen } from '../screens/HomeScreen';
import { RepliesScreen } from '../screens/RepliesScreen';
import { SurveysScreen } from '../screens/SurveysScreen';
+import { UserStepsScreen } from '../screens/user-steps/UserStepsScreen';
+import { BasicComponentsScreen } from '../screens/user-steps/BasicComponentsScreen';
+import { ScrollViewScreen } from '../screens/user-steps/ScrollViewScreen';
+import { FlatListScreen } from '../screens/user-steps/FlatListScreen';
+import { SectionListScreen } from '../screens/user-steps/SectionListScreen';
+import { GesturesScreen } from '../screens/user-steps/GesturesScreen';
export type HomeStackParamList = {
Home: undefined;
@@ -16,6 +22,12 @@ export type HomeStackParamList = {
FeatureRequests: undefined;
Replies: undefined;
Surveys: undefined;
+ UserSteps: undefined;
+ BasicComponents: undefined;
+ ScrollView: undefined;
+ FlatList: undefined;
+ SectionList: undefined;
+ Gestures: undefined;
};
const HomeStack = createNativeStackNavigator();
@@ -41,6 +53,32 @@ export const HomeStackNavigator: React.FC = () => {
/>
+
+
+
+
+
+
);
};
diff --git a/examples/default/src/screens/HomeScreen.tsx b/examples/default/src/screens/HomeScreen.tsx
index cf74a1d435..8ec8bd65f7 100644
--- a/examples/default/src/screens/HomeScreen.tsx
+++ b/examples/default/src/screens/HomeScreen.tsx
@@ -16,6 +16,7 @@ export const HomeScreen: React.FC navigation.navigate('FeatureRequests')} />
navigation.navigate('Replies')} />
navigation.navigate('Surveys')} />
+ navigation.navigate('UserSteps')} />
);
};
diff --git a/examples/default/src/screens/user-steps/BasicComponentsScreen.tsx b/examples/default/src/screens/user-steps/BasicComponentsScreen.tsx
new file mode 100644
index 0000000000..4149ad5e80
--- /dev/null
+++ b/examples/default/src/screens/user-steps/BasicComponentsScreen.tsx
@@ -0,0 +1,134 @@
+import React, { useState } from 'react';
+import {
+ Alert,
+ Button,
+ Image,
+ Pressable,
+ StyleSheet,
+ Text,
+ TextInput,
+ TouchableOpacity,
+ Switch,
+ useWindowDimensions,
+ ActivityIndicator,
+} from 'react-native';
+import Slider from '@react-native-community/slider';
+import { Center, HStack, ScrollView, VStack } from 'native-base';
+
+import { Screen } from '../../components/Screen';
+import { Section } from '../../components/Section';
+import { nativeBaseTheme } from '../../theme/nativeBaseTheme';
+
+/**
+ * A screen that demonstates the usage of user steps with basic React Native components.
+ *
+ * This specific screen doesn't use NativeBase in some parts since we need to focus on
+ * capturing React Native provided components rather than implementations built on top of it.
+ */
+export const BasicComponentsScreen: React.FC = () => {
+ const [isSwitchOn, setIsSwitchOn] = useState(false);
+ const { width } = useWindowDimensions();
+
+ const onPress = (label: string) => {
+ return () => {
+ Alert.alert(`Pressed "${label}"`);
+ };
+ };
+
+ return (
+
+
+
+
+ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Alias tempore inventore quas
+ cum cupiditate ratione, iusto itaque natus maiores fugit.
+
+
+
+
+
+
+
+
+
+
+
+
+ Pressable Button
+
+
+
+ Touchable Button
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+const formControlStyles = StyleSheet.create({
+ formControl: {
+ paddingVertical: 16,
+ paddingHorizontal: 24,
+ fontSize: 16,
+ borderRadius: 5,
+ },
+});
+
+const styles = StyleSheet.create({
+ text: {
+ fontSize: 16,
+ lineHeight: 24,
+ },
+ image: {
+ resizeMode: 'contain',
+ },
+ textInput: StyleSheet.flatten([
+ formControlStyles.formControl,
+ {
+ backgroundColor: 'white',
+ borderWidth: 1,
+ borderColor: '#ccc',
+ },
+ ]),
+ buttonText: {
+ color: 'white',
+ textAlign: 'center',
+ fontWeight: 'bold',
+ },
+ button: StyleSheet.flatten([
+ formControlStyles.formControl,
+ {
+ backgroundColor: nativeBaseTheme.colors.primary[600],
+ },
+ ]),
+});
diff --git a/examples/default/src/screens/user-steps/FlatListScreen.tsx b/examples/default/src/screens/user-steps/FlatListScreen.tsx
new file mode 100644
index 0000000000..7ab8caa2ef
--- /dev/null
+++ b/examples/default/src/screens/user-steps/FlatListScreen.tsx
@@ -0,0 +1,38 @@
+import React from 'react';
+import { FlatList, RefreshControl } from 'react-native';
+import { Skeleton } from 'native-base';
+
+import { Screen } from '../../components/Screen';
+import { Section } from '../../components/Section';
+import { createList } from '../../utils/createList';
+import { useDelayedRefresh } from '../../utils/useDelayedRefresh';
+
+export const FlatListScreen: React.FC = () => {
+ const { refreshing, onRefresh } = useDelayedRefresh();
+
+ return (
+
+
+ item.toString()}
+ renderItem={() => (
+
+ )}
+ />
+
+
+
+ }
+ data={createList(20)}
+ keyExtractor={(item) => item.toString()}
+ renderItem={() => (
+
+ )}
+ />
+
+
+ );
+};
diff --git a/examples/default/src/screens/user-steps/GesturesScreen.tsx b/examples/default/src/screens/user-steps/GesturesScreen.tsx
new file mode 100644
index 0000000000..655a85b8de
--- /dev/null
+++ b/examples/default/src/screens/user-steps/GesturesScreen.tsx
@@ -0,0 +1,93 @@
+import React from 'react';
+import { Alert, ScrollView } from 'react-native';
+
+import Animated, { runOnJS, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';
+import { Gesture, GestureDetector, Swipeable } from 'react-native-gesture-handler';
+import { Box, Center, Text } from 'native-base';
+
+import { Screen } from '../../components/Screen';
+import { Section } from '../../components/Section';
+
+const AnimatedBox = Animated.createAnimatedComponent(Box);
+
+export const GesturesScreen: React.FC = () => {
+ const showAlert = (message: string) => {
+ Alert.alert(message);
+ };
+
+ const tapGesture = Gesture.Tap()
+ .maxDuration(250)
+ .onStart(() => {
+ runOnJS(showAlert)('Tapped.');
+ });
+
+ const doubleTapGesture = Gesture.Tap()
+ .maxDuration(250)
+ .numberOfTaps(2)
+ .onStart(() => {
+ runOnJS(showAlert)('Double tapped.');
+ });
+
+ const scale = useSharedValue(1);
+ const savedScale = useSharedValue(1);
+ const pinchGesture = Gesture.Pinch()
+ .onUpdate((e) => {
+ scale.value = savedScale.value * e.scale;
+ })
+ .onEnd(() => {
+ savedScale.value = scale.value;
+ });
+ const pinchStyle = useAnimatedStyle(() => ({ transform: [{ scale: scale.value }] }));
+
+ return (
+
+
+
+
+
+
+
+
+ Double Tap
+
+
+
+
+
+
+ }
+ renderRightActions={() => }>
+
+
+ Swipe
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/examples/default/src/screens/user-steps/ScrollViewScreen.tsx b/examples/default/src/screens/user-steps/ScrollViewScreen.tsx
new file mode 100644
index 0000000000..f0eab8e3ff
--- /dev/null
+++ b/examples/default/src/screens/user-steps/ScrollViewScreen.tsx
@@ -0,0 +1,37 @@
+import React from 'react';
+
+import { Screen } from '../../components/Screen';
+import { RefreshControl, ScrollView } from 'react-native';
+import { VStack, Skeleton, HStack } from 'native-base';
+import { createList } from '../../utils/createList';
+import { Section } from '../../components/Section';
+import { useDelayedRefresh } from '../../utils/useDelayedRefresh';
+
+export const ScrollViewScreen: React.FC = () => {
+ const { refreshing, onRefresh } = useDelayedRefresh();
+
+ return (
+
+
+
+
+ {createList(10).map((num) => (
+
+ ))}
+
+
+
+
+
+ }>
+
+ {createList(20).map((num) => (
+
+ ))}
+
+
+
+
+ );
+};
diff --git a/examples/default/src/screens/user-steps/SectionListScreen.tsx b/examples/default/src/screens/user-steps/SectionListScreen.tsx
new file mode 100644
index 0000000000..f392129b08
--- /dev/null
+++ b/examples/default/src/screens/user-steps/SectionListScreen.tsx
@@ -0,0 +1,40 @@
+import React from 'react';
+import { RefreshControl, SectionList } from 'react-native';
+import { Heading, Skeleton } from 'native-base';
+
+import { Screen } from '../../components/Screen';
+import { createList } from '../../utils/createList';
+import { useDelayedRefresh } from '../../utils/useDelayedRefresh';
+
+const sections = [
+ {
+ title: 'Section A',
+ data: createList(10),
+ },
+ {
+ title: 'Section B',
+ data: createList(10),
+ },
+];
+
+export const SectionListScreen: React.FC = () => {
+ const { refreshing, onRefresh } = useDelayedRefresh();
+
+ return (
+
+ }
+ sections={sections}
+ keyExtractor={(item) => item.toString()}
+ renderSectionHeader={(info) => (
+
+ {info.section.title}
+
+ )}
+ renderItem={() => (
+
+ )}
+ />
+
+ );
+};
diff --git a/examples/default/src/screens/user-steps/UserStepsScreen.tsx b/examples/default/src/screens/user-steps/UserStepsScreen.tsx
new file mode 100644
index 0000000000..219cd5bbd6
--- /dev/null
+++ b/examples/default/src/screens/user-steps/UserStepsScreen.tsx
@@ -0,0 +1,20 @@
+import React from 'react';
+
+import { ListTile } from '../../components/ListTile';
+import { Screen } from '../../components/Screen';
+import type { HomeStackParamList } from '../../navigation/HomeStack';
+import type { NativeStackScreenProps } from '@react-navigation/native-stack';
+
+export const UserStepsScreen: React.FC> = ({
+ navigation,
+}) => {
+ return (
+
+ navigation.navigate('BasicComponents')} />
+ navigation.navigate('ScrollView')} />
+ navigation.navigate('FlatList')} />
+ navigation.navigate('SectionList')} />
+ navigation.navigate('Gestures')} />
+
+ );
+};
diff --git a/examples/default/src/utils/createList.ts b/examples/default/src/utils/createList.ts
new file mode 100644
index 0000000000..1719c2d75c
--- /dev/null
+++ b/examples/default/src/utils/createList.ts
@@ -0,0 +1,3 @@
+export function createList(length: number) {
+ return Array.from({ length }, (_, i) => i + 1);
+}
diff --git a/examples/default/src/utils/useDelayedRefresh.ts b/examples/default/src/utils/useDelayedRefresh.ts
new file mode 100644
index 0000000000..813acc0c94
--- /dev/null
+++ b/examples/default/src/utils/useDelayedRefresh.ts
@@ -0,0 +1,18 @@
+import { useState } from 'react';
+
+export function useDelayedRefresh() {
+ const [refreshing, setIsRefreshing] = useState(false);
+
+ const onRefresh = () => {
+ if (refreshing) {
+ return;
+ }
+
+ setIsRefreshing(true);
+ setTimeout(() => {
+ setIsRefreshing(false);
+ }, 1000);
+ };
+
+ return { refreshing, onRefresh };
+}
diff --git a/examples/default/yarn.lock b/examples/default/yarn.lock
index 9a695546a7..3ac196cf5a 100644
--- a/examples/default/yarn.lock
+++ b/examples/default/yarn.lock
@@ -93,7 +93,7 @@
"@babel/helper-split-export-declaration" "^7.22.6"
semver "^6.3.1"
-"@babel/helper-create-class-features-plugin@^7.22.11":
+"@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15":
version "7.22.15"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4"
integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==
@@ -133,6 +133,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==
+"@babel/helper-environment-visitor@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+ integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
+
"@babel/helper-function-name@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be"
@@ -162,6 +167,13 @@
dependencies:
"@babel/types" "^7.22.5"
+"@babel/helper-module-imports@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+ integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
+ dependencies:
+ "@babel/types" "^7.22.15"
+
"@babel/helper-module-imports@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c"
@@ -180,6 +192,17 @@
"@babel/helper-split-export-declaration" "^7.22.6"
"@babel/helper-validator-identifier" "^7.22.5"
+"@babel/helper-module-transforms@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e"
+ integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/helper-validator-identifier" "^7.22.20"
+
"@babel/helper-optimise-call-expression@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
@@ -246,6 +269,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193"
integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
+"@babel/helper-validator-option@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040"
+ integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==
+
"@babel/helper-validator-option@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac"
@@ -741,6 +769,15 @@
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/helper-simple-access" "^7.22.5"
+"@babel/plugin-transform-modules-commonjs@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz#b3dba4757133b2762c00f4f94590cf6d52602481"
+ integrity sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.23.0"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-simple-access" "^7.22.5"
+
"@babel/plugin-transform-modules-systemjs@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496"
@@ -790,6 +827,13 @@
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
+"@babel/plugin-transform-object-assign@^7.16.7":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.22.5.tgz#290c1b9555dcea48bb2c29ad94237777600d04f9"
+ integrity sha512-iDhx9ARkXq4vhZ2CYOSnQXkmxkDgosLi3J8Z17mKz7LyzthtkdVchLD7WZ3aXeCuvJDOW3+1I5TpJmwIbF9MKQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
"@babel/plugin-transform-object-rest-spread@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1"
@@ -963,6 +1007,16 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
+"@babel/plugin-transform-typescript@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127"
+ integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-typescript" "^7.22.5"
+
"@babel/plugin-transform-typescript@^7.22.5", "@babel/plugin-transform-typescript@^7.5.0":
version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz#91e08ad1eb1028ecc62662a842e93ecfbf3c7234"
@@ -1121,6 +1175,17 @@
"@babel/plugin-transform-modules-commonjs" "^7.22.5"
"@babel/plugin-transform-typescript" "^7.22.5"
+"@babel/preset-typescript@^7.16.7":
+ version "7.23.2"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz#c8de488130b7081f7e1482936ad3de5b018beef4"
+ integrity sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-option" "^7.22.15"
+ "@babel/plugin-syntax-jsx" "^7.22.5"
+ "@babel/plugin-transform-modules-commonjs" "^7.23.0"
+ "@babel/plugin-transform-typescript" "^7.22.15"
+
"@babel/register@^7.13.16":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.5.tgz#e4d8d0f615ea3233a27b5c6ada6750ee59559939"
@@ -1178,7 +1243,7 @@
"@babel/helper-validator-identifier" "^7.22.5"
to-fast-properties "^2.0.0"
-"@babel/types@^7.23.0":
+"@babel/types@^7.22.15", "@babel/types@^7.23.0":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==
@@ -1192,6 +1257,13 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+"@egjs/hammerjs@^2.0.17":
+ version "2.0.17"
+ resolved "https://registry.yarnpkg.com/@egjs/hammerjs/-/hammerjs-2.0.17.tgz#5dc02af75a6a06e4c2db0202cae38c9263895124"
+ integrity sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==
+ dependencies:
+ "@types/hammerjs" "^2.0.36"
+
"@formatjs/ecma402-abstract@1.17.0":
version "1.17.0"
resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.0.tgz#2ce191a3bde4c65c6684e03fa247062a4a294b9e"
@@ -2126,6 +2198,11 @@
prompts "^2.4.0"
semver "^6.3.0"
+"@react-native-community/slider@^4.4.3":
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/@react-native-community/slider/-/slider-4.4.3.tgz#9b9dc639b88f5bfda72bd72a9dff55cbf9f777ed"
+ integrity sha512-WdjvGtqJfqcCiLwtbzie53Z/H6w6dIfRHhlW832D89ySAdE5DxLAsqRhDOG0eacuAxxEB+T9sGCkVMD0fa3aBg==
+
"@react-native/assets-registry@^0.72.0":
version "0.72.0"
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.72.0.tgz#c82a76a1d86ec0c3907be76f7faf97a32bbed05d"
@@ -2779,6 +2856,11 @@
dependencies:
"@types/node" "*"
+"@types/hammerjs@^2.0.36":
+ version "2.0.43"
+ resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.43.tgz#8660dd1e0e5fd979395e2f999e670cdb9484d1e9"
+ integrity sha512-wqxfwHk83RS7+6OpytGdo5wqkqtvx+bGaIs1Rwm5NrtQHUfL4OgWs/5p0OipmjmT+fexePh37Ek+mqIpdNjQKA==
+
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
@@ -4189,6 +4271,13 @@ hermes-profile-transformer@^0.0.6:
dependencies:
source-map "^0.7.3"
+hoist-non-react-statics@^3.3.0:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
html-escaper@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
@@ -5071,7 +5160,7 @@ lodash.uniqueid@^4.0.1:
resolved "https://registry.yarnpkg.com/lodash.uniqueid/-/lodash.uniqueid-4.0.1.tgz#3268f26a7c88e4f4b1758d679271814e31fa5b26"
integrity sha512-GQQWaIeGlL6DIIr06kj1j6sSmBxyNMwI8kaX9aKpHR/XsMTiaXDVPNPAkiboOTK9OJpTJF/dXT3xYoFQnj386Q==
-lodash@^4.17.11:
+lodash@^4.17.11, lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -6230,7 +6319,7 @@ react-freeze@^1.0.0:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
-react-is@^16.13.0, react-is@^16.13.1:
+react-is@^16.13.0, react-is@^16.13.1, react-is@^16.7.0:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -6240,6 +6329,27 @@ react-is@^17.0.1:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+react-native-gesture-handler@^2.13.4:
+ version "2.13.4"
+ resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.13.4.tgz#6a99384330278c4488bcfc7f1814be3e0d7401fd"
+ integrity sha512-smpYOVbvWABpq2H+lmDnfOLCTH934aUPO1w2/pQXvm1j+M/vmGQmvgRDJOpXcks17HLtNNKXD6tcODf3aPqDfA==
+ dependencies:
+ "@egjs/hammerjs" "^2.0.17"
+ hoist-non-react-statics "^3.3.0"
+ invariant "^2.2.4"
+ lodash "^4.17.21"
+ prop-types "^15.7.2"
+
+react-native-reanimated@^3.5.4:
+ version "3.5.4"
+ resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-3.5.4.tgz#a6c2b0c43b6dad246f5d276213974afedb8e3fc7"
+ integrity sha512-8we9LLDO1o4Oj9/DICeEJ2K1tjfqkJagqQUglxeUAkol/HcEJ6PGxIrpBcNryLqCDYEcu6FZWld/FzizBIw6bg==
+ dependencies:
+ "@babel/plugin-transform-object-assign" "^7.16.7"
+ "@babel/preset-typescript" "^7.16.7"
+ convert-source-map "^2.0.0"
+ invariant "^2.2.4"
+
react-native-safe-area-context@^4.5.3:
version "4.7.1"
resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.7.1.tgz#b7be2d68dee909717cfa439bb5c7966042d231e8"