text: const MINUTE = 60;
  const HOUR = MINUTE * 60;
  const DAY = HOUR * 24;
  const WEEK = DAY * 7;
  const MONTH = (DAY * 365) / 12;
  const YEAR = DAY * 365;
  
  export const copyText = (str) => {
    const el = document.createElement("textarea");
    el.value = str;
    el.setAttribute("readonly", "");
    el.style.position = "absolute";
    el.style.left = "-9999px";
    document.body.appendChild(el);
    el.select();
    document.execCommand("copy");
    document.body.removeChild(el);
  
    return true;
  };
  
  export const hexToRGBA = (hex, alpha = 1) => {
    hex = hex.replace("#", "");
    var r = parseInt(
      hex.length == 3 ? hex.slice(0, 1).repeat(2) : hex.slice(0, 2),
      16
    );
    var g = parseInt(
      hex.length == 3 ? hex.slice(1, 2).repeat(2) : hex.slice(2, 4),
      16
    );
    var b = parseInt(
      hex.length == 3 ? hex.slice(2, 3).repeat(2) : hex.slice(4, 6),
      16
    );
    if (alpha) {
      return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")";
    } else {
      return "rgb(" + r + ", " + g + ", " + b + ")";
    }
  };
  
  export const bytesToSize = (bytes, decimals = 2) => {
    if (bytes === 0) return "0 Bytes";
  
    const k = 1024;
    const dm = decimals < 0 ? 0 : decimals;
    const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
  
    const i = Math.floor(Math.log(bytes) / Math.log(k));
  
    return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
  };
  
  export const getRemainingTime = (seconds) => {
    seconds = seconds > 0 ? seconds : 1;
  
    let [value, unit] =
      seconds < MINUTE
        ? [Math.round(seconds), "second"]
        : seconds < HOUR
        ? [Math.round(seconds / MINUTE), "minute"]
        : seconds < DAY
        ? [Math.round(seconds / HOUR), "hour"]
        : seconds < WEEK
        ? [Math.round(seconds / DAY), "day"]
        : seconds < MONTH
        ? [Math.round(seconds / WEEK), "week"]
        : seconds < YEAR
        ? [Math.round(seconds / MONTH), "month"]
        : [Math.round(seconds / YEAR), "year"];
  
    unit = pluralize(unit, value);
  
    return `${value} ${unit} remaining`;
  };
  
  export const formatAsFilecoin = (number) => {
    return `${number} FIL`;
  };
  
  export const isEmpty = (string) => {
    return !string || !string.toString().trim();
  };
  
  export const pluralize = (text, count) => {
    return count > 1 || count === 0 ? `${text}s` : text;
  };
  
  export const elide = (string, length = 140, emptyState = "...") => {
    if (isEmpty(string)) {
      return emptyState;
    }
  
    if (string.length < length) {
      return string.trim();
    }
  
    return `${string.substring(0, length)}...`;
  };
  
  export const toDate = (data) => {
    const date = new Date(data);
    return `${date.getMonth() + 1}-${date.getDate()}-${date.getFullYear()}`;
  };
  
  export const formatNumber = (x) => {
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  };
  