Skip to content

Commit

Permalink
fix: add apply/clear for created filter, fix created filter pill (#1808)
Browse files Browse the repository at this point in the history
* fix: add apply/clear for created filter, fix created filter pill

* undefined case

* fix
  • Loading branch information
ivyjeong13 authored Feb 21, 2025
1 parent 130c4fa commit 3564cd7
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 25 deletions.
17 changes: 13 additions & 4 deletions ui/admin/app/components/composed/DataTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ export const DataTableTimeFilter = ({
}: {
dateRange: DateRange;
field: string;
onSelect: (range: DateRange) => void;
onSelect: (range?: DateRange) => void;
}) => {
const [range, setRange] = useState<DateRange | undefined>(dateRange);
return (
Expand All @@ -231,12 +231,21 @@ export const DataTableTimeFilter = ({
selected={range}
onSelect={(range) => {
setRange(range);
if (range?.from && range?.to) {
onSelect(range);
}
}}
initialFocus
/>
<div className="flex justify-between gap-2">
<Button
variant="secondary"
onClick={() => {
setRange(undefined);
onSelect(undefined);
}}
>
Clear
</Button>
<Button onClick={() => onSelect(range)}>Apply</Button>
</div>
</PopoverContent>
</Popover>
);
Expand Down
24 changes: 13 additions & 11 deletions ui/admin/app/components/composed/Filters.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ type QueryParams = {
agentId?: string;
userId?: string;
taskId?: string;
created?: string;
createdStart?: string;
createdEnd?: string;
};

export function Filters({
Expand All @@ -39,9 +40,10 @@ export function Filters({
) as QueryParams) ?? {};
const { ...filters } = query; // TODO: from

const updateFilters = (param: keyof QueryParams) => {
const deleteFilters = (...params: (keyof QueryParams)[]) => {
const newQuery = { ...query };
delete newQuery[param];
params.forEach((param) => delete newQuery[param]);

// Filter out null/undefined values and ensure all values are strings
const cleanQuery = Object.fromEntries(
Object.entries(newQuery)
Expand All @@ -58,30 +60,30 @@ export function Filters({
key: "agentId",
label: "Agent",
value: agentMap.get(filters.agentId)?.name ?? filters.agentId,
onRemove: () => updateFilters("agentId"),
onRemove: () => deleteFilters("agentId"),
},
"userId" in filters &&
filters.userId &&
userMap && {
key: "userId",
label: "User",
value: userMap.get(filters.userId)?.email ?? filters.userId,
onRemove: () => updateFilters("userId"),
onRemove: () => deleteFilters("userId"),
},
"taskId" in filters &&
filters.taskId &&
workflowMap && {
key: "taskId",
label: "Task",
value: workflowMap?.get(filters.taskId)?.name ?? filters.taskId,
onRemove: () => updateFilters("taskId"),
onRemove: () => deleteFilters("taskId"),
},
"created" in filters &&
filters.created && {
key: "created",
"createdStart" in filters &&
filters.createdStart && {
key: "createdStart",
label: "Created",
value: new Date(filters.created).toLocaleDateString(),
onRemove: () => updateFilters("created"),
value: `${new Date(filters.createdStart).toLocaleDateString()} ${filters.createdEnd ? `- ${new Date(filters.createdEnd).toLocaleDateString()}` : ""}`,
onRemove: () => deleteFilters("createdStart", "createdEnd"),
},
].filter((x) => !!x);
}, [navigate, searchParams, agentMap, userMap, workflowMap, url]);
Expand Down
3 changes: 1 addition & 2 deletions ui/admin/app/components/composed/typography.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { Slot } from "@radix-ui/react-slot";
import { TooltipContentProps } from "@radix-ui/react-tooltip";
import { useEffect, useState } from "react";
import { useRef } from "react";
import { useEffect, useRef, useState } from "react";

import { cn } from "~/lib/utils";

Expand Down
4 changes: 2 additions & 2 deletions ui/admin/app/routes/_auth.chat-threads._index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,8 @@ export default function TaskRuns() {
onSelect={(range) => {
navigate.internal(
$path("/chat-threads", {
createdStart: range.from?.toDateString(),
createdEnd: range.to?.toDateString(),
createdStart: range?.from?.toDateString() ?? "",
createdEnd: range?.to?.toDateString() ?? "",
...(agentId && { agentId }),
...(userId && { userId }),
})
Expand Down
4 changes: 2 additions & 2 deletions ui/admin/app/routes/_auth.task-runs._index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -254,8 +254,8 @@ export default function TaskRuns() {
onSelect={(range) => {
navigate.internal(
$path("/task-runs", {
createdStart: range.from?.toDateString(),
createdEnd: range.to?.toDateString(),
createdStart: range?.from?.toDateString() ?? "",
createdEnd: range?.to?.toDateString() ?? "",
...(taskId && { taskId }),
...(userId && { userId }),
})
Expand Down
6 changes: 2 additions & 4 deletions ui/admin/app/routes/_auth.tasks._index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -295,10 +295,8 @@ export default function Tasks() {
onSelect={(range) => {
navigate.internal(
$path("/tasks", {
...(range.from && {
createdStart: range.from.toDateString(),
}),
...(range.to && { createdEnd: range.to.toDateString() }),
createdStart: range?.from?.toDateString() ?? "",
createdEnd: range?.to?.toDateString() ?? "",
...(taskId && { taskId }),
...(agentId && { agentId }),
...(userId && { userId }),
Expand Down

0 comments on commit 3564cd7

Please sign in to comment.