From d5780d272836b234299af11505c963b7d4099ac0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr>
Date: Fri, 28 Aug 2020 15:27:00 +0200
Subject: [PATCH] [dome] fix window setting events

---
 ivette/src/dome/src/renderer/data/settings.ts | 38 ++++++++++++-------
 ivette/src/dome/src/renderer/layout/grids.js  |  6 ++-
 .../src/dome/src/renderer/layout/splitters.js |  6 ++-
 3 files changed, 33 insertions(+), 17 deletions(-)

diff --git a/ivette/src/dome/src/renderer/data/settings.ts b/ivette/src/dome/src/renderer/data/settings.ts
index 114d14c5a60..7d39c457339 100644
--- a/ivette/src/dome/src/renderer/data/settings.ts
+++ b/ivette/src/dome/src/renderer/data/settings.ts
@@ -264,7 +264,7 @@ function useSettings<A>(
 // --- Window Settings
 // --------------------------------------------------------------------------
 
-const WindowDriver = new Driver({
+const WindowSettingsDriver = new Driver({
   evt: 'dome.settings.window',
   ipc: 'dome.ipc.settings.window',
   broadcast: false,
@@ -279,7 +279,7 @@ export function getWindowSettings<A>(
   defaultValue: A,
 ): A {
   return key ?
-    JSON.jCatch(decoder, defaultValue)(WindowDriver.load(key))
+    JSON.jCatch(decoder, defaultValue)(WindowSettingsDriver.load(key))
     : defaultValue;
 }
 
@@ -293,7 +293,7 @@ export function setWindowSettings(
   key: string | undefined,
   value: JSON.json,
 ) {
-  if (key) WindowDriver.save(key, value);
+  if (key) WindowSettingsDriver.save(key, value);
 }
 
 /**
@@ -310,7 +310,7 @@ export function useWindowSettings<A extends JSON.json>(
     decoder,
     encoder: JSON.identity,
     defaultValue,
-  }, WindowDriver, key);
+  }, WindowSettingsDriver, key);
 }
 
 /** Same as [[useWindowSettings]] with a specific encoder. */
@@ -324,23 +324,35 @@ export function useWindowSettingsData<A>(
     decoder,
     encoder,
     defaultValue,
-  }, WindowDriver, key);
+  }, WindowSettingsDriver, key);
 }
 
 /** Call the callback function on window settings events. */
 export function useWindowSettingsEvent(callback: () => void) {
   React.useEffect(() => {
-    const { evt } = WindowDriver;
+    const { evt } = WindowSettingsDriver;
     SysEmitter.on(evt, callback);
     return () => { SysEmitter.off(evt, callback); };
   });
 }
 
+/** @ignore DEPRECATED */
+export function onWindowSettings(callback: () => void) {
+  const { evt } = WindowSettingsDriver;
+  SysEmitter.on(evt, callback);
+}
+
+/** @ignore DEPRECATED */
+export function offWindowSettings(callback: () => void) {
+  const { evt } = WindowSettingsDriver;
+  SysEmitter.off(evt, callback);
+}
+
 // --------------------------------------------------------------------------
 // --- Global Settings
 // --------------------------------------------------------------------------
 
-const GlobalDriver = new Driver({
+const GlobalSettingsDriver = new Driver({
   evt: 'dome.settings.global',
   ipc: 'dome.ipc.settings.window',
   broadcast: true,
@@ -352,13 +364,13 @@ const GlobalDriver = new Driver({
    the usual place for the application with respect to the underlying system.
  */
 export function useGlobalSettings<A>(S: GlobalSettings<A>) {
-  return useSettings(S, GlobalDriver, S.name);
+  return useSettings(S, GlobalSettingsDriver, S.name);
 }
 
 /** Call the callback function on global settings events. */
 export function useGlobalSettingsEvent(callback: () => void) {
   React.useEffect(() => {
-    const { evt } = GlobalDriver;
+    const { evt } = GlobalSettingsDriver;
     SysEmitter.on(evt, callback);
     return () => { SysEmitter.off(evt, callback); };
   });
@@ -369,10 +381,10 @@ export function useGlobalSettingsEvent(callback: () => void) {
 // --------------------------------------------------------------------------
 
 /* @ internal */
-export const window = WindowDriver.evt;
+export const window = WindowSettingsDriver.evt;
 
 /* @ internal */
-export const global = GlobalDriver.evt;
+export const global = GlobalSettingsDriver.evt;
 
 /* @ internal */
 export function synchronize() {
@@ -380,9 +392,9 @@ export function synchronize() {
     'dome.ipc.settings.sync',
     (_event: string, data: any) => {
       const globals: patch[] = data.globals ?? [];
-      GlobalDriver.sync(globals);
+      GlobalSettingsDriver.sync(globals);
       const settings: patch[] = data.settings ?? [];
-      WindowDriver.sync(settings);
+      WindowSettingsDriver.sync(settings);
     },
   );
 }
diff --git a/ivette/src/dome/src/renderer/layout/grids.js b/ivette/src/dome/src/renderer/layout/grids.js
index bab058a6ef7..5a7f8af8b45 100644
--- a/ivette/src/dome/src/renderer/layout/grids.js
+++ b/ivette/src/dome/src/renderer/layout/grids.js
@@ -1181,11 +1181,13 @@ export class GridLayout extends React.Component
   }
 
   componentDidMount() {
-    Dome.on('dome.settings.window',this.onReloadSettings);
+    // DEPRECATED
+    Settings.onWindowSettings(this.onReloadSettings);
   }
 
   componentWillUnmont() {
-    Dome.off('dome.settings.window',this.onReloadSettings);
+    // DEPRECATED
+    Settings.offWindowSettings(this.onReloadSettings);
   }
 
   computeTargetProposal(target) {
diff --git a/ivette/src/dome/src/renderer/layout/splitters.js b/ivette/src/dome/src/renderer/layout/splitters.js
index 14c0cbde86e..19a5b7226ea 100644
--- a/ivette/src/dome/src/renderer/layout/splitters.js
+++ b/ivette/src/dome/src/renderer/layout/splitters.js
@@ -168,11 +168,13 @@ export class Splitter extends React.Component {
 
   componentDidMount() {
     this.handleReload();
-    Dome.on( 'dome.settings.window', this.handleReload );
+    // DEPRECATED
+    Settings.onWindowSettings(this.handleReload);
   }
 
   componentWillUnmount() {
-    Dome.off( 'dome.settings.window', this.handleReload );
+    // DEPRECATED
+    Settings.offWindowSettings(this.handleReload);
   }
 
   componentDidUpdate() {
-- 
GitLab