@@ -4,27 +4,25 @@ import useAutoRefresh from "@src/shared/use-auto-refresh";
44import HttpErrorView from "@src/shared/view/http-error.view" ;
55import PageView from "@src/shared/view/page.view" ;
66import ReloadButton from "@src/shared/view/reload-button.view" ;
7+ import TriggerStatusSelect from "@src/shared/view/triger-status-select.view" ;
78import TriggerItemView from "@src/shared/view/trigger-list-item.view" ;
89import TaskSelect from "@src/task/view/task-select.view" ;
10+ import { useQuery } from "crossroad" ;
911import { useState } from "react" ;
1012import { Accordion , Col , Form , Row , Stack } from "react-bootstrap" ;
1113
1214const HistoryPage = ( ) => {
13- const [ page , setPage ] = useState ( 0 ) ;
14- const [ taskName , setTaskName ] = useState ( "" ) ;
15- const [ id , setId ] = useState ( "" ) ;
15+ const [ query , setQuery ] = useQuery ( ) ;
1616
1717 const triggers = useServerObject < PagedModel < Trigger > > (
1818 "/spring-tasks-api/history"
1919 ) ;
2020
2121 const doReload = ( ) => {
22- triggers . doGet (
23- "?size=10&page=" + page + "&taskName=" + taskName + "&id=" + id
24- ) ;
22+ triggers . doGet ( "?size=10&" + new URLSearchParams ( query ) . toString ( ) ) ;
2523 } ;
2624
27- useAutoRefresh ( 10000 , doReload , [ page , taskName , id ] ) ;
25+ useAutoRefresh ( 10000 , doReload , [ query ] ) ;
2826
2927 return (
3028 < >
@@ -33,25 +31,52 @@ const HistoryPage = () => {
3331 < Row >
3432 < Col >
3533 < Form . Control
34+ defaultValue = { query . id || "" }
3635 type = "text"
3736 placeholder = "Search..."
3837 onKeyUp = { ( e ) =>
3938 e . key == "Enter"
40- ? setId (
41- ( e . target as HTMLInputElement ) . value
42- )
39+ ? setQuery ( ( prev ) => ( {
40+ ...prev ,
41+ id : ( e . target as HTMLInputElement )
42+ . value ,
43+ } ) )
4344 : null
4445 }
4546 />
4647 </ Col >
48+ < Col >
49+ < TriggerStatusSelect
50+ value = { query . status }
51+ onTaskChange = { ( status ) =>
52+ setQuery ( ( prev ) => ( {
53+ ...prev ,
54+ status,
55+ } ) )
56+ }
57+ />
58+ </ Col >
4759 </ Row >
4860 < Row className = "align-items-center mb-2" >
4961 < Col >
50- < TaskSelect onTaskChange = { setTaskName } />
62+ < TaskSelect
63+ value = { query . taskName }
64+ onTaskChange = { ( taskName ) =>
65+ setQuery ( ( prev ) => ( {
66+ ...prev ,
67+ taskName : taskName ,
68+ } ) )
69+ }
70+ />
5171 </ Col >
5272 < Col >
5373 < PageView
54- onPage = { ( p ) => setPage ( p ) }
74+ onPage = { ( page ) =>
75+ setQuery ( ( prev ) => ( {
76+ ...prev ,
77+ page : page + "" ,
78+ } ) )
79+ }
5580 data = { triggers . data }
5681 />
5782 </ Col >
0 commit comments