import React from "react"; import ProgressTimer from "../../src/ProgressTimer"; interface IState { averagePercentage: number; percentage: number; } class App extends React.Component<{}, IState> { constructor(props: {}) { super(props); this.state = { averagePercentage: 0, percentage: 0 }; const interval = window.setInterval(() => { const { percentage } = this.state; if (percentage < 100) { this.setState({ percentage: percentage + 1 }); } else { window.clearInterval(interval); } }, 1000); this.changeAveragePercentage(); } public render() { const { averagePercentage, percentage } = this.state; return (

React Progress Timer


Simple Timer

Percentage {percentage}%

Time decreasing feature

Percentage {percentage < 60 || percentage > 80 ? percentage : 60}%

This percentage is stopping after 60 and starting again after 80. But time is changing according to spent time.

80 ? percentage : 60} calculateByAverage={true} decreaseTime={true} />

Calculating time by average percentage

Percentage {averagePercentage}%

This percentage is changing with a dynamic speed.

); } protected changeAveragePercentage = () => { window.setTimeout( () => { const { averagePercentage } = this.state; if (averagePercentage < 100) { this.setState({ averagePercentage: averagePercentage + 1 }); this.changeAveragePercentage(); } }, this.state.averagePercentage % 2 ? 500 : 1500 ); }; } export default App;