From 68c06559b33b4b9957bcf64136e84cdc4ff6ccbb Mon Sep 17 00:00:00 2001 From: rlazarini <remi.lazarini@cea.fr> Date: Tue, 3 Dec 2024 09:57:40 +0100 Subject: [PATCH] [ivette] system : use readFile instead of getFileContent + added hook to retrieve doc file --- ivette/src/dome/misc/system.ts | 24 ------------------------ ivette/src/dome/renderer/dome.tsx | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/ivette/src/dome/misc/system.ts b/ivette/src/dome/misc/system.ts index ca044d74023..82e0aefc1c0 100644 --- a/ivette/src/dome/misc/system.ts +++ b/ivette/src/dome/misc/system.ts @@ -658,27 +658,3 @@ export default { }; // -------------------------------------------------------------------------- -// --- Get filecontent -// -------------------------------------------------------------------------- - -export function getFileContent( - path: string, - callback: (val: string) => void -): void { - fetch(path) - .then((response) => { - if (!response.ok) { - // Statut HTTP 404 ou autre erreur - throw new Error(`HTTP error! status: ${response.status}`); - } - return response.text(); - }) - .then(callback) - .catch((error) => { - // eslint-disable-next-line no-console - console.error('Error while loading the file :', error); - } - ); -} - -// -------------------------------------------------------------------------- diff --git a/ivette/src/dome/renderer/dome.tsx b/ivette/src/dome/renderer/dome.tsx index 1e03e03aba5..b2d3354f0e0 100644 --- a/ivette/src/dome/renderer/dome.tsx +++ b/ivette/src/dome/renderer/dome.tsx @@ -43,6 +43,7 @@ import React from 'react'; import Emitter from 'events'; import { createRoot } from 'react-dom/client'; import { ipcRenderer } from 'electron'; +import { join } from 'path'; import SYS, * as System from 'dome/system'; import { State, GlobalState, useGlobalState } from './data/states'; @@ -830,10 +831,26 @@ export function useFileContent( ): string { const [ fileContent, setFileContent ] = React.useState(""); const callback = useProtected(setFileContent); - System.getFileContent(path, callback); + System.readFile(path) + .then((response) => callback(response.toString())) + .catch((error) => { + // eslint-disable-next-line no-console + console.error('Error while loading the file :', error); + }); return fileContent; } +/** + * A hook to retrieve text from a doc file. + * @param path Path from ivette's 'doc' directory + */ +export function useDocContent( + path: string, +): string { + return useFileContent(join(process.cwd(), 'ivette/doc/', path)); +} + + /** Debounced callback (waiting time in milliseconds). The returned callback will be only fired when the component is mounted. -- GitLab