| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import React, { Component } from 'react';
- import PropTypes from 'prop-types';
- import * as moment from 'moment';
- /**
- * Updates every second the content of the element
- * with the current time formmated
- */
- export default class Now extends Component {
- static propTypes = {
- /** string to format current date */
- format: PropTypes.string.isRequired
- }
- state = {
- currentTime: null,
- format: ''
- }
- componentDidMount() {
- this.updateTime();
- this.interval = setInterval(this.updateTime, 1000);
- }
- componentWillUnmount() {
- if(this.interval)
- clearInterval(this.interval);
- }
- updateTime = () => {
- this.setState({
- currentTime: moment(new Date()).format(this.props.format)
- })
- }
- render() {
- return (
- <div {...this.props} style={{display: 'inline-block'}}>
- {this.state.currentTime}
- </div>
- )
- }
- }
|