Simplification de la web UI en reposant davantage sur le serveur.

This commit is contained in:
2025-12-05 23:37:21 +01:00
parent 4d79c6d883
commit daef8d6150
18 changed files with 700 additions and 758 deletions

View File

@@ -3,14 +3,12 @@ import { createPinia } from "pinia";
import App from "./App.vue";
import router from "./router";
// Stores
import { useRenderersStore } from "./stores/renderers";
import { useMediaServersStore } from "./stores/mediaServers";
import { useUIStore } from "./stores/ui";
// Service SSE
// Service SSE (les composables se connectent automatiquement)
import { sse } from "./services/pmocontrol/sse";
// Store UI (garde UIStore pour les notifications et état UI global)
import { useUIStore } from "./stores/ui";
// Styles
import "./style.css";
import "./assets/styles/variables.css";
@@ -27,35 +25,16 @@ app.use(router);
// Monter l'application
app.mount("#app");
// Après montage, initialiser SSE et connecter aux stores
const renderersStore = useRenderersStore();
const mediaServersStore = useMediaServersStore();
// Après montage, initialiser SSE
const uiStore = useUIStore();
// Connecter SSE aux stores
// Note: Les métadonnées proviennent de l'API (current_track dans RendererState)
// Les événements SSE ne servent qu'à notifier les changements
sse.onRendererEvent((event) => {
renderersStore.updateFromSSE(event);
});
sse.onMediaServerEvent((event) => {
mediaServersStore.updateFromSSE(event);
});
// Les composables se connectent automatiquement à SSE
// Ils gèrent eux-mêmes le re-fetch lors des événements
sse.onConnectionChange((connected) => {
uiStore.setSSEConnected(connected);
if (connected) {
console.log("[App] SSE connecté - Chargement des données initiales");
// Charger les données initiales
renderersStore.fetchRenderers();
mediaServersStore.fetchServers();
// Recharger la queue du renderer sélectionné s'il y en a un
if (uiStore.selectedRendererId) {
console.log(`[App] Rechargement de la queue du renderer ${uiStore.selectedRendererId}`);
renderersStore.fetchQueue(uiStore.selectedRendererId);
}
console.log("[App] SSE connecté");
}
});