import { Choerodon } from '@choerodon/boot';
/**
 * 数据请求后的错误拦截
 * 不建议使用此错误处理方法
 * @param data
 * @param hasReturn
 */

function handlePromptError(data) {
  var hasReturn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
  if (hasReturn && !data) return false;

  if (data && data.failed) {
    Choerodon.prompt(data.message);
    return false;
  }

  return true;
}
/**
 * 参数 长度低于2则前面加 0，否则不加
 * @param {string | number} str
 * @returns {string}
 */


function padZero(str) {
  return str.toString().padStart(2, '0');
}
/**
 * 格式化时间，转化为 YYYY-MM-DD hh:mm:ss
 * @param {Date} timestamp
 * @returns {string}
 */


function formatDate(timestamp) {
  var date = new Date(timestamp);
  var year = date.getFullYear();
  var month = date.getMonth() + 1;
  var day = date.getDate();
  var hour = date.getHours();
  var minutes = date.getMinutes();
  var seconds = date.getSeconds();
  return "".concat([year, month, day].map(padZero).join('-'), " ").concat([hour, minutes, seconds].map(padZero).join(':'));
}
/**
 * 计算剩余时间
 * @param now 当前时间 时间戳
 * @param end 结束时间 时间戳
 * @returns {string}
 */


function getTimeLeft(now, end) {
  if (now >= end) {
    return '剩余 0 天';
  }

  var resTime = end - now;
  var days = Math.floor(resTime / (24 * 3600 * 1000));
  return "\u5269\u4F59 ".concat(days, " \u5929");
}
/**
 * 将毫秒数转为时分秒格式
 * @param time 毫秒数
 */


function timeConvert(time) {
  if (!time || typeof time !== 'number') {
    return;
  } // 毫秒转为秒


  var now = time / 1000;
  var sec = Math.floor(now % 60 % 60);
  var min = Math.floor(now / 60) % 60;
  var hour = Math.floor(now / 3600);
  var result = "".concat(sec, "s");

  if (hour > 0) {
    result = "".concat(hour, "h ").concat(min, "m ").concat(sec, "s");
  } else if (hour <= 0 && min > 0) {
    result = "".concat(min, "m ").concat(sec, "s");
  }

  return result;
}

function removeEndsChar(str, _char) {
  if (typeof str !== 'string') return '';
  return str.endsWith(_char) ? str.slice(0, -1) : str;
}

export { formatDate, getTimeLeft, timeConvert, handlePromptError, removeEndsChar };