@@ -17,23 +17,37 @@ import Pagination from '../../../components/Pagination/Pagination';
17
17
import { CloseRounded , Check , KeyboardArrowRight } from '@material-ui/icons' ;
18
18
import Search from '../../../components/Search/Search' ;
19
19
20
- const useStyles = makeStyles ( styles ) ;
20
+ interface User {
21
+ username : string ;
22
+ displayName ?: string ;
23
+ title ?: string ;
24
+ email ?: string ;
25
+ gitAccount ?: string ;
26
+ admin ?: boolean ;
27
+ }
28
+
29
+ interface UserListProps {
30
+ [ key : string ] : any ;
31
+ }
21
32
22
- export default function UserList ( props ) {
33
+ const useStyles = makeStyles ( styles as any ) ;
34
+
35
+ const UserList : React . FC < UserListProps > = ( props ) => {
23
36
const classes = useStyles ( ) ;
24
- const [ data , setData ] = useState ( [ ] ) ;
25
- const [ , setAuth ] = useState ( true ) ;
26
- const [ isLoading , setIsLoading ] = useState ( false ) ;
27
- const [ isError , setIsError ] = useState ( false ) ;
37
+ const [ data , setData ] = useState < User [ ] > ( [ ] ) ;
38
+ const [ , setAuth ] = useState < boolean > ( true ) ;
39
+ const [ isLoading , setIsLoading ] = useState < boolean > ( false ) ;
40
+ const [ isError , setIsError ] = useState < boolean > ( false ) ;
28
41
const navigate = useNavigate ( ) ;
29
- const [ currentPage , setCurrentPage ] = useState ( 1 ) ;
42
+ const [ currentPage , setCurrentPage ] = useState < number > ( 1 ) ;
30
43
const itemsPerPage = 5 ;
31
- const [ searchQuery , setSearchQuery ] = useState ( '' ) ;
44
+ const [ searchQuery , setSearchQuery ] = useState < string > ( '' ) ;
32
45
33
- const openUser = ( username ) => navigate ( `/dashboard/admin/user/${ username } ` , { replace : true } ) ;
46
+ const openUser = ( username : string ) =>
47
+ navigate ( `/dashboard/admin/user/${ username } ` , { replace : true } ) ;
34
48
35
49
useEffect ( ( ) => {
36
- const query = { } ;
50
+ const query : Record < string , any > = { } ;
37
51
38
52
for ( const k in props ) {
39
53
if ( ! k ) continue ;
@@ -56,11 +70,11 @@ export default function UserList(props) {
56
70
const currentItems = filteredUsers . slice ( indexOfFirstItem , indexOfLastItem ) ;
57
71
const totalItems = filteredUsers . length ;
58
72
59
- const handlePageChange = ( page ) => {
73
+ const handlePageChange = ( page : number ) => {
60
74
setCurrentPage ( page ) ;
61
75
} ;
62
76
63
- const handleSearch = ( query ) => {
77
+ const handleSearch = ( query : string ) => {
64
78
setSearchQuery ( query ) ;
65
79
setCurrentPage ( 1 ) ;
66
80
} ;
@@ -128,4 +142,6 @@ export default function UserList(props) {
128
142
</ GridItem >
129
143
</ GridContainer >
130
144
) ;
131
- }
145
+ } ;
146
+
147
+ export default UserList ;
0 commit comments