/ src / components / MessageTimestamp.tsx
MessageTimestamp.tsx
 1  import { c as _c } from "react/compiler-runtime";
 2  import React from 'react';
 3  import { stringWidth } from '../ink/stringWidth.js';
 4  import { Box, Text } from '../ink.js';
 5  import type { NormalizedMessage } from '../types/message.js';
 6  type Props = {
 7    message: NormalizedMessage;
 8    isTranscriptMode: boolean;
 9  };
10  export function MessageTimestamp(t0) {
11    const $ = _c(10);
12    const {
13      message,
14      isTranscriptMode
15    } = t0;
16    const shouldShowTimestamp = isTranscriptMode && message.timestamp && message.type === "assistant" && message.message.content.some(_temp);
17    if (!shouldShowTimestamp) {
18      return null;
19    }
20    let T0;
21    let formattedTimestamp;
22    let t1;
23    if ($[0] !== message.timestamp) {
24      formattedTimestamp = new Date(message.timestamp).toLocaleTimeString("en-US", {
25        hour: "2-digit",
26        minute: "2-digit",
27        hour12: true
28      });
29      T0 = Box;
30      t1 = stringWidth(formattedTimestamp);
31      $[0] = message.timestamp;
32      $[1] = T0;
33      $[2] = formattedTimestamp;
34      $[3] = t1;
35    } else {
36      T0 = $[1];
37      formattedTimestamp = $[2];
38      t1 = $[3];
39    }
40    let t2;
41    if ($[4] !== formattedTimestamp) {
42      t2 = <Text dimColor={true}>{formattedTimestamp}</Text>;
43      $[4] = formattedTimestamp;
44      $[5] = t2;
45    } else {
46      t2 = $[5];
47    }
48    let t3;
49    if ($[6] !== T0 || $[7] !== t1 || $[8] !== t2) {
50      t3 = <T0 minWidth={t1}>{t2}</T0>;
51      $[6] = T0;
52      $[7] = t1;
53      $[8] = t2;
54      $[9] = t3;
55    } else {
56      t3 = $[9];
57    }
58    return t3;
59  }
60  function _temp(c) {
61    return c.type === "text";
62  }
63  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInN0cmluZ1dpZHRoIiwiQm94IiwiVGV4dCIsIk5vcm1hbGl6ZWRNZXNzYWdlIiwiUHJvcHMiLCJtZXNzYWdlIiwiaXNUcmFuc2NyaXB0TW9kZSIsIk1lc3NhZ2VUaW1lc3RhbXAiLCJ0MCIsIiQiLCJfYyIsInNob3VsZFNob3dUaW1lc3RhbXAiLCJ0aW1lc3RhbXAiLCJ0eXBlIiwiY29udGVudCIsInNvbWUiLCJfdGVtcCIsIlQwIiwiZm9ybWF0dGVkVGltZXN0YW1wIiwidDEiLCJEYXRlIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiaG91ciIsIm1pbnV0ZSIsImhvdXIxMiIsInQyIiwidDMiLCJjIl0sInNvdXJjZXMiOlsiTWVzc2FnZVRpbWVzdGFtcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgc3RyaW5nV2lkdGggfSBmcm9tICcuLi9pbmsvc3RyaW5nV2lkdGguanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgdHlwZSB7IE5vcm1hbGl6ZWRNZXNzYWdlIH0gZnJvbSAnLi4vdHlwZXMvbWVzc2FnZS5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgbWVzc2FnZTogTm9ybWFsaXplZE1lc3NhZ2VcbiAgaXNUcmFuc2NyaXB0TW9kZTogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gTWVzc2FnZVRpbWVzdGFtcCh7XG4gIG1lc3NhZ2UsXG4gIGlzVHJhbnNjcmlwdE1vZGUsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHNob3VsZFNob3dUaW1lc3RhbXAgPVxuICAgIGlzVHJhbnNjcmlwdE1vZGUgJiZcbiAgICBtZXNzYWdlLnRpbWVzdGFtcCAmJlxuICAgIG1lc3NhZ2UudHlwZSA9PT0gJ2Fzc2lzdGFudCcgJiZcbiAgICBtZXNzYWdlLm1lc3NhZ2UuY29udGVudC5zb21lKGMgPT4gYy50eXBlID09PSAndGV4dCcpXG5cbiAgaWYgKCFzaG91bGRTaG93VGltZXN0YW1wKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdHRlZFRpbWVzdGFtcCA9IG5ldyBEYXRlKG1lc3NhZ2UudGltZXN0YW1wKS50b0xvY2FsZVRpbWVTdHJpbmcoXG4gICAgJ2VuLVVTJyxcbiAgICB7XG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXIxMjogdHJ1ZSxcbiAgICB9LFxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IG1pbldpZHRoPXtzdHJpbmdXaWR0aChmb3JtYXR0ZWRUaW1lc3RhbXApfT5cbiAgICAgIDxUZXh0IGRpbUNvbG9yPntmb3JtYXR0ZWRUaW1lc3RhbXB9PC9UZXh0PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixTQUFTQyxXQUFXLFFBQVEsdUJBQXVCO0FBQ25ELFNBQVNDLEdBQUcsRUFBRUMsSUFBSSxRQUFRLFdBQVc7QUFDckMsY0FBY0MsaUJBQWlCLFFBQVEscUJBQXFCO0FBRTVELEtBQUtDLEtBQUssR0FBRztFQUNYQyxPQUFPLEVBQUVGLGlCQUFpQjtFQUMxQkcsZ0JBQWdCLEVBQUUsT0FBTztBQUMzQixDQUFDO0FBRUQsT0FBTyxTQUFBQyxpQkFBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUEwQjtJQUFBTCxPQUFBO0lBQUFDO0VBQUEsSUFBQUUsRUFHekI7RUFDTixNQUFBRyxtQkFBQSxHQUNFTCxnQkFDaUIsSUFBakJELE9BQU8sQ0FBQU8sU0FDcUIsSUFBNUJQLE9BQU8sQ0FBQVEsSUFBSyxLQUFLLFdBQ21DLElBQXBEUixPQUFPLENBQUFBLE9BQVEsQ0FBQVMsT0FBUSxDQUFBQyxJQUFLLENBQUNDLEtBQXNCLENBQUM7RUFFdEQsSUFBSSxDQUFDTCxtQkFBbUI7SUFBQSxPQUNmLElBQUk7RUFBQTtFQUNaLElBQUFNLEVBQUE7RUFBQSxJQUFBQyxrQkFBQTtFQUFBLElBQUFDLEVBQUE7RUFBQSxJQUFBVixDQUFBLFFBQUFKLE9BQUEsQ0FBQU8sU0FBQTtJQUVETSxrQkFBQSxHQUEyQixJQUFJRSxJQUFJLENBQUNmLE9BQU8sQ0FBQU8sU0FBVSxDQUFDLENBQUFTLGtCQUFtQixDQUN2RSxPQUFPLEVBQ1A7TUFBQUMsSUFBQSxFQUNRLFNBQVM7TUFBQUMsTUFBQSxFQUNQLFNBQVM7TUFBQUMsTUFBQSxFQUNUO0lBQ1YsQ0FDRixDQUFDO0lBR0VQLEVBQUEsR0FBQWhCLEdBQUc7SUFBV2tCLEVBQUEsR0FBQW5CLFdBQVcsQ0FBQ2tCLGtCQUFrQixDQUFDO0lBQUFULENBQUEsTUFBQUosT0FBQSxDQUFBTyxTQUFBO0lBQUFILENBQUEsTUFBQVEsRUFBQTtJQUFBUixDQUFBLE1BQUFTLGtCQUFBO0lBQUFULENBQUEsTUFBQVUsRUFBQTtFQUFBO0lBQUFGLEVBQUEsR0FBQVIsQ0FBQTtJQUFBUyxrQkFBQSxHQUFBVCxDQUFBO0lBQUFVLEVBQUEsR0FBQVYsQ0FBQTtFQUFBO0VBQUEsSUFBQWdCLEVBQUE7RUFBQSxJQUFBaEIsQ0FBQSxRQUFBUyxrQkFBQTtJQUM1Q08sRUFBQSxJQUFDLElBQUksQ0FBQyxRQUFRLENBQVIsS0FBTyxDQUFDLENBQUVQLG1CQUFpQixDQUFFLEVBQWxDLElBQUksQ0FBcUM7SUFBQVQsQ0FBQSxNQUFBUyxrQkFBQTtJQUFBVCxDQUFBLE1BQUFnQixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBaEIsQ0FBQTtFQUFBO0VBQUEsSUFBQWlCLEVBQUE7RUFBQSxJQUFBakIsQ0FBQSxRQUFBUSxFQUFBLElBQUFSLENBQUEsUUFBQVUsRUFBQSxJQUFBVixDQUFBLFFBQUFnQixFQUFBO0lBRDVDQyxFQUFBLElBQUMsRUFBRyxDQUFXLFFBQStCLENBQS9CLENBQUFQLEVBQThCLENBQUMsQ0FDNUMsQ0FBQU0sRUFBeUMsQ0FDM0MsRUFGQyxFQUFHLENBRUU7SUFBQWhCLENBQUEsTUFBQVEsRUFBQTtJQUFBUixDQUFBLE1BQUFVLEVBQUE7SUFBQVYsQ0FBQSxNQUFBZ0IsRUFBQTtJQUFBaEIsQ0FBQSxNQUFBaUIsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQWpCLENBQUE7RUFBQTtFQUFBLE9BRk5pQixFQUVNO0FBQUE7QUExQkgsU0FBQVYsTUFBQVcsQ0FBQTtFQUFBLE9BUStCQSxDQUFDLENBQUFkLElBQUssS0FBSyxNQUFNO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=