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