Skip to content

Commit fe466ee

Browse files
committed
updating trace and session view pages
1 parent 491128e commit fe466ee

2 files changed

Lines changed: 38 additions & 2 deletions

File tree

frontend/src/app/org/[orgId]/project/[projectId]/sessions/page.tsx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use client";
22

3-
import { useMemo, useState } from "react";
3+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
44
import {
55
useQuery,
66
useQueryClient,
@@ -30,6 +30,7 @@ import { X, FlaskConical } from "lucide-react";
3030
import { SessionSortBy, SortOrder } from "@/lib/api/enums";
3131
import { useDocumentTitle } from "@/hooks/useDocumentTitle";
3232
import { useUrlState } from "@/hooks/useUrlState";
33+
import { useLastVisitedRow } from "@/hooks/useVisitedRows";
3334
import { extractErrorMessage } from "@/lib/api/client";
3435
import { cn } from "@/lib/utils/cn";
3536

@@ -57,6 +58,21 @@ export default function SessionsPage() {
5758
useDocumentTitle("Sessions");
5859

5960
const [selected, setSelected] = useState<Set<string>>(new Set());
61+
const { lastVisited, restoredPage, markVisited } =
62+
useLastVisitedRow("pp_visited_sessions");
63+
64+
const pageRestored = useRef(false);
65+
useEffect(() => {
66+
if (!pageRestored.current && restoredPage) {
67+
pageRestored.current = true;
68+
set({ page: restoredPage });
69+
}
70+
}, [restoredPage, set]);
71+
72+
const handleRowVisit = useCallback(
73+
(id: string) => markVisited(id, String(page)),
74+
[markVisited, page],
75+
);
6076
const [runEvalOpen, setRunEvalOpen] = useState(false);
6177

6278
const params = useMemo<ListSessionsParams>(() => {
@@ -273,6 +289,8 @@ export default function SessionsPage() {
273289
sessions={data.items}
274290
selected={selected}
275291
onSelectionChange={setSelected}
292+
lastVisited={lastVisited}
293+
onRowVisit={handleRowVisit}
276294
/>
277295
</div>
278296
<Pagination

frontend/src/app/org/[orgId]/project/[projectId]/traces/page.tsx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use client";
22

3-
import { useMemo, useState } from "react";
3+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
44
import {
55
useQuery,
66
useQueryClient,
@@ -39,6 +39,7 @@ import { TraceStatus, TraceSortBy, SortOrder } from "@/lib/api/enums";
3939
import { queryKeys } from "@/lib/query/keys";
4040
import { useDocumentTitle } from "@/hooks/useDocumentTitle";
4141
import { useUrlState } from "@/hooks/useUrlState";
42+
import { useLastVisitedRow } from "@/hooks/useVisitedRows";
4243
import { extractErrorMessage } from "@/lib/api/client";
4344
import { cn } from "@/lib/utils/cn";
4445

@@ -68,6 +69,21 @@ export default function TracesPage() {
6869
useDocumentTitle("Traces");
6970

7071
const [selected, setSelected] = useState<Set<string>>(new Set());
72+
const { lastVisited, restoredPage, markVisited } =
73+
useLastVisitedRow("pp_visited_traces");
74+
75+
const pageRestored = useRef(false);
76+
useEffect(() => {
77+
if (!pageRestored.current && restoredPage) {
78+
pageRestored.current = true;
79+
set({ page: restoredPage });
80+
}
81+
}, [restoredPage, set]);
82+
83+
const handleRowVisit = useCallback(
84+
(id: string) => markVisited(id, String(page)),
85+
[markVisited, page],
86+
);
7187
const [confirmDelete, setConfirmDelete] = useState(false);
7288
const [showTagDialog, setShowTagDialog] = useState(false);
7389
const [tagInput, setTagInput] = useState("");
@@ -360,6 +376,8 @@ export default function TracesPage() {
360376
traces={data.items}
361377
selected={selected}
362378
onSelectionChange={setSelected}
379+
lastVisited={lastVisited}
380+
onRowVisit={handleRowVisit}
363381
/>
364382
</div>
365383
<Pagination

0 commit comments

Comments
 (0)