export const buildBitTimeHtml = (bitTime: BitTime): string => {
  const bitDigitsHtml = bitTime
    .map(bitDigit => buildBitDigitHtml(bitDigit))
    .join('\n');
  return `<div class="time">
${bitDigitsHtml}
</div>`;
};
const updateCanvas: UpdateFn = (bitTime: BitTime): void => {
  const bitTimeWithoutSeconds = bitTime.slice(0, 4);
  const canvas = getCanvas();

  canvas.style.display = 'none';
  const bitWidth = canvas.width / bitTimeWithoutSeconds.length;
  const bitHeight = canvas.height / bitTimeWithoutSeconds[0].length;

  drawCanvas(canvas, bitTimeWithoutSeconds, bitWidth, bitHeight);
};
const drawCanvas = (
  canvas: HTMLCanvasElement,
  bitTime: BitTime,
  bitWidth: number,
  bitHeight: number
): void => {
  const ctx: CanvasRenderingContext2D = canvas.getContext('2d');
  ctx.clearRect(0, 0, canvas.width, canvas.height);

  bitTime.forEach((bitDigit: BitDigit, x: number) => {
    bitDigit.forEach((bit: number, y: number) => {
      drawBit(ctx, bit, x, y, bitWidth, bitHeight);
    });
  });
};