Spaces:
Sleeping
Sleeping
Commit
·
ffc893c
1
Parent(s):
b875c69
nprogress
Browse files
frontend/package-lock.json
CHANGED
|
@@ -9,6 +9,7 @@
|
|
| 9 |
"version": "0.1.0",
|
| 10 |
"dependencies": {
|
| 11 |
"next": "15.0.1",
|
|
|
|
| 12 |
"react": "19.0.0-rc-69d4b800-20241021",
|
| 13 |
"react-dom": "19.0.0-rc-69d4b800-20241021",
|
| 14 |
"react-icons": "^5.3.0"
|
|
@@ -1288,6 +1289,14 @@
|
|
| 1288 |
}
|
| 1289 |
}
|
| 1290 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1291 |
"node_modules/next/node_modules/postcss": {
|
| 1292 |
"version": "8.4.31",
|
| 1293 |
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
|
|
@@ -1324,6 +1333,11 @@
|
|
| 1324 |
"node": ">=0.10.0"
|
| 1325 |
}
|
| 1326 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1327 |
"node_modules/object-assign": {
|
| 1328 |
"version": "4.1.1",
|
| 1329 |
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
|
|
|
| 9 |
"version": "0.1.0",
|
| 10 |
"dependencies": {
|
| 11 |
"next": "15.0.1",
|
| 12 |
+
"next-nprogress-bar": "^2.3.14",
|
| 13 |
"react": "19.0.0-rc-69d4b800-20241021",
|
| 14 |
"react-dom": "19.0.0-rc-69d4b800-20241021",
|
| 15 |
"react-icons": "^5.3.0"
|
|
|
|
| 1289 |
}
|
| 1290 |
}
|
| 1291 |
},
|
| 1292 |
+
"node_modules/next-nprogress-bar": {
|
| 1293 |
+
"version": "2.3.14",
|
| 1294 |
+
"resolved": "https://registry.npmjs.org/next-nprogress-bar/-/next-nprogress-bar-2.3.14.tgz",
|
| 1295 |
+
"integrity": "sha512-r2zdo5SFakm1CSYLBo2/+9X2F5NRnbV/LI1b/Iu3mFLa9ln+Dlwx3vjJc3kVHI4i42jRC0an++obVHeWkYU6gA==",
|
| 1296 |
+
"dependencies": {
|
| 1297 |
+
"nprogress": "^0.2.0"
|
| 1298 |
+
}
|
| 1299 |
+
},
|
| 1300 |
"node_modules/next/node_modules/postcss": {
|
| 1301 |
"version": "8.4.31",
|
| 1302 |
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
|
|
|
|
| 1333 |
"node": ">=0.10.0"
|
| 1334 |
}
|
| 1335 |
},
|
| 1336 |
+
"node_modules/nprogress": {
|
| 1337 |
+
"version": "0.2.0",
|
| 1338 |
+
"resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
|
| 1339 |
+
"integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA=="
|
| 1340 |
+
},
|
| 1341 |
"node_modules/object-assign": {
|
| 1342 |
"version": "4.1.1",
|
| 1343 |
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
frontend/package.json
CHANGED
|
@@ -10,6 +10,7 @@
|
|
| 10 |
},
|
| 11 |
"dependencies": {
|
| 12 |
"next": "15.0.1",
|
|
|
|
| 13 |
"react": "19.0.0-rc-69d4b800-20241021",
|
| 14 |
"react-dom": "19.0.0-rc-69d4b800-20241021",
|
| 15 |
"react-icons": "^5.3.0"
|
|
|
|
| 10 |
},
|
| 11 |
"dependencies": {
|
| 12 |
"next": "15.0.1",
|
| 13 |
+
"next-nprogress-bar": "^2.3.14",
|
| 14 |
"react": "19.0.0-rc-69d4b800-20241021",
|
| 15 |
"react-dom": "19.0.0-rc-69d4b800-20241021",
|
| 16 |
"react-icons": "^5.3.0"
|
frontend/src/app/layout.js
CHANGED
|
@@ -5,7 +5,7 @@ import localFont from "next/font/local";
|
|
| 5 |
import "./globals.css";
|
| 6 |
import MusicPlayer from "@/components/MusicPlayer";
|
| 7 |
import { MusicPlayerProvider } from "@/context/MusicPlayerContext";
|
| 8 |
-
import {
|
| 9 |
|
| 10 |
const geistSans = localFont({
|
| 11 |
src: "./fonts/GeistVF.woff",
|
|
@@ -25,9 +25,15 @@ export default function RootLayout({ children }) {
|
|
| 25 |
<body
|
| 26 |
className={`${geistSans.variable} ${geistMono.variable} antialiased max-h-screen overflow-hidden`}
|
| 27 |
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
<div className="app-container">{children}</div>
|
| 29 |
<footer className="bottom-0 flex items-center w-full">
|
| 30 |
-
<MusicPlayer/>
|
| 31 |
</footer>
|
| 32 |
</body>
|
| 33 |
</MusicPlayerProvider>
|
|
|
|
| 5 |
import "./globals.css";
|
| 6 |
import MusicPlayer from "@/components/MusicPlayer";
|
| 7 |
import { MusicPlayerProvider } from "@/context/MusicPlayerContext";
|
| 8 |
+
import { AppProgressBar as ProgressBar } from 'next-nprogress-bar';
|
| 9 |
|
| 10 |
const geistSans = localFont({
|
| 11 |
src: "./fonts/GeistVF.woff",
|
|
|
|
| 25 |
<body
|
| 26 |
className={`${geistSans.variable} ${geistMono.variable} antialiased max-h-screen overflow-hidden`}
|
| 27 |
>
|
| 28 |
+
<ProgressBar
|
| 29 |
+
height="5px"
|
| 30 |
+
color="var(--foreground-secondary)"
|
| 31 |
+
options={{ showSpinner: false }}
|
| 32 |
+
shallowRouting
|
| 33 |
+
/>
|
| 34 |
<div className="app-container">{children}</div>
|
| 35 |
<footer className="bottom-0 flex items-center w-full">
|
| 36 |
+
<MusicPlayer />
|
| 37 |
</footer>
|
| 38 |
</body>
|
| 39 |
</MusicPlayerProvider>
|
frontend/src/components/CategoriesSection.css
CHANGED
|
@@ -7,11 +7,13 @@
|
|
| 7 |
}
|
| 8 |
|
| 9 |
.category-card {
|
| 10 |
-
width:
|
| 11 |
-
height:
|
| 12 |
padding: 10px;
|
| 13 |
-
background-image: linear-gradient(var(--foreground-secondary), var(--foreground-
|
| 14 |
-
border-radius:
|
|
|
|
|
|
|
| 15 |
display: flex;
|
| 16 |
justify-content: center;
|
| 17 |
align-items: center;
|
|
@@ -22,4 +24,10 @@
|
|
| 22 |
text-transform: capitalize;
|
| 23 |
font-weight: 600;
|
| 24 |
cursor: pointer;
|
|
|
|
|
|
|
| 25 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
}
|
| 8 |
|
| 9 |
.category-card {
|
| 10 |
+
width: 90px;
|
| 11 |
+
height: 70px;
|
| 12 |
padding: 10px;
|
| 13 |
+
background-image: linear-gradient(var(--foreground-secondary), var(--foreground-3));
|
| 14 |
+
border-radius: 10px;
|
| 15 |
+
border-top-right-radius: 25%;
|
| 16 |
+
border-top-left-radius: 25%;
|
| 17 |
display: flex;
|
| 18 |
justify-content: center;
|
| 19 |
align-items: center;
|
|
|
|
| 24 |
text-transform: capitalize;
|
| 25 |
font-weight: 600;
|
| 26 |
cursor: pointer;
|
| 27 |
+
transition: scale .3s ease;
|
| 28 |
+
overflow-wrap: break-word;
|
| 29 |
}
|
| 30 |
+
|
| 31 |
+
.category-card:hover .category-title{
|
| 32 |
+
scale: 1.1;
|
| 33 |
+
}
|
frontend/src/components/MusicPlayer.js
CHANGED
|
@@ -60,6 +60,7 @@ export default function MusicPlayer() {
|
|
| 60 |
setDuration(videoElement.duration);
|
| 61 |
setProgress(0);
|
| 62 |
setCurrentTime(0);
|
|
|
|
| 63 |
}
|
| 64 |
};
|
| 65 |
|
|
|
|
| 60 |
setDuration(videoElement.duration);
|
| 61 |
setProgress(0);
|
| 62 |
setCurrentTime(0);
|
| 63 |
+
videoElement.play();
|
| 64 |
}
|
| 65 |
};
|
| 66 |
|