Ajouté deux nouveaux scripts de build pour les fenêtres externes:
"build:idlookup-window": "Build standalone de IdLookupWindow → idlookup-react/"
"build:comms-window": "Build standalone de CommsWindow → comms-react/"
"build:all": "Maintenant inclut les deux nouvelles fenêtres"Ajouté support pour REACT_APP_WINDOW_TYPE:
const windowBuildType = process.env.REACT_APP_WINDOW_TYPE;
// Permet de compiler IdLookupWindow et CommsWindow comme applications standaloneButtonPropertyInspector.tsx et EncoderPropertyInspector.tsx:
// Ancien (HTML/JS)
idLookup: "../../propertyinspector/id_lookup_window.html"
comms: "../../settingsUI/index.html?window=comms"
// Nouveau (React standalone)
idLookup: "../../propertyinspector/idlookup-react/index.html"
comms: "../../propertyinspector/comms-react/index.html"✅ com.ctytler.dcs.sdPlugin/propertyinspector/idlookup-react/
index.html(47 kB gzippé)static/js/,static/css/
✅ com.ctytler.dcs.sdPlugin/propertyinspector/comms-react/
index.html(47.69 kB gzippé)static/js/,static/css/
Créé ID_LOOKUP_WINDOW_ANALYSIS.md avec:
- Analyse complète de l'architecture originale vs React
- Diagramme de flux de communication
- Guide de test et debug
- Comparaison HTML/JS vs React
.\Tools\build_plugin_cmake.bat -debug- Installer le plugin dans Stream Deck
- Ajouter un bouton "Switch Input" ou encoder
- Ouvrir Property Inspector
- Cliquer sur "ID Lookup" → La fenêtre React devrait s'ouvrir
- Vérifier la section "Debug Messages" en bas pour voir les logs
- Fenêtre ID Lookup s'ouvre sans erreur
- Path DCS est rempli par défaut
- Bouton "Update" récupère les modules installés
- Dropdown modules est populé
- Recherche fonctionne dans le tableau
- Sélection d'une ligne active les boutons d'import
- Import de commande DCS met à jour le Property Inspector
// Ouvrir la console du Property Inspector (F12)
// Vérifier l'URL dans window.open():
console.log(urls.idLookup);
// Devrait être: "../../propertyinspector/idlookup-react/index.html"// Dans IdLookupWindow, section Debug Messages en bas devrait montrer:
"✗ ERROR: Not connected to Property Inspector"
// → La fenêtre n'a pas été ouverte via window.open()// Dans IdLookupWindow, Debug Messages devrait montrer:
"📤 Sending RequestInstalledModules..."
"✓ Request sent successfully"
// Puis regarder les logs du plugin C++ pour voir s'il répond┌─────────────────────────────────────────┐
│ Stream Deck Property Inspector │
│ (ButtonPropertyInspector.tsx) │
│ │
│ - openExternalWindow("idLookup") │
│ - gotCallbackFromIdLookupWindow() │←─┐
│ - sendToPlugin() via WebSocket │ │
└─────────────────┬───────────────────────┘ │
│ window.open() │
↓ │
┌─────────────────────────────────────────┐ │
│ IdLookupWindow (Standalone React App) │ │
│ (idlookup-react/index.html) │ │
│ │ │
│ - window.opener.gotCallback...() ─┼──┘
│ - window.handleSendToPropertyInsp...() │←─┐
└─────────────────┬───────────────────────┘ │
│ WebSocket │
↓ │
┌─────────────────────────────────────────┐ │
│ C++ Plugin Backend │ │
│ (StreamDeckDCSInterface.exe) │ │
│ │ │
│ - RequestInstalledModules ──┼──┘
│ - RequestIdLookup │
│ - sendToPropertyInspector() │
└─────────────────────────────────────────┘
- Tester l'ouverture de la fenêtre dans Stream Deck
- Vérifier la communication avec le backend C++
- Valider l'import de commandes DCS
- Ajouter des logs côté C++ pour debug
- Améliorer les messages d'erreur
- Documenter le flux de communication
- Supprimer l'ancien
id_lookup_window.html - Supprimer les anciens fichiers JS
- Mettre à jour la documentation utilisateur
npm install -g @elgato/cli@latest
nvm use 21.7.3 # Ou version >= 20
streamdeck -v # Vérifier l'installation# Lier le plugin (si pas déjà installé)
streamdeck link Sources\com.ctytler.dcs.sdPlugin
# Activer le mode développeur (logs détaillés)
streamdeck dev
# Redémarrer le plugin
streamdeck restart com.ctytler.dcs
# Valider le plugin
streamdeck validate Sources\com.ctytler.dcs.sdPluginLe script build_plugin_cmake.bat supporte maintenant -debug:
.\Tools\build_plugin_cmake.bat -debugCela va:
- Compiler le C++
- Build tous les React apps
- Packager le plugin
- Lier le plugin à Stream Deck
- Activer le mode développeur
- Redémarrer le plugin
-
frontend-react-js/package.json- Nouveaux scripts de build -
frontend-react-js/src/index.tsx- Support REACT_APP_WINDOW_TYPE -
frontend-react-js/src/propertyinspectors/ButtonPropertyInspector.tsx- Nouveaux chemins -
frontend-react-js/src/propertyinspectors/EncoderPropertyInspector.tsx- Nouveaux chemins -
Tools/build_plugin_cmake.bat- Support paramètre -debug -
ID_LOOKUP_WINDOW_ANALYSIS.md- Documentation complète -
ID_LOOKUP_IMPLEMENTATION_SUMMARY.md- Ce fichier
-
com.ctytler.dcs.sdPlugin/propertyinspector/idlookup-react/index.html -
com.ctytler.dcs.sdPlugin/propertyinspector/comms-react/index.html -
com.ctytler.dcs.sdPlugin/propertyinspector/button-react/index.html -
com.ctytler.dcs.sdPlugin/propertyinspector/encoder-react/index.html -
com.ctytler.dcs.sdPlugin/propertyinspector/dcsbios-react/index.html -
com.ctytler.dcs.sdPlugin/settingsUI/index.html -
Release/com.ctytler.dcs.streamDeckPlugin
- Ouverture fenêtre ID Lookup depuis Button PI
- Ouverture fenêtre ID Lookup depuis Encoder PI
- Communication Property Inspector ↔ ID Lookup Window
- Communication ID Lookup Window ↔ C++ Backend
- Récupération modules DCS installés
- Recherche dans clickabledata
- Import de commandes DCS
- Import de changements d'image
- Import de changements de texte
Avoir une fenêtre ID Lookup 100% React qui:
- ✅ S'ouvre depuis les Property Inspectors
- ✅ Communique avec le backend C++
- ✅ Permet la recherche de commandes DCS
- ✅ Permet l'import de configurations
- ✅ Affiche des logs de debug clairs
- ⏳ À TESTER dans l'environnement Stream Deck réel