@@ -16,10 +16,12 @@ import { UserService } from "~/lib/service/api/userService";
1616import { RouteHandle } from "~/lib/service/routeHandles" ;
1717import { RouteQueryParams , RouteService } from "~/lib/service/routeService" ;
1818import { timeSince } from "~/lib/utils" ;
19+ import { filterByCreatedRange } from "~/lib/utils/filter" ;
1920
2021import {
2122 DataTable ,
2223 DataTableFilter ,
24+ DataTableTimeFilter ,
2325 useRowNavigate ,
2426} from "~/components/composed/DataTable" ;
2527import { Filters } from "~/components/composed/Filters" ;
@@ -61,7 +63,8 @@ export default function TaskRuns() {
6163 ? value
6264 : $path ( "/chat-threads/:id" , { id : value . id } )
6365 ) ;
64- const { agentId, userId } = useLoaderData < typeof clientLoader > ( ) ;
66+ const { agentId, userId, createdStart, createdEnd } =
67+ useLoaderData < typeof clientLoader > ( ) ;
6568
6669 const getThreads = useSWR ( ...ThreadsService . getThreads . swr ( { } ) ) ;
6770 const getAgents = useSWR ( ...AgentService . getAgents . swr ( { } ) ) ;
@@ -86,8 +89,16 @@ export default function TaskRuns() {
8689 ) ;
8790 }
8891
92+ if ( createdStart ) {
93+ filteredThreads = filterByCreatedRange (
94+ filteredThreads ,
95+ createdStart ,
96+ createdEnd
97+ ) ;
98+ }
99+
89100 return filteredThreads ;
90- } , [ getThreads . data , agentId , userId ] ) ;
101+ } , [ getThreads . data , agentId , userId , createdStart , createdEnd ] ) ;
91102
92103 const agentMap = useMemo (
93104 ( ) => new Map ( getAgents . data ?. map ( ( agent ) => [ agent . id , agent ] ) ) ,
@@ -160,6 +171,8 @@ export default function TaskRuns() {
160171 $path ( "/chat-threads" , {
161172 agentId : value ,
162173 ...( userId && { userId } ) ,
174+ ...( createdStart && { createdStart } ) ,
175+ ...( createdEnd && { createdEnd } ) ,
163176 } )
164177 ) ;
165178 } }
@@ -183,6 +196,8 @@ export default function TaskRuns() {
183196 $path ( "/chat-threads" , {
184197 userId : value ,
185198 ...( agentId && { agentId } ) ,
199+ ...( createdStart && { createdStart } ) ,
200+ ...( createdEnd && { createdEnd } ) ,
186201 } )
187202 ) ;
188203 } }
@@ -191,7 +206,26 @@ export default function TaskRuns() {
191206 } ) ,
192207 columnHelper . accessor ( "created" , {
193208 id : "created" ,
194- header : "Created" ,
209+ header : ( { column } ) => (
210+ < DataTableTimeFilter
211+ key = { column . id }
212+ field = "Created"
213+ dateRange = { {
214+ from : createdStart ? new Date ( createdStart ) : undefined ,
215+ to : createdEnd ? new Date ( createdEnd ) : undefined ,
216+ } }
217+ onSelect = { ( range ) => {
218+ navigate . internal (
219+ $path ( "/chat-threads" , {
220+ createdStart : range . from ?. toDateString ( ) ,
221+ createdEnd : range . to ?. toDateString ( ) ,
222+ ...( agentId && { agentId } ) ,
223+ ...( userId && { userId } ) ,
224+ } )
225+ ) ;
226+ } }
227+ />
228+ ) ,
195229 cell : ( info ) => (
196230 < p > { timeSince ( new Date ( info . row . original . created ) ) } ago</ p >
197231 ) ,
0 commit comments