158 lines
3.8 KiB
TypeScript
158 lines
3.8 KiB
TypeScript
// Metro module 12855 (f12856).
|
|
import { PureComponent } from "react";
|
|
import Module12 from "../../../../_bundle/Module12";
|
|
import { LegacyText } from "../../../../design/void/native";
|
|
class Timer extends PureComponent {
|
|
static defaultProps = {
|
|
hideMinutes: false,
|
|
hideHours: false
|
|
};
|
|
_incrementSecond = () => {
|
|
const state = this.state;
|
|
const { seconds, minutes, hours } = state;
|
|
let seconds2 = seconds + 1;
|
|
let hours2 = hours;
|
|
let minutes2 = minutes;
|
|
if (seconds2 >= 60) {
|
|
let r12 = minutes + 1;
|
|
let r13 = hours;
|
|
if (r12 >= 60) {
|
|
r13 = hours + 1;
|
|
r12 = 0;
|
|
}
|
|
seconds2 = 0;
|
|
hours2 = r13;
|
|
minutes2 = r12;
|
|
}
|
|
this.setState({
|
|
seconds: seconds2,
|
|
minutes: minutes2,
|
|
hours: hours2
|
|
});
|
|
};
|
|
_decrementSecond = () => {
|
|
let r15, r16;
|
|
const state = this.state;
|
|
const { seconds, minutes, hours } = state;
|
|
let r0 = seconds - 1;
|
|
let hours2 = hours;
|
|
let minutes2 = minutes;
|
|
let seconds2 = r0;
|
|
if (seconds2 < 1) {
|
|
if (minutes >= 1) {
|
|
r16 = minutes - 1;
|
|
r0 = 59;
|
|
r15 = hours;
|
|
} else {
|
|
const r5 = minutes < 1 && hours >= 1;
|
|
r15 = hours;
|
|
r16 = minutes;
|
|
if (r5) {
|
|
r15 = hours - 1;
|
|
r16 = 59;
|
|
r0 = 59;
|
|
}
|
|
}
|
|
hours2 = r15;
|
|
minutes2 = r16;
|
|
seconds2 = r0;
|
|
}
|
|
if (seconds2 <= 0) {
|
|
clearInterval(this._timerId);
|
|
this._timerId = null;
|
|
const onComplete = this.props.onComplete;
|
|
if (onComplete != null) {
|
|
onComplete();
|
|
}
|
|
} else {
|
|
this.setState({
|
|
seconds: seconds2,
|
|
minutes: minutes2,
|
|
hours: hours2
|
|
});
|
|
}
|
|
};
|
|
constructor(a0) {
|
|
super(a0);
|
|
const { seconds, minutes, hours, timestamp } = a0;
|
|
let hours2 = hours;
|
|
let minutes2 = minutes;
|
|
let seconds2 = seconds;
|
|
if (timestamp != null) {
|
|
hours2 = hours;
|
|
minutes2 = minutes;
|
|
seconds2 = seconds;
|
|
if (timestamp > 0) {
|
|
const r1 = Math.max(0, Date.now() - timestamp) / 1000;
|
|
const r35 = Math;
|
|
const r38 = r1 % 86400;
|
|
hours2 = r35.floor(r38 / 3600);
|
|
const r40 = Math;
|
|
const r42 = r38 % 3600;
|
|
minutes2 = r40.floor(r42 / 60);
|
|
seconds2 = Math.floor(r42 % 60);
|
|
}
|
|
}
|
|
if (seconds2 == null) {
|
|
seconds2 = 0;
|
|
}
|
|
if (minutes2 == null) {
|
|
minutes2 = 0;
|
|
}
|
|
if (hours2 == null) {
|
|
hours2 = 0;
|
|
}
|
|
this.state = {
|
|
seconds: seconds2,
|
|
minutes: minutes2,
|
|
hours: hours2
|
|
};
|
|
}
|
|
componentDidMount() {
|
|
const countdown = this.props.countdown;
|
|
const r6 = setInterval;
|
|
if (countdown) {
|
|
this._timerId = r6(this._decrementSecond, 1000);
|
|
} else {
|
|
this._timerId = r6(this._incrementSecond, 1000);
|
|
}
|
|
}
|
|
componentWillUnmount() {
|
|
clearInterval(this._timerId);
|
|
this._timerId = null;
|
|
}
|
|
render() {
|
|
let r8, r23, r28, r41;
|
|
const props = this.props;
|
|
const { style, hideHours, hideMinutes } = props;
|
|
const state = this.state;
|
|
const { seconds, minutes, hours } = state;
|
|
if (hideHours) {
|
|
r8 = "";
|
|
if (hours !== 0) {
|
|
r23 = Module12.padStart(String(hours), 2, "0");
|
|
r8 = `${r23}:`;
|
|
}
|
|
} else {
|
|
r23 = Module12.padStart(String(hours), 2, "0");
|
|
r8 = `${r23}:`;
|
|
}
|
|
if (hideMinutes) {
|
|
r28 = "";
|
|
if (minutes !== 0) {
|
|
r41 = Module12.padStart(String(minutes), 2, "0");
|
|
r28 = `${r41}:`;
|
|
}
|
|
} else {
|
|
r41 = Module12.padStart(String(minutes), 2, "0");
|
|
r28 = `${r41}:`;
|
|
}
|
|
return <LegacyText style={style} accessibilityRole="timer">
|
|
{r8}
|
|
{r28}
|
|
{r8.length > 0 ? Module12.padStart(String(seconds), 2, "0") : r28.length > 0 ? Module12.padStart(String(seconds), 2, "0") : seconds}
|
|
</LegacyText>;
|
|
}
|
|
}
|
|
export default Timer;
|