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';
  }
}