@@ -10,20 +10,21 @@ import { NFT } from "coreum-js-nightly";
10
10
import { ModalInfoRow } from "../ModalInfoRow" ;
11
11
import { dispatchAlert } from "@/features/alerts/alertsSlice" ;
12
12
import {
13
+ defaultNFTDataItem ,
14
+ NFTDataItem ,
13
15
setDataEditable ,
14
16
setNFTData ,
15
17
setNFTID ,
16
- setNFTMultipleData ,
17
- setNFTMultipleDataFiles ,
18
+ setNFTMultipleDataValues ,
18
19
setNFTRecipient ,
19
20
setNFTURI ,
20
21
setNFTURIHash ,
21
- setRolesEditable ,
22
22
setSelectedNFTClass ,
23
23
setShouldRefetchNFTItems ,
24
24
} from "@/features/nft/nftSlice" ;
25
25
import { shortenAddress } from "@/helpers/shortenAddress" ;
26
26
import { convertStringToAny , convertStringToDataDynamic } from "@/helpers/convertStringToAny" ;
27
+ import { DataEditor } from "coreum-js-nightly/dist/main/coreum/asset/nft/v1/types" ;
27
28
28
29
export const ConfirmNFTMintModal = ( ) => {
29
30
const isConfirmNFTMintModalOpen = useAppSelector ( state => state . general . isConfirmNFTMintModalOpen ) ;
@@ -36,9 +37,8 @@ export const ConfirmNFTMintModal = () => {
36
37
const nftURIHash = useAppSelector ( state => state . nfts . nftURIHash ) ;
37
38
const nftRecipient = useAppSelector ( state => state . nfts . nftRecipient ) ;
38
39
const isDataEditable = useAppSelector ( state => state . nfts . isDataEditable ) ;
39
- const roles = useAppSelector ( state => state . nfts . roles ) ;
40
- const nftMultipleData = useAppSelector ( state => state . nfts . nftMultipleData ) ;
41
- const nftMultipleDataFiles = useAppSelector ( state => state . nfts . nftMultipleDataFiles ) ;
40
+
41
+ const nftMultipleDataValues = useAppSelector ( state => state . nfts . nftMultipleDataValues ) ;
42
42
43
43
const [ isTxSuccessful , setIsTxSuccessful ] = useState < boolean > ( false ) ;
44
44
@@ -52,33 +52,38 @@ export const ConfirmNFTMintModal = () => {
52
52
dispatch ( setNFTRecipient ( '' ) ) ;
53
53
dispatch ( setNFTData ( '' ) ) ;
54
54
dispatch ( setDataEditable ( false ) ) ;
55
- dispatch ( setRolesEditable ( { admin : false , owner : false } ) ) ;
55
+ dispatch ( setNFTMultipleDataValues ( [ defaultNFTDataItem ] ) ) ;
56
56
dispatch ( setIsConfirmNFTMintModalOpen ( false ) ) ;
57
57
dispatch ( setSelectedNFTClass ( null ) ) ;
58
- dispatch ( setNFTMultipleData ( [ '' ] ) ) ;
59
- dispatch ( setNFTMultipleDataFiles ( [ ] ) ) ;
60
58
setIsTxSuccessful ( false ) ;
61
59
} , [ ] ) ;
62
60
63
61
const dataList = useMemo ( ( ) => {
64
- return nftMultipleDataFiles . length ? nftMultipleDataFiles : nftMultipleData ;
65
- } , [ nftMultipleData , nftMultipleDataFiles ] ) ;
62
+ return nftMultipleDataValues . map ( ( item : NFTDataItem ) => {
63
+ return {
64
+ editors : item . roles ,
65
+ data : item . contentValue . length
66
+ ? item . contentValue
67
+ : item . fileValue ,
68
+ } ;
69
+ } ) . filter ( ( item : { editors : DataEditor [ ] ; data : string ; } ) => ! ! item . data . length ) ;
70
+ } , [ nftMultipleDataValues ] ) ;
66
71
67
72
const handleConfirm = useCallback ( async ( ) => {
68
73
dispatch ( setIsTxExecuting ( true ) ) ;
69
74
try {
70
75
let nftDataPayload : any ;
71
76
72
- if ( isDataEditable && roles . length ) {
77
+ if ( isDataEditable ) {
73
78
let payload = [ ] ;
74
79
75
- for ( const tempData of dataList ) {
76
- payload . push ( { editors : roles , data : btoa ( tempData ) } ) ;
80
+ for ( const dataItem of dataList ) {
81
+ payload . push ( { editors : dataItem . editors , data : btoa ( dataItem . data ) } ) ;
77
82
}
78
83
79
84
nftDataPayload = convertStringToDataDynamic ( payload ) ;
80
85
} else {
81
- nftDataPayload = convertStringToAny ( dataList [ 0 ] ) ;
86
+ nftDataPayload = convertStringToAny ( dataList ?. [ 0 ] . data ) ;
82
87
}
83
88
84
89
const nftMintObj = {
@@ -121,14 +126,12 @@ export const ConfirmNFTMintModal = () => {
121
126
dispatch ( setIsTxExecuting ( false ) ) ;
122
127
} , [
123
128
account ,
124
- dispatch ,
125
129
getTxFee ,
126
130
isDataEditable ,
127
131
nftId ,
128
132
nftRecipient ,
129
133
nftURI ,
130
134
nftURIHash ,
131
- roles ,
132
135
selectedCollection ?. id ,
133
136
signingClient ,
134
137
dataList ,
@@ -179,10 +182,10 @@ export const ConfirmNFTMintModal = () => {
179
182
className = "flex-col !items-start !gap-1"
180
183
valueClassName = "!text-left"
181
184
/>
182
- ) : formatData ( dataList [ 0 ] ) . length ? (
185
+ ) : formatData ( dataList ?. [ 0 ] . data ) . length ? (
183
186
< ModalInfoRow
184
187
label = "Data"
185
- value = { formatData ( dataList [ 0 ] ) }
188
+ value = { formatData ( dataList ?. [ 0 ] . data ) }
186
189
className = "flex-col !items-start !gap-1"
187
190
valueClassName = "!text-left"
188
191
/>
@@ -234,10 +237,10 @@ export const ConfirmNFTMintModal = () => {
234
237
className = "flex-col !items-start !gap-1"
235
238
valueClassName = "!text-left"
236
239
/>
237
- ) : formatData ( dataList [ 0 ] ) . length ? (
240
+ ) : formatData ( dataList ?. [ 0 ] ?. data ) . length ? (
238
241
< ModalInfoRow
239
242
label = "Data"
240
- value = { formatData ( dataList [ 0 ] ) }
243
+ value = { formatData ( dataList ?. [ 0 ] ?. data ) }
241
244
className = "flex-col !items-start !gap-1"
242
245
valueClassName = "!text-left"
243
246
/>
0 commit comments