Ajout de l'indicateur visuel 'Web Radio' pour les flux continus
Implémentation complète de l'étape 2 : ajout d'un indicateur visuel "Web Radio" dans l'interface web pour signaler la lecture d'un flux continu. Cet indicateur s'affiche à côté de l'indicateur "Attachée à une playlist" dans le composant QueueViewer. Changements principaux : - Ajout du champ `is_stream` dans `FullRendererSnapshot` pour transmettre l'état du flux au frontend - Intégration de l'indicateur visuel dans `QueueViewer.vue` avec l'icône Radio - Gestion de l'événement `stream_state_changed` dans le composant `useRenderers.ts` - Mise à jour des types TypeScript pour inclure le nouveau champ `is_stream` - Refactorisation de `sse.rs` pour éliminer la duplication de code Cette fonctionnalité permet aux utilisateurs de savoir rapidement si la lecture en cours est un flux continu (webradio) ou un fichier audio traditionnel.
This commit is contained in:
@@ -190,6 +190,10 @@ function ensureSSEConnected() {
|
||||
}
|
||||
break;
|
||||
|
||||
case "stream_state_changed":
|
||||
snapshot.is_stream = event.is_stream;
|
||||
break;
|
||||
|
||||
case "timer_started":
|
||||
case "timer_updated":
|
||||
case "timer_tick":
|
||||
@@ -467,6 +471,7 @@ export function useRenderer(rendererId: Ref<string>) {
|
||||
const state = computed(() => snapshot.value?.state ?? null);
|
||||
const queue = computed(() => snapshot.value?.queue ?? null);
|
||||
const binding = computed(() => snapshot.value?.binding ?? null);
|
||||
const isStream = computed(() => snapshot.value?.is_stream ?? false);
|
||||
|
||||
async function refresh(force = true) {
|
||||
await Promise.all([
|
||||
@@ -481,6 +486,7 @@ export function useRenderer(rendererId: Ref<string>) {
|
||||
state,
|
||||
queue,
|
||||
binding,
|
||||
isStream,
|
||||
refresh,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user