diff --git a/ui/litellm-dashboard/src/app/(dashboard)/layout.tsx b/ui/litellm-dashboard/src/app/(dashboard)/layout.tsx
index a5e83436888..09951dc1923 100644
--- a/ui/litellm-dashboard/src/app/(dashboard)/layout.tsx
+++ b/ui/litellm-dashboard/src/app/(dashboard)/layout.tsx
@@ -126,7 +126,7 @@ function DashboardShell({ children }: { children: React.ReactNode }) {
- {children}
+ {children}
>
)}
diff --git a/ui/litellm-dashboard/src/components/view_logs/columns.tsx b/ui/litellm-dashboard/src/components/view_logs/columns.tsx
index aeeb31f78f3..1265b8449de 100644
--- a/ui/litellm-dashboard/src/components/view_logs/columns.tsx
+++ b/ui/litellm-dashboard/src/components/view_logs/columns.tsx
@@ -119,13 +119,11 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
)
: "Time",
accessorKey: "startTime",
- size: 200,
cell: (info: any) => ,
},
{
header: "Type",
id: "type",
- size: 90,
cell: (info: any) => {
const row = info.row.original;
const sessionCount = row.session_total_count || 1;
@@ -170,7 +168,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
{
header: "Status",
accessorKey: "metadata.status",
- size: 100,
cell: (info: any) => {
const status = info.getValue() || "Success";
const isSuccess = status.toLowerCase() !== "failure";
@@ -189,7 +186,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
{
header: "Session ID",
accessorKey: "session_id",
- size: 160,
cell: (info: any) => {
const value = String(info.getValue() || "");
const onSessionClick = info.row.original.onSessionClick;
@@ -211,7 +207,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
{
header: "Request ID",
accessorKey: "request_id",
- size: 160,
cell: (info: any) => (
{String(info.getValue() || "")}
@@ -231,7 +226,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
)
: "Cost",
accessorKey: "spend",
- size: 110,
cell: (info: any) => {
const row = info.row.original;
const mcpCount = row.mcp_tool_call_count || 0;
@@ -264,7 +258,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
)
: "Duration (s)",
accessorKey: "request_duration_ms",
- size: 120,
cell: (info: any) => {
const ms = info.getValue();
if (ms == null) return -;
@@ -289,7 +282,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
)
: "TTFT (s)",
accessorKey: "completionStartTime",
- size: 110,
cell: (info: any) => {
const row = info.row.original;
const completionStartTime = info.getValue();
@@ -309,7 +301,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
{
header: "Team Name",
accessorKey: "metadata.user_api_key_team_alias",
- size: 150,
cell: (info: any) => (
{String(info.getValue() || "-")}
@@ -319,7 +310,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
{
header: "Key Hash",
accessorKey: "metadata.user_api_key",
- size: 160,
cell: (info: any) => {
const value = String(info.getValue() || "-");
const onKeyHashClick = info.row.original.onKeyHashClick;
@@ -339,7 +329,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
{
header: "Key Alias",
accessorKey: "metadata.user_api_key_alias",
- size: 150,
cell: (info: any) => (
{String(info.getValue() || "-")}
@@ -359,7 +348,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
)
: "Model",
accessorKey: "model",
- size: 200,
cell: (info: any) => {
const row = info.row.original;
const provider = row.custom_llm_provider;
@@ -397,7 +385,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
)
: "Tokens",
accessorKey: "total_tokens",
- size: 140,
cell: (info: any) => {
const row = info.row.original;
return (
@@ -413,7 +400,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
{
header: "Internal User",
accessorKey: "user",
- size: 150,
cell: (info: any) => (
{String(info.getValue() || "-")}
@@ -423,7 +409,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
{
header: "End User",
accessorKey: "end_user",
- size: 140,
cell: (info: any) => (
{String(info.getValue() || "-")}
@@ -434,7 +419,6 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[]
{
header: "Tags",
accessorKey: "request_tags",
- size: 150,
cell: (info: any) => {
const tags = info.getValue();
if (!tags || Object.keys(tags).length === 0) return "-";
diff --git a/ui/litellm-dashboard/src/components/view_logs/index.tsx b/ui/litellm-dashboard/src/components/view_logs/index.tsx
index 6c5fd03f0a0..cfe1bd6025a 100644
--- a/ui/litellm-dashboard/src/components/view_logs/index.tsx
+++ b/ui/litellm-dashboard/src/components/view_logs/index.tsx
@@ -234,7 +234,7 @@ export default function SpendLogsTable({ accessToken, token, userRole, userID, p
};
return (
-
+
setActiveTab(index === 0 ? "request logs" : "audit logs")}>
Request Logs
diff --git a/ui/litellm-dashboard/src/components/view_logs/table.test.tsx b/ui/litellm-dashboard/src/components/view_logs/table.test.tsx
deleted file mode 100644
index f88e9bd75c8..00000000000
--- a/ui/litellm-dashboard/src/components/view_logs/table.test.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-import type { ColumnDef } from "@tanstack/react-table";
-import { render, screen } from "@testing-library/react";
-import { describe, expect, it } from "vitest";
-import { DataTable } from "./table";
-
-type Row = { request_id: string; a: string; b: string };
-
-const data: Row[] = [{ request_id: "r1", a: "alpha", b: "beta" }];
-
-const sizedColumns: ColumnDef[] = [
- { header: "A", accessorKey: "a", size: 120 },
- { header: "B", accessorKey: "b", size: 80 },
-];
-
-const unsizedColumns: ColumnDef[] = [
- { header: "A", accessorKey: "a" },
- { header: "B", accessorKey: "b" },
-];
-
-describe("DataTable column sizing", () => {
- it("widths the table and every cell from column sizes when columns declare them", () => {
- render();
-
- expect(screen.getByRole("table").style.width).toBe("200px");
-
- const headers = screen.getAllByRole("columnheader");
- expect(headers.map((h) => h.style.width)).toEqual(["120px", "80px"]);
-
- const cells = screen.getAllByRole("cell");
- expect(cells.map((c) => c.style.width)).toEqual(["120px", "80px"]);
- });
-
- it("leaves cells unsized and keeps the fluid table when no column declares a size", () => {
- render();
-
- const table = screen.getByRole("table");
- expect(table.style.width).toBe("");
- expect(table.style.minWidth).toBe("400px");
-
- for (const cell of [...screen.getAllByRole("columnheader"), ...screen.getAllByRole("cell")]) {
- expect(cell.style.width).toBe("");
- }
- });
-});
diff --git a/ui/litellm-dashboard/src/components/view_logs/table.tsx b/ui/litellm-dashboard/src/components/view_logs/table.tsx
index a47bf5a8e5c..6aa349513d5 100644
--- a/ui/litellm-dashboard/src/components/view_logs/table.tsx
+++ b/ui/litellm-dashboard/src/components/view_logs/table.tsx
@@ -41,7 +41,6 @@ export function DataTable({
enableSorting = false,
}: DataTableProps) {
const supportsExpansion = !!(renderSubComponent || renderChildRows) && !!getRowCanExpand;
- const hasExplicitColumnSizes = columns.some((column) => column.size !== undefined);
const [sorting, setSorting] = useState([]);
const table = useReactTable({
@@ -64,14 +63,9 @@ export function DataTable({
...(supportsExpansion && { getExpandedRowModel: getExpandedRowModel() }),
});
- const tableClassName = hasExplicitColumnSizes
- ? "[&_td]:py-0.5 [&_th]:py-1 [&_table]:table-fixed"
- : "[&_td]:py-0.5 [&_th]:py-1 table-fixed w-full box-border";
- const tableStyle = hasExplicitColumnSizes ? { width: table.getCenterTotalSize() } : { minWidth: "400px" };
-
return (
-
+
{table.getHeaderGroups().map((headerGroup) => (
@@ -83,7 +77,6 @@ export function DataTable({
{header.isPlaceholder ? null : (
@@ -119,11 +112,7 @@ export function DataTable({
onClick={() => onRowClick?.(row.original)}
>
{row.getVisibleCells().map((cell) => (
-
+
{flexRender(cell.column.columnDef.cell, cell.getContext())}
))}