Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 39 additions & 37 deletions src-mobile/index.html
Original file line number Diff line number Diff line change
@@ -1,44 +1,46 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="./style/index.css" />
<link rel="manifest" href="./manifest.json">
<link rel="icon" href="./icons/app_icons/72x72.png">
<meta name="theme-color" content="#306EE7">
<title>Kreck</title>
</head>
<body>
<div class="container">
<div class="navegation">
<div class="navegation-background">
<div class="navegation-button actived">
<h1>Tracks</h1>
<head>

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's missing the icon declaration

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed whitin the next commit.

<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="./style/index.css" />
<link rel="manifest" href="./manifest.json" />
<link rel="icon" href="./icons/app_icons/72x72.png" />
<meta name="theme-color" content="#306EE7" />
<title>Kreck</title>
</head>
<body>
<div class="container">
<div class="navegation">
<div class="navegation-background">
<div class="navegation-button actived">
<h1>Tracks</h1>
</div>
<div class="navegation-button">
<h1><a href="./sounds.html">Sounds</a></h1>
</div>
</div>
<div class="navegation-button">
<h1><a href="./sounds.html">Sounds</a></h1>
</div>
</div>
</div>
<div class="content"></div>
<div class="playbackbar">
<div class="playbackbar-informations">
<div class="playbackbarTrack-name"></div>
</div>
<div class="playbackbar-buttons">
<button id="playbackbar-previous">
<img src="./icons/previous-icon.svg" alt="" />
</button>
<button id="playbackbar-play">
<img src="./icons/pause-icon.svg" alt="" />
</button>
<button id="playbackbar-next">
<img src="./icons/next-icon.svg" alt="" />
</button>
<div class="content"></div>
<div class="playbackbar">
<div class="playbackbar-informations">
<div class="playback-track-name-container">
<div class="playbackbar-track-name"></div>
</div>
</div>
<div class="playbackbar-buttons">
<button id="playbackbar-previous">
<img src="./icons/previous-icon.svg" alt="" />
</button>
<button id="playbackbar-play">
<img src="./icons/pause-icon.svg" alt="" />
</button>
<button id="playbackbar-next">
<img src="./icons/next-icon.svg" alt="" />
</button>
</div>
</div>
</div>
</div>
<script type="module" src="./script/index.js"></script>
</body>
<script type="module" src="./script/index.js"></script>
</body>
</html>
32 changes: 32 additions & 0 deletions src-mobile/script/components/checkTextAndAddCarousel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { addElementClass } from "./subcomponents/addElementClass.js";
import { putFade } from "./subcomponents/putFade.js";

function removeParentClass(element) {
element.parentElement.classList.remove("no-fade");
}

export function checkTextAndAddCarousel(where) {
const element = document.querySelectorAll(`.${where}-track-name`);
const classFade = `${where}-name-fade`;

element.forEach((element) => {
const textElement = element.textContent;

if (textElement.length > 21 && textElement.length <= 40) {
addElementClass(element, "small", `${where}`);
removeParentClass(element);
putFade(classFade, `carousel-small-${where}`, 20000);
} else if (textElement.length > 40 && textElement.length <= 90) {
addElementClass(element, "medium", `${where}`);
removeParentClass(element);
putFade(classFade, `carousel-medium-${where}`, 25000);
} else if (textElement.length > 90) {
addElementClass(element, "large", `${where}`);
removeParentClass(element);
putFade(classFade, `carousel-large-${where}`, 30000);
} else {
element.className = `${where}-track-name `;
element.parentElement.classList.add("no-fade");
}
});
}
18 changes: 0 additions & 18 deletions src-mobile/script/components/checkTextAndAddCarroussel.js

This file was deleted.

