@@ -16,7 +16,8 @@ import {
1616import { ReportingModal } from "@/components/shared/ReportingModal" ;
1717import api from "@/lib/axios.client" ;
1818import { useAuthStore } from "@/store/auth.store" ;
19- import DashboardHeader from "@/components/DashboardHeader" ;
19+ import Navbar from "@/components/Navbar" ;
20+ import Footer from "@/components/Footer" ;
2021
2122interface GigData {
2223 _id : string ;
@@ -173,9 +174,9 @@ function GigDetailsContent() {
173174 ) }
174175
175176 { /* Navbar */ }
176- < DashboardHeader />
177+ < Navbar />
177178
178- < main className = "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py -12 flex-1 w-full" >
179+ < main className = "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pt-28 sm:pt-36 pb -12 flex-1 w-full" >
179180 { /* Breadcrumb */ }
180181 < div className = "flex items-center text-sm text-gray-500 mb-8 font-medium" >
181182 < Link href = "/" className = "hover:text-gray-900" > Home</ Link >
@@ -213,10 +214,12 @@ function GigDetailsContent() {
213214 </ div >
214215 </ div >
215216
216- { /* Header */ }
217+ { /* Content Wrapper */ }
217218 < div >
218- < Link href = { `/influencer-profile-page?id=${ influencer ?. _id } ` } className = "flex items-center gap-4 mb-6 hover:opacity-80 transition-opacity bg-white p-4 rounded-3xl border border-slate-100 shadow-sm w-fit" >
219- < div className = "relative w-16 h-16 rounded-full overflow-hidden border-2 border-emerald-100 shadow-sm bg-emerald-50 flex items-center justify-center font-bold text-emerald-600 text-xl" >
219+ { /* Header & Mobile Action */ }
220+ < div className = "flex flex-row items-center justify-between gap-3 sm:gap-6 mb-8" >
221+ < Link href = { `/influencer-profile-page?id=${ influencer ?. _id } ` } className = "flex items-center gap-3 sm:gap-4 hover:opacity-80 transition-opacity bg-white p-2.5 sm:p-4 rounded-2xl sm:rounded-3xl border border-slate-100 shadow-sm flex-1 min-w-0 group" >
222+ < div className = "relative w-12 h-12 sm:w-16 sm:h-16 rounded-full overflow-hidden border-2 border-emerald-100 shadow-sm bg-emerald-50 flex items-center justify-center font-bold text-emerald-600 text-lg sm:text-xl" >
220223 { avatar ? (
221224 < >
222225 < Image
@@ -238,27 +241,45 @@ function GigDetailsContent() {
238241 ( influencer ?. fullName || "I" ) . charAt ( 0 ) . toUpperCase ( )
239242 ) }
240243 </ div >
241- < div >
244+ < div className = "min-w-0 flex-1" >
242245 < div className = "flex items-center gap-2" >
243- < h1 className = "text-xl font-bold text-gray-900" > { influencer ?. fullName || "Unknown Creator" } </ h1 >
246+ < h1 className = "text-lg sm:text- xl font-bold text-gray-900 truncate " > { influencer ?. fullName || "Unknown Creator" } </ h1 >
244247 { influencer ?. isVerified && (
245- < span className = "bg-[#E6F6ED] text-[#0CAF60] text-xs font-bold px-2 py-0.5 rounded-full flex items-center gap-1" >
248+ < span className = "bg-[#E6F6ED] text-[#0CAF60] text-[10px] sm:text- xs font-bold px-2 py-0.5 rounded-full flex items-center gap-1" >
246249 < CheckCircle2 className = "w-3 h-3 fill-current" />
247250 Verified
248251 </ span >
249252 ) }
250253 </ div >
251- < div className = "text-xs text-gray-500 flex items-center gap-2 mt-0.5 font-medium" >
254+ < div className = "text-[10px] sm:text- xs text-gray-500 flex items-center gap-2 mt-0.5 font-medium" >
252255 < span > { influencer . categories . join ( " & " ) } </ span >
253256 < span className = "w-1 h-1 bg-gray-300 rounded-full" > </ span >
254257 < span className = "flex items-center text-gray-700" >
255258 < Star className = "w-3.5 h-3.5 fill-yellow-400 text-yellow-400 mr-1" />
256- < span className = "font-bold" > New Creator </ span >
259+ < span className = "font-bold" > New</ span >
257260 </ span >
258261 </ div >
259262 </ div >
260263 </ Link >
261264
265+ { /* Mobile/Tablet Request Button */ }
266+ < div className = "lg:hidden" >
267+ < button
268+ onClick = { ( ) => {
269+ if ( ! user ) {
270+ router . push ( `/login?redirect=${ encodeURIComponent ( window . location . pathname + window . location . search ) } ` ) ;
271+ return ;
272+ }
273+ setIsModalOpen ( true ) ;
274+ } }
275+ disabled = { ! isInitialized || alreadyRequested || isRequestSuccess }
276+ className = "h-12 sm:h-14 px-8 bg-emerald-500 hover:bg-emerald-600 disabled:bg-slate-200 disabled:text-slate-400 text-white rounded-2xl font-bold text-sm sm:text-base transition-all shadow-lg shadow-emerald-500/20 whitespace-nowrap"
277+ >
278+ { alreadyRequested ? "Requested" : "Request Now" }
279+ </ button >
280+ </ div >
281+ </ div >
282+
262283 < h2 className = "text-4xl font-black text-gray-900 leading-tight mb-5 pr-8" >
263284 { gig . title }
264285 </ h2 >
@@ -438,48 +459,6 @@ function GigDetailsContent() {
438459 </ div >
439460 </ main >
440461
441- { /* Footer */ }
442- < footer className = "bg-[#0F172A] pt-28 pb-16 text-slate-400 mt-20" >
443- < div className = "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8" >
444- < div className = "flex flex-col md:flex-row justify-between items-center gap-12 pb-20 border-b border-white/5" >
445- < div className = "flex items-center gap-3 group cursor-pointer" >
446- < div className = "w-10 h-10 text-white bg-[#10B981] rounded-xl flex items-center justify-center transition-all group-hover:rotate-12" >
447- < svg viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" strokeWidth = "2.5" strokeLinecap = "round" strokeLinejoin = "round" className = "h-6 w-6 text-white" >
448- < path d = "M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5" />
449- </ svg >
450- </ div >
451- < span className = "text-2xl font-black text-white tracking-tight " > Noillin</ span >
452- </ div >
453-
454- < div className = "flex gap-16 text-[13px] font-bold uppercase tracking-widest" >
455- { [ "About" , "Support" , "Privacy" , "Terms" ] . map ( l => (
456- < a key = { l } href = "#" className = "hover:text-emerald-500 transition-colors" > { l } </ a >
457- ) ) }
458- </ div >
459-
460- < div className = "flex items-center gap-8" >
461- { [
462- { label : "SECURE PAYMENTS" , icon : "🔒" } ,
463- { label : "VERIFIED PROFILES" , icon : "✔" }
464- ] . map ( ( badge , i ) => (
465- < div key = { i } className = "flex items-center gap-3 text-[10px] font-black tracking-[.2em] opacity-80 group" >
466- < span className = "text-emerald-500 text-lg group-hover:scale-125 transition-transform" > { badge . icon } </ span >
467- < span className = "text-slate-100" > { badge . label } </ span >
468- </ div >
469- ) ) }
470- </ div >
471- </ div >
472-
473- < div className = "pt-12 flex flex-col md:flex-row justify-between items-center gap-6 text-[11px] font-bold tracking-widest opacity-30" >
474- < p > © 2026 NOILLIN INC. ALL RIGHTS RESERVED.</ p >
475- < p className = "flex items-center gap-2" >
476- < Zap className = "w-3 h-3 fill-white" />
477- BUILT FOR THE FUTURE OF INFLUENCE
478- </ p >
479- </ div >
480- </ div >
481- </ footer >
482-
483462 { /* Booking Modal */ }
484463 { /* Booking Modal */ }
485464 { isModalOpen && (
@@ -557,6 +536,7 @@ function GigDetailsContent() {
557536 entityId = { gig . _id }
558537 entityType = "GIG"
559538 />
539+ < Footer />
560540 </ div >
561541 ) ;
562542}
0 commit comments