From 52a005a5482c0be7faed314383836284152d634c Mon Sep 17 00:00:00 2001 From: Amy Liu Date: Wed, 17 Dec 2025 20:47:17 -0600 Subject: [PATCH] chore: add arrival time --- src/__tests__/utils.test.ts | 8 +- .../TransactionBarsCard/ChartTooltip.tsx | 164 ++++++++++-------- src/utils.ts | 1 - 3 files changed, 95 insertions(+), 78 deletions(-) diff --git a/src/__tests__/utils.test.ts b/src/__tests__/utils.test.ts index 902546da..2c627d11 100644 --- a/src/__tests__/utils.test.ts +++ b/src/__tests__/utils.test.ts @@ -148,15 +148,15 @@ describe("getDurationText", () => { describe("formatTimeNanos", () => { it("formats millis and nanos correctly", () => { expect(formatTimeNanos(1764892025356640223n)).toEqual({ - inMillis: "Dec 4, 11:47:05.356 PM UTC", - inNanos: "Dec 4, 11:47:05.356640223 PM UTC", + inMillis: "Dec 4, 5:47:05.356 PM CST", + inNanos: "Dec 4, 5:47:05.356640223 PM CST", }); }); it("zero prefixes nanos correctly", () => { expect(formatTimeNanos(1764921600000000123n)).toEqual({ - inMillis: "Dec 5, 8:00:00.000 AM UTC", - inNanos: "Dec 5, 8:00:00.000000123 AM UTC", + inMillis: "Dec 5, 2:00:00.000 AM CST", + inNanos: "Dec 5, 2:00:00.000000123 AM CST", }); }); }); diff --git a/src/features/Overview/SlotPerformance/TransactionBarsCard/ChartTooltip.tsx b/src/features/Overview/SlotPerformance/TransactionBarsCard/ChartTooltip.tsx index d046ba1f..921f4e9e 100644 --- a/src/features/Overview/SlotPerformance/TransactionBarsCard/ChartTooltip.tsx +++ b/src/features/Overview/SlotPerformance/TransactionBarsCard/ChartTooltip.tsx @@ -14,7 +14,11 @@ import { Cross2Icon, CopyIcon, CheckIcon } from "@radix-ui/react-icons"; import { useDebouncedCallback } from "use-debounce"; import RowSeparator from "../../../../components/RowSeparator"; import { getDurationWithUnits } from "./chartUtils"; -import { copyToClipboard, removePortFromIp } from "../../../../utils"; +import { + copyToClipboard, + formatTimeNanos, + removePortFromIp, +} from "../../../../utils"; import { chartAxisColor, computeUnitsColor, @@ -49,83 +53,97 @@ export default function ChartTooltip() { return getTxnBundleStats(transactions, txnIdx); }, [transactions, txnIdx]); + if (transactions?.txn_bank_idx[txnIdx] == null) { + return ; + } + + const formattedArrivalTime = formatTimeNanos( + transactions.txn_arrival_timestamps_nanos[txnIdx], + ); + return ( - {transactions?.txn_bank_idx[txnIdx] != null && ( + + + + {txnState} + + + + - - - {txnState} - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - )} + ); } diff --git a/src/utils.ts b/src/utils.ts index f365ef5d..d2bfce14 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -393,7 +393,6 @@ const dateTimeFormatter = new Intl.DateTimeFormat(undefined, { minute: "2-digit", second: "2-digit", timeZoneName: "short", - timeZone: "UTC", fractionalSecondDigits: 3, });