UNPKG

@baby-journey/rn-segmented-progress-bar

Version:
110 lines (77 loc) 4.01 kB
# React Native Segmented Progress Bar A React Native progress bar that animates and draws the progress in a circular path. The progress bar indicator can move in number of segments to imply the percentage of the progress. The following are customizable: - The circular track color - Indicator color - Number of segments PS: we recommend you to use a maximum value of 10 - Center element can be customized (e.g. you can pass a component that will be rendered) - Stroke width of a single segment - Radius of the component ## Installing With npm ``` npm install react-native-svg npm install @baby-journey/rn-segmented-progress-bar --save ``` With yarn ``` yarn add react-native-svg yarn add @baby-journey/rn-segmented-progress-bar ``` ## Usage Step 1: import the package ```javascript import RNSegmentedProgressBar, { RunAnimationHandler } from '@baby-journey/rn-segmented-progress-bar'; ``` Step 2: create a ref ```javascript const circularProgressRef = React.useRef<RunAnimationHandler>(null); ``` Step 3: use the ref in a useEffect and run ```javascript React.useEffect(() => { circularProgressRef?.current?.run({ progress: 75, }); }, []); ``` Step 4: include the component as follows ```javascript <RNSegmentedProgressBar ref={segmentedProgressBarRef} radius={114} strokeWidth={14} segmentsGap={30} segments={4} /> ``` ## Examples 1. Single circle ![1part](https://user-images.githubusercontent.com/1639119/215097139-4dacc33d-f2c7-4a2b-83ad-f856ec822e47.gif) 2. Mutiple segments ![noind](https://user-images.githubusercontent.com/1639119/215097549-262da352-83d5-45f3-8f81-6abcaaea6b72.gif) 3. Multiple segments with progress circle ![3part](https://user-images.githubusercontent.com/1639119/215097606-b4c8139c-d949-4e98-ab9d-787cf89424bb.gif) ## Props | Prop | Description | Type | Default Value | Required | | :--------------------------:|:--------------------------------------------------------------------------------------|:-----------------------------:|:-------------------:|:--------:| | radius | Radius of the progress indicator | Number | 100 | True | | strokeWidth |Thickness of the circular track | Number | 10 | True | | tintColor | Color of the circular track | rgba | #FFEDE1 | False | | fillColor | Color of the progress indicator | rgba | #F39E93 | False | | segments | Number of segments | Number | 3 | False | | segmentsGap | Gap between segments | Number | 0 | False | | centerComponent | A component used to display the percentage of the progress | React.ReactNode | - | False | | indicator | A colored progression path which shows the completed percentage | Object. Refer IndicatorProps interface given below. | - | False | ``` Indicator interface: interface IndicatorProps { show?: boolean; radius?: number; strokeWidth?: number; color?: string; } ``` ## [License](https://github.com/baby-journey/rn-segmented-progress-bar/blob/main/LICENSE) ## Author * **BabyJourney** - [BabyJourney](https://github.com/baby-journey/rn-segmented-progress-bar)