|  |  |  | import { padStart } from 'lodash'; | 
					
						
							|  |  |  | import { SessionIconType } from '../components/session/icon'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export function getIncrement(length: number): number { | 
					
						
							|  |  |  |   if (length < 0) { | 
					
						
							|  |  |  |     return 1000; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   // if less than one minute, default to 500 ms so that UI counter is accurate
 | 
					
						
							|  |  |  |   if (length <= 60000) { | 
					
						
							|  |  |  |     return 500; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return Math.ceil(length / 12); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export function getTimerBucketIcon(expiration: number, length: number): SessionIconType { | 
					
						
							|  |  |  |   const delta = expiration - Date.now(); | 
					
						
							|  |  |  |   if (delta < 0) { | 
					
						
							|  |  |  |     return 'timer60'; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   if (delta > length) { | 
					
						
							|  |  |  |     return 'timer00'; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   const bucket = Math.round((delta / length) * 12); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const padded = padStart(String(bucket * 5), 2, '0'); | 
					
						
							|  |  |  |   switch (padded) { | 
					
						
							|  |  |  |     case '00': | 
					
						
							|  |  |  |       return 'timer00'; | 
					
						
							|  |  |  |     case '05': | 
					
						
							|  |  |  |       return 'timer05'; | 
					
						
							|  |  |  |     case '10': | 
					
						
							|  |  |  |       return 'timer10'; | 
					
						
							|  |  |  |     case '15': | 
					
						
							|  |  |  |       return 'timer15'; | 
					
						
							|  |  |  |     case '20': | 
					
						
							|  |  |  |       return 'timer20'; | 
					
						
							|  |  |  |     case '25': | 
					
						
							|  |  |  |       return 'timer25'; | 
					
						
							|  |  |  |     case '30': | 
					
						
							|  |  |  |       return 'timer30'; | 
					
						
							|  |  |  |     case '35': | 
					
						
							|  |  |  |       return 'timer35'; | 
					
						
							|  |  |  |     case '40': | 
					
						
							|  |  |  |       return 'timer40'; | 
					
						
							|  |  |  |     case '45': | 
					
						
							|  |  |  |       return 'timer45'; | 
					
						
							|  |  |  |     case '50': | 
					
						
							|  |  |  |       return 'timer50'; | 
					
						
							|  |  |  |     case '55': | 
					
						
							|  |  |  |       return 'timer55'; | 
					
						
							|  |  |  |     default: | 
					
						
							|  |  |  |       return 'timer60'; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |