From 3cf3843074e92e8bb95df85091fc75fdb80e5542 Mon Sep 17 00:00:00 2001 From: Juliet Date: Mon, 06 Apr 2026 12:55:11 +0000 Subject: [PATCH] add datetime picker to jetstream cursor --- src/views/stream/config.ts | 2 ++ src/views/stream/index.tsx | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------- 2 file(s) changed, 72 insertion(s)(+), 32 deletion(s)(-) diff --git a/src/views/stream/config.ts b/src/views/stream/config.ts --- a/src/views/stream/config.ts +++ b/src/views/stream/config.ts @@ -6,6 +6,7 @@ name: string; label: string; type: "text" | "checkbox" | "tags"; + datetimePicker?: boolean; placeholder?: string; searchParam: string; }; @@ -62,6 +63,7 @@ type: "text", placeholder: "Leave empty for live-tail", searchParam: "cursor", + datetimePicker: true, }, { name: "allEvents", diff --git a/src/views/stream/index.tsx b/src/views/stream/index.tsx --- a/src/views/stream/index.tsx +++ b/src/views/stream/index.tsx @@ -13,6 +13,19 @@ const LIMIT = 20; +const microsToDatetimeLocal = (micros: string): string => { + const ms = Math.floor(Number(micros) / 1000); + if (isNaN(ms)) return ""; + const d = new Date(ms); + const pad = (n: number) => n.toString().padStart(2, "0"); + return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`; +}; + +const datetimeLocalToMicros = (dt: string): string => { + if (!dt) return ""; + return (new Date(dt).getTime() * 1000).toString(); +}; + const TYPE_COLORS: Record = { create: "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-300", update: "bg-orange-100 text-orange-700 dark:bg-orange-900/30 dark:text-orange-300", @@ -366,39 +379,64 @@ - {(field) => ( - + ); + }}
-- tangled.sh