@@ -13,25 +13,17 @@ import Paper from '@material-ui/core/Paper';
13
13
import styles from '../../../assets/jss/material-dashboard-react/views/dashboardStyle' ;
14
14
import { getPushes } from '../../../services/git-push' ;
15
15
import { KeyboardArrowRight } from '@material-ui/icons' ;
16
- import Search from '../../../components/Search/Search' ; // Import the Search component
17
- import Pagination from '../../../components/Pagination/Pagination' ; // Import Pagination component
18
16
19
17
export default function PushesTable ( props ) {
20
18
const useStyles = makeStyles ( styles ) ;
21
19
const classes = useStyles ( ) ;
22
20
const [ data , setData ] = useState ( [ ] ) ;
23
- const [ filteredData , setFilteredData ] = useState ( [ ] ) ; // State for filtered data
21
+ const [ , setAuth ] = useState ( true ) ;
24
22
const [ isLoading , setIsLoading ] = useState ( false ) ;
25
23
const [ isError , setIsError ] = useState ( false ) ;
26
24
const navigate = useNavigate ( ) ;
27
- const [ , setAuth ] = useState ( true ) ;
28
- const [ currentPage , setCurrentPage ] = useState ( 1 ) ; // State for current page
29
- const itemsPerPage = 5 ;
30
- const [ searchTerm , setSearchTerm ] = useState ( '' ) ; // Define searchTerm state
31
- const openPush = ( push ) => navigate ( `/admin/push/${ push } ` , { replace : true } ) ;
32
25
33
-
34
-
26
+ const openPush = ( push ) => navigate ( `/admin/push/${ push } ` , { replace : true } ) ;
35
27
36
28
useEffect ( ( ) => {
37
29
const query = { } ;
@@ -43,161 +35,94 @@ export default function PushesTable(props) {
43
35
getPushes ( setIsLoading , setData , setAuth , setIsError , query ) ;
44
36
} , [ props ] ) ;
45
37
46
-
47
- // useEffect(() => {
48
- // setFilteredData(data); // Initialize filtered data with full data on load
49
- // }, [data]);
50
-
51
- useEffect ( ( ) => {
52
- // Initialize filtered data with full data on load
53
- const filtered = filterByStatus ( data ) ;
54
- setFilteredData ( filtered ) ;
55
- } , [ props ] ) ;
56
-
57
- const filterByStatus = ( data ) => {
58
- if ( props . authorised ) {
59
- return data . filter ( item => item . status === 'approved' ) ;
60
- }
61
- if ( props . rejected ) {
62
- return data . filter ( item => item . status === 'rejected' ) ;
63
- }
64
- if ( props . canceled ) {
65
- return data . filter ( item => item . status === 'canceled' ) ;
66
- }
67
- if ( props . blocked ) {
68
- return data . filter ( item => item . status === 'pending' ) ;
69
- }
70
- return data ;
71
- } ;
72
-
73
-
74
- // Apply search to the filtered data
75
- useEffect ( ( ) => {
76
- const filtered = filterByStatus ( data ) ; // Apply status filter first
77
- if ( searchTerm ) {
78
- const lowerCaseTerm = searchTerm . toLowerCase ( ) ;
79
- const searchFiltered = filtered . filter ( ( item ) =>
80
- item . repo . toLowerCase ( ) . includes ( lowerCaseTerm ) ||
81
- item . commitTo . toLowerCase ( ) . includes ( lowerCaseTerm ) ||
82
-
83
- item . commitData [ 0 ] . message . toLowerCase ( ) . includes ( lowerCaseTerm )
84
- ) ;
85
- setFilteredData ( searchFiltered ) ;
86
- } else {
87
- setFilteredData ( filtered ) ; // Reset to filtered data after clearing search
88
- }
89
- setCurrentPage ( 1 ) ; // Reset pagination on search
90
- } , [ searchTerm , props ] ) ; // Trigger on search or tab change
91
-
92
- // Handler function for search input
93
- const handleSearch = ( searchTerm ) => {
94
- setSearchTerm ( searchTerm ) ; // Update search term state
95
- } ;
96
-
97
-
98
- const handlePageChange = ( page ) => {
99
- setCurrentPage ( page ) ; // Update current page
100
- } ;
101
-
102
- // Logic for pagination (getting items for the current page)
103
- const indexOfLastItem = currentPage * itemsPerPage ;
104
- const indexOfFirstItem = indexOfLastItem - itemsPerPage ;
105
- const currentItems = filteredData . slice ( indexOfFirstItem , indexOfLastItem ) ;
106
-
107
- // Change page
108
- const paginate = ( pageNumber ) => setCurrentPage ( pageNumber ) ;
109
-
110
38
if ( isLoading ) return < div > Loading...</ div > ;
111
39
if ( isError ) return < div > Something went wrong ...</ div > ;
112
40
113
41
return (
114
42
< div >
115
- < Search onSearch = { handleSearch } /> { /* Use the Search component */ }
116
-
117
-
118
43
< TableContainer component = { Paper } >
119
- < Table className = { classes . table } aria-label = " simple table" >
44
+ < Table className = { classes . table } aria-label = ' simple table' >
120
45
< TableHead >
121
46
< TableRow >
122
- < TableCell align = " left" > Timestamp</ TableCell >
123
- < TableCell align = " left" > Repository</ TableCell >
124
- < TableCell align = " left" > Branch</ TableCell >
125
- < TableCell align = " left" > Commit SHA</ TableCell >
126
- < TableCell align = " left" > Committer</ TableCell >
127
- < TableCell align = " left" > Author</ TableCell >
128
- < TableCell align = " left" > Author E-mail</ TableCell >
129
- < TableCell align = " left" > Commit Message</ TableCell >
130
- < TableCell align = " left" > No. of Commits</ TableCell >
131
- < TableCell align = " right" > </ TableCell >
47
+ < TableCell align = ' left' > Timestamp</ TableCell >
48
+ < TableCell align = ' left' > Repository</ TableCell >
49
+ < TableCell align = ' left' > Branch</ TableCell >
50
+ < TableCell align = ' left' > Commit SHA</ TableCell >
51
+ < TableCell align = ' left' > Committer</ TableCell >
52
+ < TableCell align = ' left' > Author</ TableCell >
53
+ < TableCell align = ' left' > Author E-mail</ TableCell >
54
+ < TableCell align = ' left' > Commit Message</ TableCell >
55
+ < TableCell align = ' left' > No. of Commits</ TableCell >
56
+ < TableCell align = ' right' > </ TableCell >
132
57
</ TableRow >
133
58
</ TableHead >
134
59
< TableBody >
135
- { currentItems . reverse ( ) . map ( ( row ) => {
60
+ { [ ... data ] . reverse ( ) . map ( ( row ) => {
136
61
const repoFullName = row . repo . replace ( '.git' , '' ) ;
137
62
const repoBranch = row . branch . replace ( 'refs/heads/' , '' ) ;
138
63
139
64
return (
140
65
< TableRow key = { row . id } >
141
- < TableCell align = " left" >
66
+ < TableCell align = ' left' >
142
67
{ moment
143
68
. unix ( row . commitData [ 0 ] . commitTs || row . commitData [ 0 ] . commitTimestamp )
144
69
. toString ( ) }
145
70
</ TableCell >
146
- < TableCell align = " left" >
147
- < a href = { `https://github.com/${ row . repo } ` } rel = " noreferrer" target = " _blank" >
71
+ < TableCell align = ' left' >
72
+ < a href = { `https://github.com/${ row . repo } ` } rel = ' noreferrer' target = ' _blank' >
148
73
{ repoFullName }
149
74
</ a >
150
75
</ TableCell >
151
- < TableCell align = " left" >
76
+ < TableCell align = ' left' >
152
77
< a
153
78
href = { `https://github.com/${ repoFullName } /tree/${ repoBranch } ` }
154
- rel = " noreferrer"
155
- target = " _blank"
79
+ rel = ' noreferrer'
80
+ target = ' _blank'
156
81
>
157
82
{ repoBranch }
158
83
</ a >
159
84
</ TableCell >
160
- < TableCell align = " left" >
85
+ < TableCell align = ' left' >
161
86
< a
162
87
href = { `https://github.com/${ repoFullName } /commit/${ row . commitTo } ` }
163
- rel = " noreferrer"
164
- target = " _blank"
88
+ rel = ' noreferrer'
89
+ target = ' _blank'
165
90
>
166
91
{ row . commitTo . substring ( 0 , 8 ) }
167
92
</ a >
168
93
</ TableCell >
169
- < TableCell align = " left" >
94
+ < TableCell align = ' left' >
170
95
< a
171
96
href = { `https://github.com/${ row . commitData [ 0 ] . committer } ` }
172
- rel = " noreferrer"
173
- target = " _blank"
97
+ rel = ' noreferrer'
98
+ target = ' _blank'
174
99
>
175
100
{ row . commitData [ 0 ] . committer }
176
101
</ a >
177
102
</ TableCell >
178
- < TableCell align = " left" >
103
+ < TableCell align = ' left' >
179
104
< a
180
105
href = { `https://github.com/${ row . commitData [ 0 ] . author } ` }
181
- rel = " noreferrer"
182
- target = " _blank"
106
+ rel = ' noreferrer'
107
+ target = ' _blank'
183
108
>
184
109
{ row . commitData [ 0 ] . author }
185
110
</ a >
186
111
</ TableCell >
187
- < TableCell align = " left" >
112
+ < TableCell align = ' left' >
188
113
{ row . commitData [ 0 ] . authorEmail ? (
189
114
< a href = { `mailto:${ row . commitData [ 0 ] . authorEmail } ` } >
190
115
{ row . commitData [ 0 ] . authorEmail }
191
116
</ a >
192
117
) : (
193
118
'No data...'
194
- ) }
119
+ ) } { ' ' }
195
120
</ TableCell >
196
- < TableCell align = " left" > { row . commitData [ 0 ] . message } </ TableCell >
197
- < TableCell align = " left" > { row . commitData . length } </ TableCell >
198
- < TableCell component = "th" scope = " row" >
199
- < Button variant = " contained" color = " primary" onClick = { ( ) => openPush ( row . id ) } >
200
- < KeyboardArrowRight / >
121
+ < TableCell align = ' left' > { row . commitData [ 0 ] . message } </ TableCell >
122
+ < TableCell align = ' left' > { row . commitData . length } </ TableCell >
123
+ < TableCell component = 'th' scope = ' row' >
124
+ < Button variant = ' contained' color = ' primary' onClick = { ( ) => openPush ( row . id ) } >
125
+ < KeyboardArrowRight > </ KeyboardArrowRight >
201
126
</ Button >
202
127
</ TableCell >
203
128
</ TableRow >
@@ -206,14 +131,6 @@ export default function PushesTable(props) {
206
131
</ TableBody >
207
132
</ Table >
208
133
</ TableContainer >
209
- { /* Pagination Component */ }
210
- < Pagination
211
- itemsPerPage = { itemsPerPage }
212
- totalItems = { filteredData . length }
213
- paginate = { paginate }
214
- currentPage = { currentPage }
215
- onPageChange = { handlePageChange }
216
- />
217
134
</ div >
218
135
) ;
219
136
}
0 commit comments