azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 1.66 kB
JavaScript
import"../../../CommonImports";import"../../../Core/core.css";import*as React from"react";import*as DateUtil from"../../../Utilities/Date";import{Time}from"../Time/Time";class Ago extends React.Component{constructor(t){super(t),this.getTimeString=()=>{var t;return DateUtil.ago(this.props.date,this.props.format,null!=(t=this.props.currentDate)?t:new Date,this.props.locale)},this.getNextInterval=()=>Ago.agoNextInterval(this.props.date,this.props.format),this.state={tooltipProps:{}}}static getDerivedStateFromProps(t){return{tooltipProps:void 0===t.tooltipProps?{renderContent:function(){return DateUtil.tooltipString(t.date,void 0,t.tooltipTimeFormat)}}:t.tooltipProps}}render(){return React.createElement(Time,{ariaLabel:this.props.ariaLabel||DateUtil.tooltipString(this.props.date),className:this.props.className,dateTime:this.props.date,getNextInterval:this.getNextInterval,getTimeString:this.getTimeString,tabIndex:this.props.tabIndex,tooltipProps:this.state.tooltipProps})}static agoNextInterval(t,e,i){i=i||new Date,e=e||DateUtil.AgoFormat.Compact;var o=i.getTime()-t.getTime();let a;return o<2*DateUtil.minute?a=2*DateUtil.minute-o:o<59*DateUtil.minute&&e===DateUtil.AgoFormat.Compact?a=DateUtil.minute-o%DateUtil.minute:i.toDateString()===t.toDateString()&&e===DateUtil.AgoFormat.Compact?a=DateUtil.hour-o%DateUtil.hour:e===DateUtil.AgoFormat.Extended&&i.toDateString()===t.toDateString()||o<DateUtil.week&&i.getDay()!==t.getDay()?((e=new Date(i)).setDate(i.getDate()+1),e.setHours(0,0,0),a=e.getTime()-i.getTime()):i.getFullYear()===t.getFullYear()&&(o=new Date(i.getFullYear()+1,0,1),a=o.getTime()-i.getTime()),a=!a||a>DateUtil.week?-1:a}}export{Ago};