From ef251a4be254ed3ddba084142036bba7323894b3 Mon Sep 17 00:00:00 2001 From: arsam Date: Fri, 18 Sep 2026 23:08:09 +0330 Subject: [PATCH] Import source: src/components/TrendingTracks/TrendingTracks Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality. --- .../TrendingTracks/TrendingTracks.jsx | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/components/TrendingTracks/TrendingTracks.jsx diff --git a/src/components/TrendingTracks/TrendingTracks.jsx b/src/components/TrendingTracks/TrendingTracks.jsx new file mode 100644 index 0000000..bde2d38 --- /dev/null +++ b/src/components/TrendingTracks/TrendingTracks.jsx @@ -0,0 +1,93 @@ +import { useRef, useEffect } from 'react' +import { motion, useInView } from 'framer-motion' +import { gsap } from 'gsap' +import { ScrollTrigger } from 'gsap/ScrollTrigger' +import TrackRow from './TrackRow' +import { tracks } from '../../data/mockData' + +gsap.registerPlugin(ScrollTrigger) + +export default function TrendingTracks({ currentTrack, onPlay }) { + const sectionRef = useRef() + const ref = useRef() + const inView = useInView(ref, { once: true, margin: '-80px' }) + + useEffect(() => { + const ctx = gsap.context(() => { + gsap.from('.track-item', { + x: -24, + opacity: 0, + stagger: 0.06, + ease: 'power3.out', + scrollTrigger: { + trigger: sectionRef.current, + start: 'top 78%', + }, + }) + }, sectionRef) + return () => ctx.revert() + }, []) + + return ( +
+
+ +
+ +
+

Hot Right Now

+

+ Trending Tracks +

+
+
+

Updated

+

Weekly

+
+
+ + {/* Column headers */} +
+ # + + Title + Plays + Time + +
+ +
+ {tracks.map((track, i) => ( +
+ +
+ ))} +
+ + {/* Show more */} + + + Show More Tracks + + +
+
+ ) +}