11import { useEffect , useState } from "react"
2- import { getItems , Item , ToFilter } from "../functions/api"
2+ import { getItems , Item } from "../functions/api"
33import ItemShow from "./ItemShow" ;
4- import { filterItems , sortItems } from "../functions/sortitems" ;
5- import BodyHeader from "./BodyHeader " ;
4+ import { filterItems , getGroupsList , sortItems } from "../functions/sortitems" ;
5+ import BodyTabs from "./BodyTabs " ;
66
77let sortField :keyof Item = "Exec" ;
88let sortWay :boolean = true ;
9+ let filterField :keyof Item = "Exec" ;
10+ let filterOption :string = "" ;
911
1012function Body ( ) {
1113
1214 const [ items , setItems ] = useState < Item [ ] > ( [ ] ) ;
15+ const [ grList , setGrList ] = useState < string [ ] > ( [ ] ) ;
1316 const [ updBody , setUpdBody ] = useState < boolean > ( false ) ;
1417 const [ sortTrigger , setSortTrigger ] = useState < boolean > ( false ) ;
15- const [ filterRes , setFilterRes ] = useState < ToFilter > ( { Field : "Exec" , Option : "" } ) ;
1618
1719 const handleSort = ( sortby :keyof Item ) => {
1820 setSortTrigger ( ! sortTrigger ) ;
@@ -30,10 +32,15 @@ function Body() {
3032 sortField = str1 as keyof Item ;
3133 const str = localStorage . getItem ( 'sort_way' ) ;
3234 sortWay = str === "true" ;
35+ const str2 = localStorage . getItem ( 'filter_field' ) ;
36+ filterField = str2 as keyof Item ;
37+ const str3 = localStorage . getItem ( 'filter_option' ) ;
38+ filterOption = str3 as string ;
3339
3440 let tmpItems :Item [ ] = await getItems ( ) ;
35- if ( filterRes . Option !== "" ) {
36- tmpItems = filterItems ( tmpItems , filterRes . Field , filterRes . Option ) ;
41+ setGrList ( getGroupsList ( tmpItems ) ) ;
42+ if ( filterOption !== "" ) {
43+ tmpItems = filterItems ( tmpItems , filterField , filterOption ) ;
3744 }
3845
3946 setItems ( sortItems ( tmpItems , sortField , sortWay , sortTrigger ) ) ;
@@ -55,7 +62,7 @@ function Body() {
5562 < div className = "container-lg mt-2" >
5663 < div className = "card border-primary" >
5764 < div className = "card-header" >
58- < BodyHeader items = { items } setFilterRes = { setFilterRes } setUpdBody = { setUpdBody } > </ BodyHeader >
65+ < BodyTabs grList = { grList } setUpdBody = { setUpdBody } > </ BodyTabs >
5966 </ div >
6067 < div className = "card-body table-responsive" >
6168 < table className = "table table-striped" >
@@ -69,6 +76,7 @@ function Body() {
6976 < th > Action</ th >
7077 < th > Logs</ th >
7178 < th > Edit</ th >
79+ < th style = { { width : "1%" } } > Link</ th >
7280 </ tr >
7381 </ thead >
7482 < tbody >
0 commit comments