Connectez vous à un salon vocal du serveur Discord : {{ globalStore.actualServer ? globalStore.actualServer.name : '' }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Layout/Playlist.vue b/src/components/Layout/Playlist.vue
new file mode 100644
index 0000000..e1a27c8
--- /dev/null
+++ b/src/components/Layout/Playlist.vue
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+
Aucune Playlist
+
+ Vous n'avez pas encore créé de Playlist. Cliquez sur le bouton ci-dessous pour en ajouter une.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Création en cours...
+
{{ error }}
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Layout/Queue.vue b/src/components/Layout/Queue.vue
new file mode 100644
index 0000000..e6f10e7
--- /dev/null
+++ b/src/components/Layout/Queue.vue
@@ -0,0 +1,132 @@
+
+
+
+ Liste de lecture
+ Historique
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Layout/Search.vue b/src/components/Layout/Search.vue
index f238dfd..f42eb0d 100644
--- a/src/components/Layout/Search.vue
+++ b/src/components/Layout/Search.vue
@@ -1,12 +1,22 @@
-
-
+
+
+
+
+
@@ -17,23 +27,32 @@ import { IORequest } from '@/utils/IORequest';
import Events from '@/utils/Events';
const searchBar = ref(null);
-
const searchQuery = ref('');
onMounted(() => {
searchBar.value.addEventListener('change', find);
});
+//TODO: Faire un systême de suggestions.
+
function find() {
+ // If on mobile close the keyboard
+ if (window.innerWidth < 768) {
+ searchBar.value.blur();
+ }
if (searchQuery.value.trim() === '') {
return;
}
Events.emit("SEARCH_STARTED");
IORequest("/SEARCH", (data) => {
- Events.emit("SEARCH_RESULT", data);
+ Events.emit("SEARCH_RESULT", {data: data, query: searchQuery.value});
}, searchQuery.value);
}
+Events.on("VIEW_CLOSED", () => {
+ searchQuery.value = '';
+});
+
@@ -63,4 +82,21 @@ function find() {
.search input::placeholder {
color: var(--text-secondary);
}
+
+.docs-icon {
+ display: none;
+}
+
+.search-actions {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+
+@media screen and (max-width: 768px),
+ screen and (max-height: 607px) {
+ .docs-icon {
+ display: block;
+ }
+}
\ No newline at end of file
diff --git a/src/components/Layout/View.vue b/src/components/Layout/View.vue
index bb10171..1a271d0 100644
--- a/src/components/Layout/View.vue
+++ b/src/components/Layout/View.vue
@@ -1,71 +1,170 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/UI/Avatar.vue b/src/components/UI/Avatar.vue
index baff3fc..5d7dcdd 100644
--- a/src/components/UI/Avatar.vue
+++ b/src/components/UI/Avatar.vue
@@ -1,6 +1,6 @@
+
+
+
diff --git a/src/components/UI/Modal.vue b/src/components/UI/Modal.vue
index a088ec2..55c044b 100644
--- a/src/components/UI/Modal.vue
+++ b/src/components/UI/Modal.vue
@@ -28,16 +28,16 @@ const modalContent = ref(null);
// Close the modal when clicking outside of it
onMounted(() => {
- document.addEventListener('click', handleClickOutside);
+ document.addEventListener('pointerdown', handleClickOutside);
});
onUnmounted(() => {
- document.removeEventListener('click', handleClickOutside);
+ document.removeEventListener('pointerdown', handleClickOutside);
});
// Only clicking modal-overlay but not modal-content will close the modal
function handleClickOutside(event) {
- if (event.target === modal.value && modalContent.value && !modalContent.value.contains(event.target)) {
+ if (event.pointerType === "mouse" && event.target === modal.value && modalContent.value && !modalContent.value.contains(event.target)) {
close();
}
}
@@ -80,6 +80,8 @@ defineExpose({
color: var(--text-primary);
display: flex;
flex-direction: column;
+ overflow-y: auto;
+ max-height: 75vh;
gap: 10px;
}
@@ -121,10 +123,8 @@ defineExpose({
}
.modal p {
margin: 0px;
+ font-size: 1.3em;
font-weight: 600;
- font-size: 1.2em;
- font-family: 'Gunship', sans-serif;
- font-weight: 500;
}
.modal-overlay {
@@ -138,7 +138,7 @@ defineExpose({
display: none;
align-items: center;
justify-content: center;
- z-index: 1500;
+ z-index: 3500;
}
diff --git a/src/components/UI/MusicAnimation.vue b/src/components/UI/MusicAnimation.vue
new file mode 100644
index 0000000..465e214
--- /dev/null
+++ b/src/components/UI/MusicAnimation.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/UI/PlaylistItem.vue b/src/components/UI/PlaylistItem.vue
new file mode 100644
index 0000000..8e2fa6b
--- /dev/null
+++ b/src/components/UI/PlaylistItem.vue
@@ -0,0 +1,66 @@
+
+
\ No newline at end of file
diff --git a/src/components/UI/SubsonicsLogo.vue b/src/components/UI/SubsonicsLogo.vue
index f2416ff..26c3f00 100644
--- a/src/components/UI/SubsonicsLogo.vue
+++ b/src/components/UI/SubsonicsLogo.vue
@@ -1,5 +1,5 @@
-
+
+
+
\ No newline at end of file
diff --git a/src/components/UI/VideoList.vue b/src/components/UI/VideoList.vue
new file mode 100644
index 0000000..d346801
--- /dev/null
+++ b/src/components/UI/VideoList.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
+
Subsonics est hors-ligne
+
+
Aucun titre jouée
+
+
Connectez vous d'abord à un salon audio pour lancer un titre
+
{{ video.author }}
+
Aucun auteur
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/UI/VideoQueue.vue b/src/components/UI/VideoQueue.vue
new file mode 100644
index 0000000..8309434
--- /dev/null
+++ b/src/components/UI/VideoQueue.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
Subsonics est hors-ligne
+
+
Aucun titre jouée
+
+
Connectez vous d'abord à un salon audio pour lancer un titre
+
{{ video.author }}
+
Aucun auteur
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/Dispatcher.vue b/src/components/Widget/Dispatcher.vue
new file mode 100644
index 0000000..6247e29
--- /dev/null
+++ b/src/components/Widget/Dispatcher.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/Guild/GuildHeaderUsers.vue b/src/components/Widget/Guild/GuildHeaderUsers.vue
index 25f874e..0e9cb82 100644
--- a/src/components/Widget/Guild/GuildHeaderUsers.vue
+++ b/src/components/Widget/Guild/GuildHeaderUsers.vue
@@ -60,7 +60,7 @@ function banUser() {
IORequest("/MOD/USERS/BAN", () => {
console.log("User banned:", targetUser.value.id);
}, targetUser.value.id);
- //TODO: CHECK THE userListConnected which have sameUser
+
}
\ No newline at end of file
diff --git a/src/components/Widget/Queue/NextList.vue b/src/components/Widget/Queue/NextList.vue
new file mode 100644
index 0000000..3c16053
--- /dev/null
+++ b/src/components/Widget/Queue/NextList.vue
@@ -0,0 +1,203 @@
+
+
+
+
+
+
+
Vous n'avez pas encore de playlist. Créez-en une pour sauvegarder ce titre.
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/View/Default.vue b/src/components/Widget/View/Default.vue
index 47d0eec..35d54c5 100644
--- a/src/components/Widget/View/Default.vue
+++ b/src/components/Widget/View/Default.vue
@@ -1,10 +1,79 @@
-
Test
+
+
+
+
+
+ Chargement en cours
+
+
\ No newline at end of file
diff --git a/src/components/Widget/View/Home/AccountMobile.vue b/src/components/Widget/View/Home/AccountMobile.vue
new file mode 100644
index 0000000..1a12cf8
--- /dev/null
+++ b/src/components/Widget/View/Home/AccountMobile.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/View/Home/Advice.vue b/src/components/Widget/View/Home/Advice.vue
new file mode 100644
index 0000000..18a3339
--- /dev/null
+++ b/src/components/Widget/View/Home/Advice.vue
@@ -0,0 +1,92 @@
+
+
+
☀️ Conseils du moment
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/View/Home/AdviceItem.vue b/src/components/Widget/View/Home/AdviceItem.vue
new file mode 100644
index 0000000..8302362
--- /dev/null
+++ b/src/components/Widget/View/Home/AdviceItem.vue
@@ -0,0 +1,52 @@
+
+
+
+
{{ props.text }}
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/View/Home/Changelog.vue b/src/components/Widget/View/Home/Changelog.vue
new file mode 100644
index 0000000..5085a2e
--- /dev/null
+++ b/src/components/Widget/View/Home/Changelog.vue
@@ -0,0 +1,244 @@
+
+
+
+
Voici les derniers titres que tu as écoutés (tout serveur confondu) !
+
+
+
+
Chargement en cours
+
+ Aucune chanson écoutée récemment.
+ Dès que tu écoutes une chanson, elle apparaîtra ici.
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/View/Home/Motivation.vue b/src/components/Widget/View/Home/Motivation.vue
new file mode 100644
index 0000000..ffc6862
--- /dev/null
+++ b/src/components/Widget/View/Home/Motivation.vue
@@ -0,0 +1,71 @@
+
+
{{ welcomePhrase }}
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/View/Home/Welcome.vue b/src/components/Widget/View/Home/Welcome.vue
new file mode 100644
index 0000000..e1eb411
--- /dev/null
+++ b/src/components/Widget/View/Home/Welcome.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/View/LoadingView.vue b/src/components/Widget/View/LoadingView.vue
index 93175c7..84a3a3d 100644
--- a/src/components/Widget/View/LoadingView.vue
+++ b/src/components/Widget/View/LoadingView.vue
@@ -2,7 +2,7 @@
+ Vousêtes déconnecté
+ Connecté à {{ globalStore.currentChannel.name }}
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Widget/View/Playlist/PlaylistView.vue b/src/components/Widget/View/Playlist/PlaylistView.vue
new file mode 100644
index 0000000..4100181
--- /dev/null
+++ b/src/components/Widget/View/Playlist/PlaylistView.vue
@@ -0,0 +1,95 @@
+
+
+
+
Cette playlist vient d'être mise à jour.
+
+
+
+
+
+
Aucun titre
+
Vous n'avez pas encore ajouté de titre à cette playlist. Faites une recherche et sauvegarder les avec