@@ -31,6 +31,8 @@ import { FileInput } from "components/shared/FileInput";
3131import { BasisPointsInput } from "components/inputs/BasisPointsInput" ;
3232import { SolidityInput } from "contract-ui/components/solidity-inputs" ;
3333import { Form } from "@/components/ui/form" ;
34+ import { useAllChainsData } from "hooks/chains/allChains" ;
35+ import type { StoredChain } from "stores/chainStores" ;
3436
3537// Form schemas
3638const collectionInfoSchema = z . object ( {
@@ -104,6 +106,9 @@ export default function CreateNFTPage() {
104106 } ) ;
105107 const [ showRoyaltySettings , setShowRoyaltySettings ] = useState ( false ) ;
106108
109+ // Get chain data
110+ const { allChains } = useAllChainsData ( ) ;
111+
107112 // Forms
108113 const collectionInfoForm = useForm < CollectionInfoValues > ( {
109114 resolver : zodResolver ( collectionInfoSchema ) ,
@@ -151,8 +156,27 @@ export default function CreateNFTPage() {
151156 const renderStepIndicators = ( ) => (
152157 < div className = "flex justify-center mb-8 pt-6" >
153158 < div className = "relative flex w-full max-w-md justify-between" >
154- { /* Connect line between circles */ }
155- < div className = "absolute top-5 left-0 right-0 h-0.5 -translate-y-1/2 bg-muted" />
159+ { /* Segmented lines between circles instead of a single line */ }
160+ < div className = "absolute top-5 left-0 right-0 flex justify-between" >
161+ { /* First segment: between step 1 and 2 */ }
162+ < div className = "w-1/2 flex items-center" >
163+ < div
164+ className = { `h-0.5 w-full ${
165+ step > 1 ? "bg-primary/20" : "bg-muted"
166+ } `}
167+ style = { { marginLeft : "25px" , marginRight : "25px" } }
168+ />
169+ </ div >
170+ { /* Second segment: between step 2 and 3 */ }
171+ < div className = "w-1/2 flex items-center" >
172+ < div
173+ className = { `h-0.5 w-full ${
174+ step > 2 ? "bg-primary/20" : "bg-muted"
175+ } `}
176+ style = { { marginLeft : "25px" , marginRight : "25px" } }
177+ />
178+ </ div >
179+ </ div >
156180
157181 < StepIndicator step = { 1 } currentStep = { step } label = "Basic Info" />
158182 < StepIndicator step = { 2 } currentStep = { step } label = "Options" />
@@ -263,12 +287,21 @@ export default function CreateNFTPage() {
263287 < SelectTrigger id = "chain" >
264288 < SelectValue placeholder = "Select chain" />
265289 </ SelectTrigger >
266- < SelectContent >
267- < SelectItem value = "Ethereum" > Ethereum</ SelectItem >
268- < SelectItem value = "Base" > Base</ SelectItem >
269- < SelectItem value = "Polygon" > Polygon</ SelectItem >
270- < SelectItem value = "Arbitrum" > Arbitrum</ SelectItem >
271- < SelectItem value = "Optimism" > Optimism</ SelectItem >
290+ < SelectContent className = "max-h-[300px]" >
291+ { allChains . map ( ( chain : StoredChain ) => (
292+ < SelectItem key = { chain . chainId } value = { chain . name } >
293+ < div className = "flex items-center gap-2" >
294+ { chain . icon ?. url && (
295+ < img
296+ src = { chain . icon . url }
297+ alt = { chain . name }
298+ className = "w-4 h-4 rounded-full"
299+ />
300+ ) }
301+ { chain . name }
302+ </ div >
303+ </ SelectItem >
304+ ) ) }
272305 </ SelectContent >
273306 </ Select >
274307 </ FormFieldSetup >
0 commit comments