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. + +
+ +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+ + + Is Switch On + +
+ +
+ +
+ +
+ +
+
+
+ ); +}; + +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 ( + + +
+ +
+ + Tap + +
+
+
+ +
+ +
+ + 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"