diff --git a/App.js b/App.js
index 1a0d34e..a901e7a 100644
--- a/App.js
+++ b/App.js
@@ -1,914 +1,253 @@
-import React, {useEffect, useState} from 'react';
-import {Dimensions, ScrollView, TouchableOpacity} from 'react-native';
-import {Alert} from 'react-native';
-import {View, Text, StyleSheet} from 'react-native';
-import {BarChart, LineChart, PieChart} from './src';
-import {Path, Pattern} from 'react-native-svg';
-import BarWithGradient from './examples/BarChart/BarWithGradient';
-import CappedBars from './examples/BarChart/CappedBars';
-import RoundStackBar from './examples/BarChart/RoundStackBar';
-import SimpleBarAnimated from './examples/BarChart/SimpleBarAnimated';
+import React, {useState} from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ TouchableOpacity,
+ SafeAreaView,
+ ScrollView,
+} from 'react-native';
+
import SimpleBlueBars from './examples/BarChart/SimpleBlueBars';
-import SimpleBlueBarsVerticalLines from './examples/BarChart/SimpleBlueBarsVerticalLines';
-import BarChartWithGivenNumberOfVerticalLines from './examples/BarChart/BarChartWithGivenNumberOfVerticalLines';
+import BarThreeD from './examples/BarChart/BarThreeD';
+import SimpleBarAnimated from './examples/BarChart/SimpleBarAnimated';
+import RoundStackBar from './examples/BarChart/RoundStackBar';
+import CappedBars from './examples/BarChart/CappedBars';
+import BarWithGradient from './examples/BarChart/BarWithGradient';
+
+import LineChartTwo from './examples/LineChart/LineChartTwo';
import AnimatedArea from './examples/LineChart/AnimatedArea';
import AreaTwo from './examples/LineChart/AreaTwo';
-import LineChartTwo from './examples/LineChart/LineChartTwo';
-import SimpleBlueLine from './examples/LineChart/SimpleBlueLine';
-import SimpleBlueLineWithGivenNumberOfVerticalLines from './examples/LineChart/SimpleBlueLineWithGivenNumberOfVerticalLines';
-import ProgressPie from './examples/PieChart/ProgressPie';
+import ChartWithPointer from './examples/LineChart/ChartWithPointer';
+import CaloriesBurnt from './examples/LineChart/CaloriesBurnt';
+
import SimplePie from './examples/PieChart/SimplePie';
-import PieChartFocusOnPress from './examples/PieChart/PieChartFocusOnPress';
+import ProgressPie from './examples/PieChart/ProgressPie';
import SplitPie from './examples/PieChart/SplitPie';
import ThreeDPie from './examples/PieChart/ThreeDPie';
import CaloriesBurnt from './examples/LineChart/CaloriesBurnt';
-import ScrollingChartWithPointer from './examples/LineChart/ScrollingChartWithPointer';
+import PieChartFocusOnPress from './examples/PieChart/PieChartFocusOnPress';
const App = () => {
- const [toggle, setToggle] = useState(true);
- // useEffect(() => {
- // setTimeout(() => {
- // setCurrentData(latestData5);
- // }, 1100 + 100 + 310);
- // setTimeout(() => {
- // setCurrentData(latestData2);
- // }, 1100 + 300 + 620);
+ const [selectedFooterButton, setSelectedFooterButton] = useState(0);
- // setTimeout(() => {
- // setCurrentData(latestData5);
- // }, 1100 + 500 + 930);
-
- // setTimeout(() => {
- // setCurrentData(latestData3);
- // }, 1100 + 1000 + 1240);
-
- // setTimeout(() => {
- // setCurrentData(latestData4);
- // }, 1100 + 1500 + 1550);
-
- // setTimeout(() => {
- // setCurrentData(latestData5);
- // }, 6000);
-
- // setTimeout(() => {
- // setCurrentData(latestData);
- // }, 7000);
- // }, []);
- const dPoint = () => {
+ const Header = () => {
+ const getTitle = () => {
+ switch (selectedFooterButton) {
+ case 0:
+ return 'Bar and Stacked Bar Charts';
+ case 1:
+ return 'Line and Area Charts';
+ case 2:
+ return 'Pie and Donut Charts';
+ }
+ };
return (
-
- );
- };
- const lcomp = val => {
- return (
-
- {val}
+
+ {getTitle()}
);
};
- const latestData = [
- {
- value: 600 - 100,
- labelComponent: () => lcomp('22 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 600 - 120,
- hideDataPoint: true,
- },
- {
- value: 600 - 210,
- customDataPoint: dPoint,
- },
- {
- value: 600 - 250,
- hideDataPoint: true,
- },
- {
- value: 600 - 320,
- labelComponent: () => lcomp('24 Nov'),
- customDataPoint: dPoint,
- showStrip: true,
- stripHeight: 190,
- stripColor: 'black',
- dataPointLabelComponent: () => {
- return (
-
- 410
-
- );
- },
- dataPointLabelShiftY: -70,
- dataPointLabelShiftX: -14,
- },
- {
- value: 600 - 310,
- hideDataPoint: true,
- },
- {
- value: 600 - 270,
- customDataPoint: dPoint,
- },
- {
- value: 600 - 240,
- hideDataPoint: true,
- },
- {
- value: 600 - 130,
- labelComponent: () => lcomp('26 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 600 - 120,
- hideDataPoint: true,
- },
- {
- value: 600 - 100,
- customDataPoint: dPoint,
- },
- {
- value: 600 - 210,
- hideDataPoint: true,
- },
- {
- value: 600 - 270,
- labelComponent: () => lcomp('28 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 600 - 240,
- hideDataPoint: true,
- },
- {
- value: 600 - 120,
- hideDataPoint: true,
- },
- {
- value: 600 - 100,
- customDataPoint: dPoint,
- },
- {
- value: 600 - 210,
- labelComponent: () => lcomp('28 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 600 - 20,
- hideDataPoint: true,
- },
- {
- value: 600 - 100,
- customDataPoint: dPoint,
- },
- ];
- const latestData2 = [
- {
- value: 400 - 100,
- labelComponent: () => lcomp('22 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 400 - 120,
- hideDataPoint: true,
- },
- {
- value: 400 - 210,
- customDataPoint: dPoint,
- },
- {
- value: 400 - 250,
- hideDataPoint: true,
- },
- {
- value: 400 - 320,
- labelComponent: () => lcomp('24 Nov'),
- customDataPoint: dPoint,
- showStrip: true,
- stripHeight: 190,
- stripColor: 'black',
- dataPointLabelComponent: () => {
- return (
-
- 410
-
- );
- },
- dataPointLabelShiftY: -70,
- dataPointLabelShiftX: -14,
- },
- {
- value: 400 - 310,
- hideDataPoint: true,
- },
- {
- value: 400 - 270,
- customDataPoint: dPoint,
- },
- {
- value: 400 - 240,
- hideDataPoint: true,
- },
- {
- value: 400 - 130,
- labelComponent: () => lcomp('26 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 400 - 120,
- hideDataPoint: true,
- },
- {
- value: 400 - 100,
- customDataPoint: dPoint,
- },
- {
- value: 400 - 210,
- hideDataPoint: true,
- },
- {
- value: 400 - 270,
- labelComponent: () => lcomp('28 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 400 - 240,
- hideDataPoint: true,
- },
- {
- value: 400 - 120,
- hideDataPoint: true,
- },
- {
- value: 400 - 100,
- customDataPoint: dPoint,
- },
- {
- value: 400 - 210,
- labelComponent: () => lcomp('28 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 400 - 20,
- hideDataPoint: true,
- },
- {
- value: 400 - 100,
- customDataPoint: dPoint,
- },
- ];
+ const Separator = () => ;
- const latestData3 = [
- {
- value: 600 - 170,
- labelComponent: () => lcomp('22 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 600 - 60,
- hideDataPoint: true,
- },
- {
- value: 600 - 290,
- customDataPoint: dPoint,
- },
- {
- value: 600 - 120,
- hideDataPoint: true,
- },
- {
- value: 600 - 390,
- labelComponent: () => lcomp('24 Nov'),
- customDataPoint: dPoint,
- showStrip: true,
- stripHeight: 190,
- stripColor: 'black',
- dataPointLabelComponent: () => {
- return (
-
- 410
-
- );
- },
- dataPointLabelShiftY: -70,
- dataPointLabelShiftX: -14,
- },
- {
- value: 600 - 210,
- hideDataPoint: true,
- },
- {
- value: 600 - 370,
- customDataPoint: dPoint,
- },
- {
- value: 600 - 140,
- hideDataPoint: true,
- },
- {
- value: 600 - 330,
- labelComponent: () => lcomp('26 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 600 - 50,
- hideDataPoint: true,
- },
- {
- value: 600 - 200,
- customDataPoint: dPoint,
- },
- {
- value: 600 - 110,
- hideDataPoint: true,
- },
- {
- value: 600 - 370,
- labelComponent: () => lcomp('28 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 600 - 140,
- hideDataPoint: true,
- },
- {
- value: 600 - 320,
- hideDataPoint: true,
- },
- {
- value: 600 - 20,
- customDataPoint: dPoint,
- },
- {
- value: 600 - 310,
- labelComponent: () => lcomp('28 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 600 - 120,
- hideDataPoint: true,
- },
- {
- value: 600 - 100,
- customDataPoint: dPoint,
- },
- ];
-
- const latestData4 = [
- {
- value: 300 - 170,
- labelComponent: () => lcomp('22 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 300 - 60,
- hideDataPoint: true,
- },
- {
- value: 300 - 290,
- customDataPoint: dPoint,
- },
- {
- value: 300 - 120,
- hideDataPoint: true,
- },
- {
- value: 300 - 390,
- labelComponent: () => lcomp('24 Nov'),
- customDataPoint: dPoint,
- showStrip: true,
- stripHeight: 190,
- stripColor: 'black',
- dataPointLabelComponent: () => {
- return (
-
- 410
-
- );
- },
- dataPointLabelShiftY: -70,
- dataPointLabelShiftX: -14,
- },
- {
- value: 300 - 210,
- hideDataPoint: true,
- },
- {
- value: 300 - 370,
- customDataPoint: dPoint,
- },
- {
- value: 300 - 140,
- hideDataPoint: true,
- },
- {
- value: 300 - 330,
- labelComponent: () => lcomp('26 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 300 - 50,
- hideDataPoint: true,
- },
- {
- value: 300 - 200,
- customDataPoint: dPoint,
- },
- {
- value: 300 - 110,
- hideDataPoint: true,
- },
- {
- value: 300 - 370,
- labelComponent: () => lcomp('28 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 300 - 140,
- hideDataPoint: true,
- },
- {
- value: 300 - 320,
- hideDataPoint: true,
- },
- {
- value: 300 - 20,
- customDataPoint: dPoint,
- },
- {
- value: 300 - 310,
- labelComponent: () => lcomp('28 Nov'),
- customDataPoint: dPoint,
- },
- {
- value: 300 - 120,
- hideDataPoint: true,
- },
- {
- value: 300 - 100,
- customDataPoint: dPoint,
- },
- ];
- const latestData5 = [];
- for (let i = 0; i < latestData.length; i++) {
- latestData5[i] = {...latestData, value: 300};
- }
-
- const [currentData, setCurrentData] = useState(latestData);
-
- const customLabel = val => {
+ const BarAndStackCharts = () => {
return (
-
- {val}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);
};
- const ndd = [
- {value: 30, color: 'rgb(84,219,234)'},
- {value: 40, color: 'lightgreen'},
- {value: 20, color: 'orange'},
- ];
- const [data, setData] = useState([
- {value: 15, label: 'Jan'},
- {
- value: 40,
- label: 'Feb',
- verticalLineColor: 'red',
- // showVerticalLine: true,
- verticalLineThickness: StyleSheet.hairlineWidth,
- dataPointLabelComponent: () => customLabel(40),
- },
- {
- value: 10,
- label: 'Mar',
- dataPointLabelComponent: () => customLabel(10),
- },
- {
- value: 30,
- label: 'Apr',
- dataPointLabelComponent: () => customLabel(30),
- },
- {
- value: 20,
- label: 'May',
- dataPointLabelComponent: () => customLabel(20),
- },
- {
- value: 40,
- label: 'Jun',
- focusedDataPointLabelComponent: () => customLabel(40),
- },
- {value: 48, label: 'Jul'},
- {value: 30, label: 'Aug'},
- {value: 20, label: 'Sep'},
- {value: 40, label: 'Oct'},
- {
- value: 48,
- label: 'Nov',
- onPress: () => Alert.alert('Sales in Nov skyrocketed to $48 M'),
- },
- {value: 30, label: 'Dec'},
- ]);
- const renderLegend = (text, color) => {
+ const LineAndAreaCharts = () => {
return (
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ };
+
+ const PieAndDonutCharts = () => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ };
+
+ const SelectedIndexCharts = () => {
+ switch (selectedFooterButton) {
+ case 0:
+ return ;
+ case 1:
+ return ;
+ case 2:
+ return ;
+ }
+ };
+
+ const Body = () => {
+ return (
+
+
+
+ );
+ };
+
+ const Footer = () => {
+ const footerButtonStyle = index => [
+ styles.footerButton,
+ selectedFooterButton === index ? styles.footerButtonSelected : null,
+ ];
+ return (
+
- {text || ''}
+ style={[
+ styles.footerButtonContainer,
+ selectedFooterButton === 0 ? {marginTop: -12} : null,
+ ]}>
+ {selectedFooterButton === 0 ? (
+
+ ) : null}
+ setSelectedFooterButton(0)}>
+ Bar
+ Stack
+
+
+
+ {selectedFooterButton === 1 ? (
+
+ ) : null}
+ setSelectedFooterButton(1)}>
+ Line
+ Area
+
+
+
+ {selectedFooterButton === 2 ? (
+
+ ) : null}
+ setSelectedFooterButton(2)}>
+ Pie
+ Donut
+
+
);
};
- // const styleObject = {
- // marginLeft: -95,
- // paddingLeft: 120,
- // transform: [{rotate: '90deg'}],
- // };
- const ddtt = [
- {
- value: -15,
- label: 'Mon',
- topLabelComponent:()=>-15
- },
- {value: 6, label: 'Tue'},
- {value: -26, label: 'Wed'},
- // {value: 40, label: 'Thu'},
- {value: -16, label: 'Wed'},
- {value:-36, label: 'Thu'},
- ];
-
return (
-
- {/* */}
-
- {/* {
- dtt[1].value += 20;
- setDtt([...dtt]);
- }}>
- Press me
- */}
- {/*
-
- Quarterly Sales
-
- {
- return (
-
- 90
- Total
-
- );
- }}
- />
-
-
- {renderLegend('Jan', 'rgb(84,219,234)')}
- {renderLegend('Feb', 'lightgreen')}
- {renderLegend('Mar', 'orange')}
-
- */}
-
- {/* setCurrentData(latestData)}
- style={{padding: 12, backgroundColor: 'lightgreen', marginBottom: 15}}>
- Smooth
-
- setCurrentData(latestData2)}
- style={{padding: 12, backgroundColor: 'lightgreen', marginBottom: 15}}>
- Smooth Low
-
- setCurrentData(latestData3)}
- style={{padding: 12, backgroundColor: 'lightgreen', marginBottom: 15}}>
- Edged
-
- setCurrentData(latestData4)}
- style={{padding: 12, backgroundColor: 'lightgreen', marginBottom: 15}}>
- Edged Low
-
- setCurrentData(latestData5)}
- style={{padding: 12, backgroundColor: 'lightgreen'}}>
- Straight
- */}
-
- {/* {true ? (
- {
- return 30;
- },
- },
- {value: 250, label: 'Feb'},
- {value: 200, label: 'Mar'},
- {
- value: 150,
- label: 'Apr',
- showVerticalLine: true,
- verticalLineColor: 'black',
- },
- {value: 200, label: 'May'},
- {value: 250, label: 'Jun'},
- {value: 270, label: 'Jul'},
- ]}
- // horizontal
- // showReferenceLine1
- // referenceLine1Position={120}
- // referenceLine1Config={{
- // type: 'solid',
- // color: 'rgba(200,0,0,0.6)',
- // thickness: 1,
- // }}
- // showReferenceLine2
- // referenceLine2Position={240}
- // referenceLine2Config={{
- // type: 'solid',
- // color: 'rgba(0,0,0,0.6)',
- // thickness: 1,
- // }}
- // showReferenceLine3
- // referenceLine3Position={330}
- // referenceLine3Config={{
- // type: 'solid',
- // color: 'rgba(0,0,200,0.6)',
- // thickness: 1,
- // }}
- // showYAxisIndices
- isAnimated
- showGradient
- // cappedBars
- yAxisColor={'rgb(78, 0, 142)'}
- xAxisColor={'rgb(78, 0, 142)'}
- xAxisThickness={3}
- yAxisThickness={3}
- yAxisTextStyle={{color: 'rgb(78, 0, 142)'}}
- capColor={'rgb(78, 0, 142)'}
- capThickness={4}
- // barWidth={35}
- gradientColor={'rgba(200, 100, 244,0.2)'}
- frontColor={'rgba(78, 0, 142,1)'}
- // rulesType="dashed"
- // rulesColor={'rgba(0,200,0,0.5)'}
- // rulesThickness={1}
- // dashWidth={12}
- // dashGap={2}
- />
- ) : (
- {
- return (
-
- );
- }}
- // focusedCustomDataPoint={() => {
- // return (
- //
- // );
- // }}
- // onPress={(item, index) => {
- // console.log('index-->', index);
- // setData(data => {
- // item.focusedCustomDataPoint = () => {
- // return (
- //
- // );
- // };
- // data[index] = item;
- // console.log('data------.....', data);
- // return data;
- // });
- // }}
- // disableScroll
- pressEnabled
- // showDataPointOnPress
- showStripOnPress
- // showTextOnPress
- // textShiftY={-10}
- // textShiftX={-5}
- // textFontSize={18}
- // textColor={'green'}
- // stripWidth={1}
- // stripHeight={200}
- // stripHeight={200}
- // stripOpacity={1}
- // curved
- // isAnimated
- // animationDuration={2000}
- // animationDuration={2000}
- // dataPointsShape="rectangular"
- // showGradient
- color={'rgb(78, 0, 142)'}
- yAxisColor={'rgb(78, 0, 142)'}
- xAxisColor={'rgb(78, 0, 142)'}
- // dataPointsColor={'yellow'}
- dataPointsWidth={20}
- dataPointsHeight={20}
- xAxisThickness={3}
- yAxisThickness={3}
- // dataPointsRadius={4}
- // focusedDataPointRadius={10}
- yAxisTextStyle={{color: 'rgb(78, 0, 142)'}}
- startFillColor={'rgb(200, 100, 244)'}
- startOpacity={0.9}
- endFillColor={'rgb(255, 255, 255)'}
- endOpacity={0.2}
- />
- )} */}
-
- {/* setToggle(!toggle)}
- style={{marginTop: 100, alignSelf: 'center'}}>
- Line Chart
- */}
-
+
+
+
+
+
);
};
+const styles = StyleSheet.create({
+ container: {flex: 1, alignItems: 'center', backgroundColor: '#f5f5ff'},
+ header: {marginBottom: 20},
+ body: {
+ paddingLeft: 10,
+ width: '100%',
+ },
+ footer: {
+ position: 'absolute',
+ bottom: 0,
+ height: 60,
+ width: '100%',
+ flexDirection: 'row',
+ justifyContent: 'space-evenly',
+ alignItems: 'center',
+ backgroundColor: '#334',
+ },
+ footerButtonContainer: {
+ alignItems: 'center',
+ },
+ connector: {
+ height: 8,
+ width: 60,
+ borderRadius: 0,
+ backgroundColor: '#f5f5ff',
+ },
+ footerButton: {
+ width: 60,
+ height: 40,
+ paddingHorizontal: 8,
+ borderRadius: 4,
+ backgroundColor: '#bbc',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ footerButtonSelected: {
+ borderTopLeftRadius: 0,
+ borderTopRightRadius: 0,
+ backgroundColor: '#f5f5ff',
+ shadowColor: '#00ffe9',
+ shadowOffset: {width: 5, height: 5},
+ shadowOpacity: 0.5,
+ shadowRadius: 1,
+ elevation: 4,
+ },
+});
export default App;
diff --git a/examples/PieChart/SimplePie.js b/examples/PieChart/SimplePie.js
index 8897ace..4eaaf94 100644
--- a/examples/PieChart/SimplePie.js
+++ b/examples/PieChart/SimplePie.js
@@ -13,6 +13,7 @@ const SimplePie = () => {
linkage.to_sym
+end
target 'GiftedCharts' do
config = use_native_modules!
+ # Flags change depending on the env values.
+ flags = get_default_flags()
+
use_react_native!(
:path => config[:reactNativePath],
- # to enable hermes on iOS, change `false` to `true` and then install pods
- :hermes_enabled => false
+ # Hermes is now enabled by default. Disable by setting this flag to false.
+ # Upcoming versions of React Native may rely on get_default_flags(), but
+ # we make it explicit here to aid in the React Native upgrade process.
+ :hermes_enabled => flags[:hermes_enabled],
+ :fabric_enabled => flags[:fabric_enabled],
+ # Enables Flipper.
+ #
+ # Note that if you have use_frameworks! enabled, Flipper will not work and
+ # you should disable the next line.
+ :flipper_configuration => flipper_config,
+ # An absolute path to your application root.
+ :app_path => "#{Pod::Config.instance.installation_root}/.."
)
target 'GiftedChartsTests' do
@@ -17,13 +48,13 @@ target 'GiftedCharts' do
# Pods for testing
end
- # Enables Flipper.
- #
- # Note that if you have use_frameworks! enabled, Flipper will not work and
- # you should disable the next line.
- use_flipper!()
-
post_install do |installer|
- react_native_post_install(installer)
+ react_native_post_install(
+ installer,
+ # Set `mac_catalyst_enabled` to `true` in order to apply patches
+ # necessary for Mac Catalyst builds
+ :mac_catalyst_enabled => false
+ )
+ __apply_Xcode_12_5_M1_post_install_workaround(installer)
end
-end
\ No newline at end of file
+end
diff --git a/package.json b/package.json
index b60f9e7..d053ff7 100644
--- a/package.json
+++ b/package.json
@@ -24,25 +24,25 @@
"registry": "https://registry.npmjs.org/"
},
"dependencies": {
- "@types/jest": "^26.0.23",
- "@types/node": "^15.0.2",
- "@types/react": "^17.0.5",
- "@types/react-dom": "^17.0.3",
- "@types/react-native": "^0.64.5",
- "react-native-linear-gradient": "^2.5.6",
- "react-native-svg": "^13.6.0",
- "typescript": "^4.2.4"
+ "react-native-linear-gradient": "^2.7.3",
+ "react-native-svg": "^13.9.0"
},
"devDependencies": {
- "@babel/core": "^7.14.8",
- "@babel/runtime": "^7.14.8",
- "@react-native-community/eslint-config": "^3.0.0",
- "babel-jest": "^27.0.6",
- "eslint": "^7.31.0",
- "jest": "^27.0.6",
- "metro-react-native-babel-preset": "^0.66.2",
- "react-test-renderer": "17.0.1",
- "ts-jest": "^27.1.4"
+ "@babel/core": "^7.22.5",
+ "@babel/runtime": "^7.22.5",
+ "@react-native-community/eslint-config": "^3.2.0",
+ "@types/jest": "^29.5.2",
+ "@types/node": "^20.3.3",
+ "@types/react": "^18.2.14",
+ "@types/react-dom": "^18.2.6",
+ "@types/react-native": "^0.72.2",
+ "babel-jest": "^29.5.0",
+ "eslint": "^8.44.0",
+ "jest": "^29.5.0",
+ "metro-react-native-babel-preset": "^0.76.7",
+ "react-test-renderer": "18.2.0",
+ "ts-jest": "^29.1.1",
+ "typescript": "^5.1.6"
},
"peerDependencies": {
"react": "*",