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 - */} - + +
+ +