@@ -54,23 +54,25 @@ function ChooseSource ({ config, onNext }: WizardProps) {
54
54
}
55
55
56
56
return (
57
- < div >
57
+ < div className = 'max-w-4xl' >
58
58
< H1 > Create a new migration</ H1 >
59
- < p className = 'mb-8' > This allows data to be migrated from a previous provider to one of your spaces.</ p >
60
-
61
- < H2 > Where from?</ H2 >
62
- < p className = 'mb-4' > Pick a storage service you want to migrate data from.</ p >
63
- < div className = 'mb-4' >
64
- < button className = { `bg-white/60 rounded-lg shadow-md p-8 hover:outline mr-4 ${ source === 'classic.nft.storage' ? 'outline' : '' } ` } type = 'button' onClick = { ( ) => setSource ( 'classic.nft.storage' ) } title = 'Migrate from NFT.Storage (Classic)' >
65
- < img src = '/nftstorage-logo.png' width = '360' />
66
- </ button >
67
- < button className = { `bg-white/60 opacity-60 rounded-lg shadow-md p-8 ${ source === 'old.web3.storage' ? 'outline' : '' } ` } type = 'button' onClick = { ( ) => setSource ( 'old.web3.storage' ) } title = 'COMING SOON! Migrate from Web3.Storage (Old)' disabled = { true } >
68
- < img src = '/web3storage-logo.png' width = '360' />
59
+ < div className = 'bg-white my-4 p-5 rounded-2xl border border-hot-red font-epilogue' >
60
+ < p className = 'mb-8' > This tool allows data to be migrated from a previous provider to one of your spaces.</ p >
61
+
62
+ < H2 > Where from?</ H2 >
63
+ < p className = 'mb-4' > Pick a storage service you want to migrate data from.</ p >
64
+ < div className = 'mb-4' >
65
+ < button className = { `bg-white/60 rounded-lg shadow-md p-8 hover:outline mr-4 ${ source === 'classic.nft.storage' ? 'outline' : '' } ` } type = 'button' onClick = { ( ) => setSource ( 'classic.nft.storage' ) } title = 'Migrate from NFT.Storage (Classic)' >
66
+ < img src = '/nftstorage-logo.png' width = '350' />
67
+ </ button >
68
+ < button className = { `bg-white/60 opacity-60 rounded-lg shadow-md p-8 ${ source === 'old.web3.storage' ? 'outline' : '' } ` } type = 'button' onClick = { ( ) => setSource ( 'old.web3.storage' ) } title = 'COMING SOON! Migrate from Web3.Storage (Old)' disabled = { true } >
69
+ < img src = '/web3storage-logo.png' width = '350' />
70
+ </ button >
71
+ </ div >
72
+ < button onClick = { handleNextClick } className = { `inline-block bg-hot-red border border-hot-red font-epilogue text-white uppercase text-sm px-6 py-2 rounded-full whitespace-nowrap ${ source ? 'hover:bg-white hover:text-hot-red' : 'opacity-10' } ` } disabled = { ! source } >
73
+ Next < ChevronRightIcon className = 'h-5 w-5 inline-block ml-1 align-middle' style = { { marginTop : - 4 } } />
69
74
</ button >
70
75
</ div >
71
- < button onClick = { handleNextClick } className = { `inline-block bg-zinc-950 text-white font-bold text-sm pl-6 pr-3 py-2 rounded-full whitespace-nowrap hover:outline ${ source ? '' : 'opacity-10' } ` } disabled = { ! source } >
72
- Next < ChevronRightIcon className = 'h-5 w-5 inline-block ml-1 align-middle' />
73
- </ button >
74
76
</ div >
75
77
)
76
78
}
@@ -99,27 +101,29 @@ function AddSourceToken ({ config, onNext, onPrev }: WizardProps) {
99
101
onNext ( { ...config , token } )
100
102
}
101
103
return (
102
- < div >
104
+ < div className = 'max-w-4xl' >
103
105
< H1 > Add data source token</ H1 >
104
- < p className = 'mb-8' > Add your < strong > { config . source } </ strong > API token. Note: the key never leaves this device, it is for local use only by the migration tool.</ p >
105
- < H1 > API Token</ H1 >
106
- < div className = 'max-w-xl mb-4' >
107
- < input
108
- type = 'password'
109
- className = 'text-black py-2 px-2 rounded block w-full border border-gray-800'
110
- placeholder = 'eyJhb...'
111
- value = { token ?? '' }
112
- onChange = { e => setToken ( e . target . value ) }
113
- required = { true }
114
- />
115
- < p className = 'text-xs text-red-700' > { error } </ p >
106
+ < div className = 'bg-white my-4 p-5 rounded-2xl border border-hot-red font-epilogue' >
107
+ < p className = 'mb-8' > Add your < strong > { config . source } </ strong > API token. Note: the key never leaves this device, it is for local use only by the migration tool.</ p >
108
+ < H2 > API Token</ H2 >
109
+ < div className = 'max-w-xl mb-4' >
110
+ < input
111
+ type = 'password'
112
+ className = 'text-black py-2 px-2 rounded block w-full border border-gray-800'
113
+ placeholder = 'eyJhb...'
114
+ value = { token ?? '' }
115
+ onChange = { e => setToken ( e . target . value ) }
116
+ required = { true }
117
+ />
118
+ < p className = 'text-xs text-red-700' > { error } </ p >
119
+ </ div >
120
+ < button onClick = { e => { e . preventDefault ( ) ; onPrev ( ) } } className = { `inline-block bg-hot-red border border-hot-red font-epilogue text-white uppercase text-sm mr-2 px-6 py-2 rounded-full whitespace-nowrap hover:bg-white hover:text-hot-red` } >
121
+ < ChevronLeftIcon className = 'h-5 w-5 inline-block mr-1 align-middle' style = { { marginTop : - 4 } } /> Previous
122
+ </ button >
123
+ < button onClick = { handleNextClick } className = { `inline-block bg-hot-red border border-hot-red font-epilogue text-white uppercase text-sm px-6 py-2 rounded-full whitespace-nowrap ${ token ? 'hover:bg-white hover:text-hot-red' : 'opacity-10' } ` } disabled = { ! token } >
124
+ Next < ChevronRightIcon className = 'h-5 w-5 inline-block ml-1 align-middle' style = { { marginTop : - 4 } } />
125
+ </ button >
116
126
</ div >
117
- < button onClick = { e => { e . preventDefault ( ) ; onPrev ( ) } } className = { `inline-block bg-zinc-950 text-white font-bold text-sm pl-3 pr-6 py-2 mr-3 rounded-full whitespace-nowrap hover:outline` } >
118
- < ChevronLeftIcon className = 'h-5 w-5 inline-block mr-1 align-middle' /> Previous
119
- </ button >
120
- < button onClick = { handleNextClick } className = { `inline-block bg-zinc-950 text-white font-bold text-sm pl-6 pr-3 py-2 rounded-full whitespace-nowrap hover:outline ${ token ? '' : 'opacity-10' } ` } disabled = { ! token } >
121
- Next < ChevronRightIcon className = 'h-5 w-5 inline-block ml-1 align-middle' />
122
- </ button >
123
127
</ div >
124
128
)
125
129
}
@@ -134,20 +138,20 @@ function ChooseTargetSpace ({ config, onNext, onPrev }: WizardProps) {
134
138
onNext ( { ...config , space } )
135
139
}
136
140
return (
137
- < div >
141
+ < div className = 'font-epilogue' >
138
142
< H1 > Target space</ H1 >
139
143
< p className = 'mb-8' > Choose an existing space to migrate data to.</ p >
140
144
< H2 > Space</ H2 >
141
- < div className = 'max-w-lg mb-4 border rounded-md border-zinc-700 ' >
145
+ < div className = 'max-w-lg border rounded-2xl border-hot-red bg-white mb-4 ' >
142
146
{ spaces . map ( s => (
143
147
< button
144
148
key = { s . did ( ) }
145
149
type = 'button'
146
- className = { `flex flex-row items-start gap-2 p-3 text-white text- left border-b last:border-0 border-zinc-700 w-full ${ s . did ( ) === space ? 'bg-gray-900/60 ' : 'bg-gray-900/30 hover:bg-gray-900/50 ' } ` }
150
+ className = { `w-full flex flex-row items-start gap-4 p-4 text-left border-b last:border-0 border-hot-red first:rounded-t-2xl last:rounded-b-2xl ${ s . did ( ) === space ? 'bg-hot-yellow ' : 'hover:bg-hot-yellow-light ' } ` }
147
151
onClick = { ( ) => setSpace ( s . did ( ) ) } >
148
152
< DidIcon did = { s . did ( ) } />
149
153
< div className = 'grow overflow-hidden whitespace-nowrap text-ellipsis' >
150
- < span className = 'text-md font-semibold leading-5 m-0' >
154
+ < span className = 'text-lg text-hot-red leading-5 m-0' >
151
155
{ s . name || 'Untitled' }
152
156
</ span >
153
157
< span className = 'font-mono text-xs block' >
@@ -157,11 +161,11 @@ function ChooseTargetSpace ({ config, onNext, onPrev }: WizardProps) {
157
161
</ button >
158
162
) ) }
159
163
</ div >
160
- < button onClick = { e => { e . preventDefault ( ) ; onPrev ( ) } } className = { `inline-block bg-zinc-950 text-white font-bold text-sm pl-3 pr -6 py-2 mr-3 rounded-full whitespace-nowrap hover:outline ` } >
161
- < ChevronLeftIcon className = 'h-5 w-5 inline-block mr-1 align-middle' /> Previous
164
+ < button onClick = { e => { e . preventDefault ( ) ; onPrev ( ) } } className = { `inline-block bg-hot-red border border-hot-red font-epilogue text-white uppercase text- sm mr-2 px -6 py-2 rounded-full whitespace-nowrap hover:bg-white hover:text-hot-red ` } >
165
+ < ChevronLeftIcon className = 'h-5 w-5 inline-block mr-1 align-middle' style = { { marginTop : - 4 } } /> Previous
162
166
</ button >
163
- < button onClick = { handleNextClick } className = { `inline-block bg-zinc-950 text-white font-bold text-sm pl -6 pr-3 py-2 rounded-full whitespace-nowrap hover:outline ${ space ? '' : 'opacity-10' } ` } disabled = { ! space } >
164
- Next < ChevronRightIcon className = 'h-5 w-5 inline-block ml-1 align-middle' />
167
+ < button onClick = { handleNextClick } className = { `inline-block bg-hot-red border border-hot-red font-epilogue text-white uppercase text- sm px -6 py-2 rounded-full whitespace-nowrap ${ space ? 'hover:bg-white hover:text-hot-red ' : 'opacity-10' } ` } disabled = { ! space } >
168
+ Next < ChevronRightIcon className = 'h-5 w-5 inline-block ml-1 align-middle' style = { { marginTop : - 4 } } />
165
169
</ button >
166
170
</ div >
167
171
)
@@ -177,34 +181,36 @@ function Confirmation ({ config, onNext, onPrev }: WizardProps) {
177
181
onNext ( config )
178
182
}
179
183
return (
180
- < div >
184
+ < div className = 'max-w-4xl' >
181
185
< H1 > Ready to start!</ H1 >
182
- < p className = 'mb-8' > Make sure these details are correct before starting the migration.</ p >
183
- < H2 > Source</ H2 >
184
- < div className = { `bg-white/60 rounded-lg shadow-md p-8 mb-4 inline-block` } title = 'Web3.Storage (Old)' >
185
- < img src = { config . source === 'old.web3.storage' ? '/web3storage-logo.png' : '/nftstorage-logo.png' } width = '360' />
186
- </ div >
187
- < H2 > Target</ H2 >
188
- < div className = 'max-w-lg mb-8 border rounded-md border-zinc-700' >
189
- < div className = { `flex flex-row items-start gap-2 p-3 text-white text-left border-b last:border-0 border-zinc-700 w-full bg-gray-900/30` } >
190
- < DidIcon did = { space . did ( ) } />
191
- < div className = 'grow overflow-hidden whitespace-nowrap text-ellipsis' >
192
- < span className = 'text-md font-semibold leading-5 m-0' >
193
- { space . name || 'Untitled' }
194
- </ span >
195
- < span className = 'font-mono text-xs block' >
196
- { space . did ( ) }
197
- </ span >
186
+ < div className = 'bg-white my-4 p-5 rounded-2xl border border-hot-red font-epilogue' >
187
+ < p className = 'mb-8' > Make sure these details are correct before starting the migration.</ p >
188
+ < H2 > Source</ H2 >
189
+ < div className = { `bg-white/60 rounded-lg shadow-md p-8 mb-4 inline-block` } title = 'Web3.Storage (Old)' >
190
+ < img src = { config . source === 'old.web3.storage' ? '/web3storage-logo.png' : '/nftstorage-logo.png' } width = '360' />
191
+ </ div >
192
+ < H2 > Target</ H2 >
193
+ < div className = 'max-w-lg border rounded-2xl border-hot-red bg-white mb-4' >
194
+ < div className = { `flex flex-row items-start gap-4 p-4 text-left border-b last:border-0 border-hot-red first:rounded-t-2xl last:rounded-b-2xl` } >
195
+ < DidIcon did = { space . did ( ) } />
196
+ < div className = 'grow overflow-hidden whitespace-nowrap text-ellipsis' >
197
+ < span className = 'text-lg text-hot-red leading-5 m-0' >
198
+ { space . name || 'Untitled' }
199
+ </ span >
200
+ < span className = 'font-mono text-xs block' >
201
+ { space . did ( ) }
202
+ </ span >
203
+ </ div >
198
204
</ div >
199
205
</ div >
200
- </ div >
201
206
202
- < button onClick = { e => { e . preventDefault ( ) ; onPrev ( ) } } className = { `inline-block bg-zinc-950 text-white font-bold text-sm pl-3 pr-6 py-2 mr-3 rounded-full whitespace-nowrap hover:outline` } >
203
- < ChevronLeftIcon className = 'h-5 w-5 inline-block mr-1 align-middle' /> Previous
204
- </ button >
205
- < button onClick = { handleNextClick } className = { `inline-block bg-zinc-950 text-white font-bold text-sm pl-6 pr-3 py-2 rounded-full whitespace-nowrap hover:outline ${ space ? '' : 'opacity-10' } ` } disabled = { ! space } >
206
- Start < ChevronRightIcon className = 'h-5 w-5 inline-block ml-1 align-middle' />
207
- </ button >
207
+ < button onClick = { e => { e . preventDefault ( ) ; onPrev ( ) } } className = { `inline-block bg-hot-red border border-hot-red font-epilogue text-white uppercase text-sm mr-2 px-6 py-2 rounded-full whitespace-nowrap hover:bg-white hover:text-hot-red` } >
208
+ < ChevronLeftIcon className = 'h-5 w-5 inline-block mr-1 align-middle' style = { { marginTop : - 4 } } /> Previous
209
+ </ button >
210
+ < button onClick = { handleNextClick } className = { `inline-block bg-hot-red border border-hot-red font-epilogue text-white uppercase text-sm px-6 py-2 rounded-full whitespace-nowrap hover:bg-white hover:text-hot-red` } >
211
+ Start < ChevronRightIcon className = 'h-5 w-5 inline-block ml-1 align-middle' style = { { marginTop : - 4 } } />
212
+ </ button >
213
+ </ div >
208
214
</ div >
209
215
)
210
216
}
0 commit comments