πŸ“„ File detail

components/MessageTimestamp.tsx

🧩 .tsxπŸ“ 63 linesπŸ’Ύ 5,448 bytesπŸ“ text
← Back to All Files

🎯 Use case

This file lives under β€œcomponents/”, which covers shared React UI pieces. On the API surface it exposes MessageTimestamp β€” mainly types, interfaces, or factory objects. Dependencies touch React UI. It composes internal code from ink and types (relative imports).

Generated from folder role, exports, dependency roots, and inline comments β€” not hand-reviewed for every path.

🧠 Inline summary

import { c as _c } from "react/compiler-runtime"; import React from 'react'; import { stringWidth } from '../ink/stringWidth.js'; import { Box, Text } from '../ink.js'; import type { NormalizedMessage } from '../types/message.js';

πŸ“€ Exports (heuristic)

  • MessageTimestamp

πŸ“š External import roots

Package roots from from "…" (relative paths omitted).

  • react

πŸ–₯️ Source preview

import { c as _c } from "react/compiler-runtime";
import React from 'react';
import { stringWidth } from '../ink/stringWidth.js';
import { Box, Text } from '../ink.js';
import type { NormalizedMessage } from '../types/message.js';
type Props = {
  message: NormalizedMessage;
  isTranscriptMode: boolean;
};
export function MessageTimestamp(t0) {
  const $ = _c(10);
  const {
    message,
    isTranscriptMode
  } = t0;
  const shouldShowTimestamp = isTranscriptMode && message.timestamp && message.type === "assistant" && message.message.content.some(_temp);
  if (!shouldShowTimestamp) {
    return null;
  }
  let T0;
  let formattedTimestamp;
  let t1;
  if ($[0] !== message.timestamp) {
    formattedTimestamp = new Date(message.timestamp).toLocaleTimeString("en-US", {
      hour: "2-digit",
      minute: "2-digit",
      hour12: true
    });
    T0 = Box;
    t1 = stringWidth(formattedTimestamp);
    $[0] = message.timestamp;
    $[1] = T0;
    $[2] = formattedTimestamp;
    $[3] = t1;
  } else {
    T0 = $[1];
    formattedTimestamp = $[2];
    t1 = $[3];
  }
  let t2;
  if ($[4] !== formattedTimestamp) {
    t2 = <Text dimColor={true}>{formattedTimestamp}</Text>;
    $[4] = formattedTimestamp;
    $[5] = t2;
  } else {
    t2 = $[5];
  }
  let t3;
  if ($[6] !== T0 || $[7] !== t1 || $[8] !== t2) {
    t3 = <T0 minWidth={t1}>{t2}</T0>;
    $[6] = T0;
    $[7] = t1;
    $[8] = t2;
    $[9] = t3;
  } else {
    t3 = $[9];
  }
  return t3;
}
function _temp(c) {
  return c.type === "text";
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInN0cmluZ1dpZHRoIiwiQm94IiwiVGV4dCIsIk5vcm1hbGl6ZWRNZXNzYWdlIiwiUHJvcHMiLCJtZXNzYWdlIiwiaXNUcmFuc2NyaXB0TW9kZSIsIk1lc3NhZ2VUaW1lc3RhbXAiLCJ0MCIsIiQiLCJfYyIsInNob3VsZFNob3dUaW1lc3RhbXAiLCJ0aW1lc3RhbXAiLCJ0eXBlIiwiY29udGVudCIsInNvbWUiLCJfdGVtcCIsIlQwIiwiZm9ybWF0dGVkVGltZXN0YW1wIiwidDEiLCJEYXRlIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiaG91ciIsIm1pbnV0ZSIsImhvdXIxMiIsInQyIiwidDMiLCJjIl0sInNvdXJjZXMiOlsiTWVzc2FnZVRpbWVzdGFtcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgc3RyaW5nV2lkdGggfSBmcm9tICcuLi9pbmsvc3RyaW5nV2lkdGguanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgdHlwZSB7IE5vcm1hbGl6ZWRNZXNzYWdlIH0gZnJvbSAnLi4vdHlwZXMvbWVzc2FnZS5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgbWVzc2FnZTogTm9ybWFsaXplZE1lc3NhZ2VcbiAgaXNUcmFuc2NyaXB0TW9kZTogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gTWVzc2FnZVRpbWVzdGFtcCh7XG4gIG1lc3NhZ2UsXG4gIGlzVHJhbnNjcmlwdE1vZGUsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHNob3VsZFNob3dUaW1lc3RhbXAgPVxuICAgIGlzVHJhbnNjcmlwdE1vZGUgJiZcbiAgICBtZXNzYWdlLnRpbWVzdGFtcCAmJlxuICAgIG1lc3NhZ2UudHlwZSA9PT0gJ2Fzc2lzdGFudCcgJiZcbiAgICBtZXNzYWdlLm1lc3NhZ2UuY29udGVudC5zb21lKGMgPT4gYy50eXBlID09PSAndGV4dCcpXG5cbiAgaWYgKCFzaG91bGRTaG93VGltZXN0YW1wKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdHRlZFRpbWVzdGFtcCA9IG5ldyBEYXRlKG1lc3NhZ2UudGltZXN0YW1wKS50b0xvY2FsZVRpbWVTdHJpbmcoXG4gICAgJ2VuLVVTJyxcbiAgICB7XG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXIxMjogdHJ1ZSxcbiAgICB9LFxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IG1pbldpZHRoPXtzdHJpbmdXaWR0aChmb3JtYXR0ZWRUaW1lc3RhbXApfT5cbiAgICAgIDxUZXh0IGRpbUNvbG9yPntmb3JtYXR0ZWRUaW1lc3RhbXB9PC9UZXh0PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixTQUFTQyxXQUFXLFFBQVEsdUJBQXVCO0FBQ25ELFNBQVNDLEdBQUcsRUFBRUMsSUFBSSxRQUFRLFdBQVc7QUFDckMsY0FBY0MsaUJBQWlCLFFBQVEscUJBQXFCO0FBRTVELEtBQUtDLEtBQUssR0FBRztFQUNYQyxPQUFPLEVBQUVGLGlCQUFpQjtFQUMxQkcsZ0JBQWdCLEVBQUUsT0FBTztBQUMzQixDQUFDO0FBRUQsT0FBTyxTQUFBQyxpQkFBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUEwQjtJQUFBTCxPQUFBO0lBQUFDO0VBQUEsSUFBQUUsRUFHekI7RUFDTixNQUFBRyxtQkFBQSxHQUNFTCxnQkFDaUIsSUFBakJELE9BQU8sQ0FBQU8sU0FDcUIsSUFBNUJQLE9BQU8sQ0FBQVEsSUFBSyxLQUFLLFdBQ21DLElBQXBEUixPQUFPLENBQUFBLE9BQVEsQ0FBQVMsT0FBUSxDQUFBQyxJQUFLLENBQUNDLEtBQXNCLENBQUM7RUFFdEQsSUFBSSxDQUFDTCxtQkFBbUI7SUFBQSxPQUNmLElBQUk7RUFBQTtFQUNaLElBQUFNLEVBQUE7RUFBQSxJQUFBQyxrQkFBQTtFQUFBLElBQUFDLEVBQUE7RUFBQSxJQUFBVixDQUFBLFFBQUFKLE9BQUEsQ0FBQU8sU0FBQTtJQUVETSxrQkFBQSxHQUEyQixJQUFJRSxJQUFJLENBQUNmLE9BQU8sQ0FBQU8sU0FBVSxDQUFDLENBQUFTLGtCQUFtQixDQUN2RSxPQUFPLEVBQ1A7TUFBQUMsSUFBQSxFQUNRLFNBQVM7TUFBQUMsTUFBQSxFQUNQLFNBQVM7TUFBQUMsTUFBQSxFQUNUO0lBQ1YsQ0FDRixDQUFDO0lBR0VQLEVBQUEsR0FBQWhCLEdBQUc7SUFBV2tCLEVBQUEsR0FBQW5CLFdBQVcsQ0FBQ2tCLGtCQUFrQixDQUFDO0lBQUFULENBQUEsTUFBQUosT0FBQSxDQUFBTyxTQUFBO0lBQUFILENBQUEsTUFBQVEsRUFBQTtJQUFBUixDQUFBLE1BQUFTLGtCQUFBO0lBQUFULENBQUEsTUFBQVUsRUFBQTtFQUFBO0lBQUFGLEVBQUEsR0FBQVIsQ0FBQTtJQUFBUyxrQkFBQSxHQUFBVCxDQUFBO0lBQUFVLEVBQUEsR0FBQVYsQ0FBQTtFQUFBO0VBQUEsSUFBQWdCLEVBQUE7RUFBQSxJQUFBaEIsQ0FBQSxRQUFBUyxrQkFBQTtJQUM1Q08sRUFBQSxJQUFDLElBQUksQ0FBQyxRQUFRLENBQVIsS0FBTyxDQUFDLENBQUVQLG1CQUFpQixDQUFFLEVBQWxDLElBQUksQ0FBcUM7SUFBQVQsQ0FBQSxNQUFBUyxrQkFBQTtJQUFBVCxDQUFBLE1BQUFnQixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBaEIsQ0FBQTtFQUFBO0VBQUEsSUFBQWlCLEVBQUE7RUFBQSxJQUFBakIsQ0FBQSxRQUFBUSxFQUFBLElBQUFSLENBQUEsUUFBQVUsRUFBQSxJQUFBVixDQUFBLFFBQUFnQixFQUFBO0lBRDVDQyxFQUFBLElBQUMsRUFBRyxDQUFXLFFBQStCLENBQS9CLENBQUFQLEVBQThCLENBQUMsQ0FDNUMsQ0FBQU0sRUFBeUMsQ0FDM0MsRUFGQyxFQUFHLENBRUU7SUFBQWhCLENBQUEsTUFBQVEsRUFBQTtJQUFBUixDQUFBLE1BQUFVLEVBQUE7SUFBQVYsQ0FBQSxNQUFBZ0IsRUFBQTtJQUFBaEIsQ0FBQSxNQUFBaUIsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQWpCLENBQUE7RUFBQTtFQUFBLE9BRk5pQixFQUVNO0FBQUE7QUExQkgsU0FBQVYsTUFBQVcsQ0FBQTtFQUFBLE9BUStCQSxDQUFDLENBQUFkLElBQUssS0FBSyxNQUFNO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=