react-native-progress-timer
v1.0.3
Published
React Native Timer component with progress indicators
Downloads
21
Maintainers
Readme
react-native-progress-timer
React Native Timer component with progress indicator
Installation
$ npm install --save react-native-progress react-native-svg @react-native-community/art react-native-progress-timer
Usage
import Timer from 'react-native-progress-timer';
<Timer
remainingTime={10}
size={350}
showsText={true}
animated={true}
direction={'counter-clockwise'}
borderColor={'#d9dcdd'}
borderWidth={3}
thickness={5}
color={'#faac02'}
style={options.style}
textStyle={options.textStyle}
options={options}
></Timer>
Properties for Options
| Prop | Description | Default |
| --------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| view
| Style for Container | {flexDirection: 'row', justifyContent: 'space-between', margin: 10}
|
| highlight
| Style for Touchable Highlight component | {backgroundColor: '#ffffff'}
|
| play
| Style for Play component | {underlayColor: '#ffffff',borderColor: '#d9dcdd',textStyle:{color: '#000000'},style: {backgroundColor: '#ffffff'}}
|
| cancel
| Style for Cancel component | {underlayColor: '#ffffff',borderColor: '#d9dcdd',textStyle:{color: '#000000'},style: {backgroundColor: '#ffffff'}}
|
Properties for Timer Component (for more information refer to react-native-progress)
| Prop | Description | Default |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
| animated
| Whether or not to animate changes to progress
. | true
|
| indeterminate
| If set to true, the indicator will spin and progress
prop will be ignored. | false
|
| indeterminateAnimationDuration
| Sets animation duration in milliseconds when indeterminate is set. | 1000
|
| color
| Fill color of the indicator. | rgba(0, 122, 255, 1)
|
| unfilledColor
| Color of the remaining progress. | None |
| borderWidth
| Width of outer border, set to 0
to remove. | 1
|
| borderColor
| Color of outer border. | color
|
| size
| Diameter of the circle. | 350
|
| endAngle
| Determines the endAngle of the circle. A number between 0
and 1
. The final endAngle would be the number multiplied by 2π | 0.9
|
| thickness
| Thickness of the inner circle. | 3
|
| showsText
| Whether or not to show a text representation of current progress. | true
|
| textStyle
| Styles for progress text, defaults to a same color
as circle and fontSize
proportional to size
prop. | { color: '#000000'}
|
| allowFontScaling
| Whether or not to respect device font scale setting. | true
|
| direction
| Direction of the circle clockwise
or counter-clockwise
. | clockwise
|
| strokeCap
| Stroke Cap style for the circle butt
, square
or round
. | butt
|
| fill
| Fill color of the inner circle. | None
(transparent) |
| remainingTime
| Timer countdown - Mandatory | 0
|
| hideCancelCircle
| Hide cancel circle | false
|
| textCancelCircle
| Cancel circle text | Cancel
|
| sizeCancelCircle
| Cancel circle size | 100
|
| underlayColorCancelCircle
| Cancel circle underlay color Mandatory | #ffffff
|
| hideStartCircle
| Hide start circle | false
|
| textStartCircle
| Start circle text | Start
|
| sizeStartCircle
| Start circle size | 100
|
| underlayStartCancelCircle
| Cancel circle underlay color | #ffffff
|
Example
import React from 'react'
import { SafeAreaView, StyleSheet, View } from 'react-native'
import Timer from 'react-native-progress-timer'
const App: () => React$Node = () => {
return (
<>
<SafeAreaView>
<View style={styles.body}>
<Timer
remainingTime={10}
size={350}
showsText={true}
animated={true}
direction={'counter-clockwise'}
borderColor={'#d9dcdd'}
borderWidth={3}
thickness={5}
color={'#faac02'}
style={options.style}
textStyle={options.textStyle}
></Timer>
</View>
</SafeAreaView>
</>
)
}
const options = {
style: {
margin: 'auto',
},
textStyle: {
color: '#000000',
},
view: {
flexDirection: 'row',
justifyContent: 'space-between',
margin: 10,
},
highlight: {
backgroundColor: '#ffffff',
},
play: {
underlayColor: '#ffffff',
borderColor: '#d9dcdd',
textStyle: {
color: '#000000',
},
style: {
backgroundColor: '#ffffff',
},
},
cancel: {
underlayColor: '#ffffff',
borderColor: '#d9dcdd',
textStyle: {
color: '#000000',
},
style: {
backgroundColor: '#ffffff',
},
},
}
const styles = StyleSheet.create({
scrollView: {
backgroundColor: Colors.lighter,
},
body: {
backgroundColor: Colors.white,
alignItems: 'center',
alignContent: 'center',
},
})