@@ -20,8 +20,8 @@ const initState: State = {
20
20
page : 1 ,
21
21
limit : 10 ,
22
22
} ,
23
- init : true
24
- }
23
+ init : true ,
24
+ } ;
25
25
26
26
const ExplorerPage = ( ) => {
27
27
const explorerContext = useExplorer ( ) ;
@@ -41,27 +41,56 @@ const ExplorerPage = () => {
41
41
const [ active , setActive ] = useState ( false ) ;
42
42
// NOTE: we are going to use the setter upon filters implementation
43
43
44
-
45
44
const [ state , dispatcher ] = useReducer ( reducer , initState ) ;
46
45
47
46
const handleTimelineButtonClick = ( ) =>
48
47
explorerPageDispatcher ( { type : "timelineButtonClick" } ) ;
49
48
49
+ // NOTE: this is super temporary
50
+ const defaultValuesForNull = ( transfers : Transfer [ ] ) => {
51
+ let parsedTransfers = [ ] as Transfer [ ] ;
52
+ for ( let transfer of transfers ) {
53
+ let newTransfer = { } as Transfer ;
54
+ for ( let key in transfer ) {
55
+ if ( transfer [ key as keyof Transfer ] === null ) {
56
+ if ( key === "toDomainId" ) {
57
+ console . warn ( "todomainid" ) ;
58
+ // @ts -ignore-next-line
59
+ newTransfer [ key as keyof Transfer ] = "1" ;
60
+ } else if ( key === "resource" ) {
61
+ // @ts -ignore-next-line
62
+ newTransfer [ key as keyof Transfer ] = { type : "fungible" } ;
63
+ } else {
64
+ // @ts -ignore-next-line
65
+ newTransfer [ key as keyof Transfer ] = "" ;
66
+ }
67
+ } else {
68
+ // @ts -ignore-next-line
69
+ newTransfer [ key as keyof Transfer ] = transfer [ key as keyof Transfer ] ;
70
+ }
71
+ }
72
+ parsedTransfers . push ( { ...newTransfer } ) ;
73
+ }
74
+
75
+ return parsedTransfers ;
76
+ } ;
77
+
50
78
const transferData = async ( ) => {
51
79
try {
52
80
const transfersResponse = await routes . transfers (
53
81
`${ state . queryParams . page } ` ,
54
82
`${ state . queryParams . limit } ` ,
55
83
) ;
84
+
56
85
dispatcher ( {
57
- type : ' fetch_transfers' ,
58
- payload : transfersResponse
59
- } )
86
+ type : " fetch_transfers" ,
87
+ payload : defaultValuesForNull ( transfersResponse ) ,
88
+ } ) ;
60
89
} catch ( e ) {
61
90
dispatcher ( {
62
- type : ' fetch_transfer_error' ,
63
- payload : "Error fetching all the transfers"
64
- } )
91
+ type : " fetch_transfer_error" ,
92
+ payload : "Error fetching all the transfers" ,
93
+ } ) ;
65
94
}
66
95
} ;
67
96
@@ -73,14 +102,14 @@ const ExplorerPage = () => {
73
102
`${ state . queryParams . limit } ` ,
74
103
) ;
75
104
dispatcher ( {
76
- type : ' fetch_transfer_by_sender' ,
77
- payload : transferResponseBySender
78
- } )
105
+ type : " fetch_transfer_by_sender" ,
106
+ payload : defaultValuesForNull ( transferResponseBySender ) ,
107
+ } ) ;
79
108
} catch ( e ) {
80
109
dispatcher ( {
81
- type : ' fetch_transfer_by_sender_error' ,
82
- payload : "Error fetching all the transfers"
83
- } )
110
+ type : " fetch_transfer_by_sender_error" ,
111
+ payload : "Error fetching all the transfers" ,
112
+ } ) ;
84
113
}
85
114
} ;
86
115
@@ -99,16 +128,15 @@ const ExplorerPage = () => {
99
128
useEffect ( ( ) => {
100
129
if ( state . loading === "loading" && state . transfers . length ) {
101
130
dispatcher ( {
102
- type : ' loading_done'
103
- } )
131
+ type : " loading_done" ,
132
+ } ) ;
104
133
}
105
134
} , [ state . loading , state . transfers ] ) ;
106
135
107
136
useEffect ( ( ) => {
108
137
transferData ( ) ;
109
138
} , [ state . queryParams ] ) ;
110
139
111
-
112
140
return (
113
141
< Box
114
142
sx = { {
@@ -134,33 +162,37 @@ const ExplorerPage = () => {
134
162
< Button
135
163
onClick = { ( ) => {
136
164
dispatcher ( {
137
- type : ' set_query_params' ,
165
+ type : " set_query_params" ,
138
166
payload : {
139
167
page : state . queryParams . page - 1 ,
140
168
limit : state . queryParams . limit ,
141
- }
142
- } )
169
+ } ,
170
+ } ) ;
143
171
} }
144
172
className = { classes . paginationButtons }
145
173
disabled = { state . queryParams . page === 1 }
146
174
>
147
175
← Previous
148
176
</ Button >
149
- < span style = { {
150
- display : 'flex' ,
151
- flexDirection : 'row' ,
152
- alignItems : 'center' ,
153
- marginLeft : '10px' ,
154
- } } > { state . queryParams . page } </ span >
177
+ < span
178
+ style = { {
179
+ display : "flex" ,
180
+ flexDirection : "row" ,
181
+ alignItems : "center" ,
182
+ marginLeft : "10px" ,
183
+ } }
184
+ >
185
+ { state . queryParams . page }
186
+ </ span >
155
187
< Button
156
188
onClick = { ( ) => {
157
189
dispatcher ( {
158
- type : ' set_query_params' ,
190
+ type : " set_query_params" ,
159
191
payload : {
160
192
page : state . queryParams . page + 1 ,
161
193
limit : state . queryParams . limit ,
162
- }
163
- } )
194
+ } ,
195
+ } ) ;
164
196
} }
165
197
className = { classes . paginationButtons }
166
198
>
0 commit comments