2 changes: 1 addition & 1 deletion src-mobile/script/components/renderPlaybackbar.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export function renderPlaybackbar(trackTitle) {
const playbackbar = document.querySelector(".playbackbar");
const playbackTrackName = document.querySelector(".playbackbarTrack-name");
const playbackTrackName = document.querySelector(".playbackbar-track-name");

playbackTrackName.textContent = trackTitle;
playbackbar.style.display = "flex";
Expand Down
3 changes: 3 additions & 0 deletions src-mobile/script/components/subcomponents/addElementClass.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export function addElementClass(element, carouselSize, where) {
element.className = `carousel-${carouselSize}-${where} ${where}-track-name `;
}
38 changes: 38 additions & 0 deletions src-mobile/script/components/subcomponents/putFade.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
export function putFade(classFade, carouselName, duration) {
const carousels = document.querySelectorAll(`.${carouselName}`);
const animationDuration = duration;

let animationStartTime = null;

// Function to toggle the "classFade" class based on animation progress
const toggleTrackNameFade = (progress) => {
carousels.forEach((carousel) => {
if (progress >= 0 && progress <= 20) {
carousel.parentElement.classList.remove(`${classFade}`);
} else {
carousel.parentElement.classList.add(`${classFade}`);
}
});
};

// Function to update the carousel based on current time and animation duration
const updateCarousel = () => {
const currentTime = Date.now();
const elapsedTime = (currentTime - animationStartTime) % animationDuration;
const animationProgress = (elapsedTime / animationDuration) * 100;

toggleTrackNameFade(animationProgress);
requestAnimationFrame(updateCarousel);
};

// Initialize animation start time on animation iteration
carousels.forEach((carousel) => {
carousel.addEventListener("animationiteration", () => {
animationStartTime = Date.now();
});
});

// Start monitoring the carousel animation
animationStartTime = Date.now();
requestAnimationFrame(updateCarousel);
}
4 changes: 2 additions & 2 deletions src-mobile/script/handlers/handlePlayButton.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { checkTextAndAddCarousel } from "../components/checkTextAndAddCarousel.js";
import { renderPlaybackbar } from "../components/renderPlaybackbar.js";
import { putPlayTrack } from "../endpoints.js";
import { playTrackPlaybackbar } from "./handlePlayPlaybackbar.js";
import { checkText } from "../components/checkTextAndAddCarroussel.js";

export function handlePlayButton(convertedTrack) {
convertedTrack.forEach((track) => {
Expand All @@ -10,7 +10,7 @@ export function handlePlayButton(convertedTrack) {
button.addEventListener("click", () => {
putPlayTrack(track.id);
renderPlaybackbar(track.title);
checkText("playbackbarTrack-name");
checkTextAndAddCarousel("playbackbar");
playTrackPlaybackbar();
});
});
Expand Down
4 changes: 2 additions & 2 deletions src-mobile/script/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { convertTracks } from "./handlers/handleTracks.js";
import { handlePlayPlaybackbar } from "./handlers/handlePlayPlaybackbar.js";
import { handleNextPlaybackbar } from "./handlers/handleNextPlaybackbar.js";
import { handlePreviousPlaybackbar } from "./handlers/handlePreviousPlaybackbar.js";
import { checkText } from "./components/checkTextAndAddCarroussel.js";
import { checkTextAndAddCarousel } from "./components/checkTextAndAddCarousel.js";

const tracks = await getTracks();
const convertedTracks = convertTracks(tracks);
Expand All @@ -15,4 +15,4 @@ handlePlayButton(convertedTracks);
handlePlayPlaybackbar();
handleNextPlaybackbar();
handlePreviousPlaybackbar();
checkText("track-name");
checkTextAndAddCarousel("trackSection");
97 changes: 0 additions & 97 deletions src-mobile/script/mock.js

This file was deleted.

13 changes: 8 additions & 5 deletions src-mobile/script/templates/TrackTemplate.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,17 @@ export function getTrackTemplate(track) {

container.innerHTML = `
<div class="track-informations ">
<div class="track-name">${track.title}</div>
<div class="track-playlist">${track.playlist}</div>
<div>
<div class="trackSection-track-name">${track.title}</div>
</div>
<div class="track-player">
<div class="play-button" id="${track.id}">
<div class="player-button-triangle">
<div>
<div class="trackSection-track-playlist">${track.playlist}</div>
</div>
</div>
<div class="trackSection-track-player">
<div class="play-button" id="${track.id}">
<div class="player-button-triangle"></div>
</div>
</div>`;

container.className = "container-track";
Expand Down
Loading