diff --git a/src/components/countdown-timer.js b/src/components/countdown-timer.js
index dbc214a..bc38a54 100644
--- a/src/components/countdown-timer.js
+++ b/src/components/countdown-timer.js
@@ -4,9 +4,7 @@ import PropTypes from 'prop-types';
import FlipNumber from './flip-number';
import Separator from './flip-number/separator';
-
import TransformUtils from '../utils';
-
import style from './style';
class CountdownTimer extends React.Component {
@@ -14,7 +12,7 @@ class CountdownTimer extends React.Component {
hours: 0,
minutes: 0,
seconds: 0,
- }
+ };
componentDidMount() {
const { time } = this.props;
@@ -53,18 +51,18 @@ class CountdownTimer extends React.Component {
const { hours, minutes, seconds } = this.state;
const newState = TransformUtils.subtractTime(hours, minutes, seconds);
this.setState(prevState => ({ ...prevState, ...newState }));
- }
+ };
render() {
const { wrapperStyle, flipNumberProps } = this.props;
const { hours, minutes, seconds } = this.state;
return (
- {!!hours && }
+ {!!hours && }
- {!!minutes && }
+ {!!minutes && }
- {!!seconds && }
+ {!!seconds && }
);
}
diff --git a/src/components/flip-number/index.js b/src/components/flip-number/index.js
index 0a47225..59b46b6 100644
--- a/src/components/flip-number/index.js
+++ b/src/components/flip-number/index.js
@@ -8,20 +8,32 @@ import NumberCard from './number-card';
import style from '../style';
function FlipNumber({
- number, unit, size, perspective, numberWrapperStyle, cardStyle, flipCardStyle, numberStyle,
+ number, unit, size, perspective, numberWrapperStyle, cardStyle, flipCardStyle, numberStyle, lastUnit, nextUnit, seconds,
}) {
number = parseInt(number);
let previousNumber = number - 1;
- if (unit !== 'hours') {
- previousNumber = previousNumber === -1 ? 59 : previousNumber;
+
+ if (unit === 'hours') {
+ previousNumber = previousNumber === -1 ? 0 : previousNumber;
+ } else if (unit === 'minutes') {
+ previousNumber = previousNumber < 0 ? (parseInt(lastUnit) === 0 ? 0 : 59) : previousNumber;
} else {
- previousNumber = previousNumber === -1 ? 23 : previousNumber;
+ previousNumber = previousNumber < 0 ? (parseInt(lastUnit) === 0 ? 0 : 59) : previousNumber;
}
number = number < 10 ? `0${number}` : number;
previousNumber = previousNumber < 10 ? `0${previousNumber}` : previousNumber;
const numberSplit = number.toString().split('');
- const previousNumberSplit = previousNumber.toString().split('');
+ let previousNumberSplit = previousNumber.toString().split('');
+ if (unit === 'minutes' && parseInt(nextUnit) !== 0) {
+ previousNumberSplit = numberSplit;
+ }
+ if (unit === 'hours') {
+ if (parseInt(nextUnit) !== 0 || seconds !== 0) {
+ previousNumberSplit = numberSplit;
+ }
+ }
+
return (