@@ -99,50 +99,49 @@ const VIBE_PLACEHOLDERS: Array<{
9999 name : string ;
100100 desc : string ;
101101 vibeLine : string ;
102- emoji : string ;
103- gradient : [ string , string ] ;
102+ imageUrl : string ;
104103} > = [
105104 {
106105 name : 'late night drives' ,
107106 desc : 'windows down, vibes up' ,
108107 vibeLine : 'moody R&B \u00b7 chill rap \u00b7 slow jams' ,
109- emoji : '\ud83c\udf19' ,
110- gradient : [ '#1e1b4b' , '#312e81' ] ,
108+ imageUrl :
109+ 'https://images.unsplash.com/photo-1519501025264-65ba15a82390?w=112&h=112&fit=crop&auto=format' ,
111110 } ,
112111 {
113112 name : 'UNHINGED BANGERS' ,
114113 desc : 'no skips, only chaos' ,
115114 vibeLine : 'hyperpop \u00b7 hard drops \u00b7 EDM' ,
116- emoji : '\ud83d\udd25' ,
117- gradient : [ '#7f1d1d' , '#dc2626' ] ,
115+ imageUrl :
116+ 'https://images.unsplash.com/photo-1493225457124-a3eb161ffa5f?w=112&h=112&fit=crop&auto=format' ,
118117 } ,
119118 {
120119 name : 'main character energy' ,
121120 desc : 'the soundtrack to your villain arc' ,
122121 vibeLine : 'indie pop \u00b7 alt \u00b7 cinematic' ,
123- emoji : '\u2728' ,
124- gradient : [ '#0c4a6e' , '#38bdf8' ] ,
122+ imageUrl :
123+ 'https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=112&h=112&fit=crop&auto=format' ,
125124 } ,
126125 {
127126 name : 'COZY GIRL AUTUMN' ,
128127 desc : 'candles lit, oversized hoodie on' ,
129128 vibeLine : 'soft folk \u00b7 acoustic \u00b7 bedroom pop' ,
130- emoji : '\ud83c\udf42' ,
131- gradient : [ '#78350f' , '#d97706' ] ,
129+ imageUrl :
130+ 'https://images.unsplash.com/photo-1508193638397-1c4234db14d8?w=112&h=112&fit=crop&auto=format' ,
132131 } ,
133132 {
134133 name : 'gym arc' ,
135134 desc : 'PR or ER, no in between' ,
136135 vibeLine : 'trap \u00b7 drill \u00b7 rage beats' ,
137- emoji : '\ud83d\udcaa' ,
138- gradient : [ '#14532d' , '#22c55e' ] ,
136+ imageUrl :
137+ 'https://images.unsplash.com/photo-1534438327276-14e5300c3a48?w=112&h=112&fit=crop&auto=format' ,
139138 } ,
140139 {
141140 name : 'TOUCH GRASS' ,
142141 desc : 'for when the group chat goes outside' ,
143142 vibeLine : 'feel-good \u00b7 summer hits \u00b7 throwbacks' ,
144- emoji : '\ud83c\udf3b' ,
145- gradient : [ '#164e63' , '#38bdf8' ] ,
143+ imageUrl :
144+ 'https://images.unsplash.com/photo-1501854140801-50d01698950b?w=112&h=112&fit=crop&auto=format' ,
146145 } ,
147146] ;
148147
@@ -424,21 +423,16 @@ export default function DashboardClient({
424423 < div className = "px-4 pt-2 pb-6" >
425424 < div className = "relative overflow-hidden" >
426425 { /* Decorative placeholder cards */ }
427- < div className = "space-y-2 opacity-40 saturate-0 pointer-events-none" >
428- { VIBE_PLACEHOLDERS . slice ( 0 , 3 ) . map ( ( vibe , i ) => (
426+ < div className = "space-y-2 opacity-40 pointer-events-none" >
427+ { VIBE_PLACEHOLDERS . slice ( 0 , 5 ) . map ( ( vibe , i ) => (
429428 < div
430429 key = { vibe . name }
431430 className = "glass rounded-2xl p-3.5 w-full text-left"
432- style = { i >= 1 ? { filter : `blur(${ i * 1.5 } px)` } : undefined }
431+ style = { i >= 2 ? { filter : `blur(${ ( i - 1 ) * 1.5 } px)` } : undefined }
433432 >
434433 < div className = "flex items-center gap-3.5" >
435- < div
436- className = "w-14 h-14 shrink-0 rounded-lg overflow-hidden flex items-center justify-center text-2xl"
437- style = { {
438- background : `linear-gradient(135deg, ${ vibe . gradient [ 0 ] } , ${ vibe . gradient [ 1 ] } )` ,
439- } }
440- >
441- { vibe . emoji }
434+ < div className = "w-14 h-14 shrink-0 rounded-lg overflow-hidden" >
435+ < img src = { vibe . imageUrl } alt = "" className = "w-full h-full object-cover" />
442436 </ div >
443437 < div className = "flex-1 min-w-0" >
444438 < p className = "text-[15px] font-semibold truncate text-text-primary leading-tight" >
@@ -610,6 +604,8 @@ export default function DashboardClient({
610604 onChange = { ( e ) => setCreateName ( e . target . value ) }
611605 placeholder = "My Swaplist"
612606 className = "input-glass w-full"
607+ autoComplete = "off"
608+ enterKeyHint = "next"
613609 />
614610 </ div >
615611 </ div >
@@ -666,12 +662,16 @@ export default function DashboardClient({
666662 < div className = "relative" >
667663 < Search className = "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-text-tertiary" />
668664 < input
669- type = "text "
665+ type = "search "
670666 value = { playlistFilter }
671667 onChange = { ( e ) => setPlaylistFilter ( e . target . value ) }
672668 placeholder = "Filter playlists..."
673669 className = "w-full input-glass"
674670 style = { { paddingLeft : '2.5rem' } }
671+ enterKeyHint = "search"
672+ autoComplete = "off"
673+ autoCorrect = "off"
674+ spellCheck = { false }
675675 />
676676 </ div >
677677 </ div >
0 commit comments