From 96f3ba12109fe513864793cac0eb34a36a3bb8b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Thu, 14 Mar 2024 08:11:27 +0100 Subject: [PATCH] [ivette] move search field --- ivette/src/ivette/index.tsx | 22 +++++++++---------- .../Actions.tsx => ivette/search.tsx} | 2 +- ivette/src/ivette/state.tsx | 2 +- ivette/src/renderer/Application.tsx | 4 ++-- ivette/webpack.renderer.js | 2 -- 5 files changed, 15 insertions(+), 17 deletions(-) rename ivette/src/{renderer/Actions.tsx => ivette/search.tsx} (99%) diff --git a/ivette/src/ivette/index.tsx b/ivette/src/ivette/index.tsx index 4fc977e5bfe..f49cdcf7f6d 100644 --- a/ivette/src/ivette/index.tsx +++ b/ivette/src/ivette/index.tsx @@ -33,8 +33,8 @@ import React from 'react'; import { DEVEL } from 'dome'; import { Label } from 'dome/controls/labels'; import { DefineElement } from 'dome/layout/dispatch'; -import * as State from 'ivette/state'; -import * as Mode from 'ivette@mode'; +import * as State from './state'; +import * as Search from './search'; /* -------------------------------------------------------------------------- */ /* --- Items --- */ @@ -258,21 +258,21 @@ export interface ModeProps { onEnter?: (pattern: string) => void; // Enter key for search field } -export function registerMode(m: ModeProps): void { Mode.registerMode(m); } -export function updateMode(m: ModeProps): void { Mode.updateMode(m); } -export function removeMode(id: string): void { Mode.removeMode(id); } -export function selectMode(id: string): void { Mode.selectMode(id); } -export function focusMode(id: string): void { Mode.focusMode(id); } +export function registerMode(m: ModeProps): void { Search.registerMode(m); } +export function updateMode(m: ModeProps): void { Search.updateMode(m); } +export function removeMode(id: string): void { Search.removeMode(id); } +export function selectMode(id: string): void { Search.selectMode(id); } +export function focusMode(id: string): void { Search.focusMode(id); } export function useMode(m: ModeProps): void { React.useEffect(() => { const id = m.id; - const m0 = Mode.findMode(id); - Mode.registerMode({ ...m0, ...m }); + const m0 = Search.findMode(id); + Search.registerMode({ ...m0, ...m }); return () => { if (m0 !== undefined) - Mode.registerMode(m0); + Search.registerMode(m0); else - Mode.removeMode(id); + Search.removeMode(id); }; }, [m]); } diff --git a/ivette/src/renderer/Actions.tsx b/ivette/src/ivette/search.tsx similarity index 99% rename from ivette/src/renderer/Actions.tsx rename to ivette/src/ivette/search.tsx index 41ffe90652f..8e46e518e77 100644 --- a/ivette/src/renderer/Actions.tsx +++ b/ivette/src/ivette/search.tsx @@ -159,7 +159,7 @@ function lookupHints(hs: Hint[], pattern: string): Toolbar.Hint[] return hs.filter((h) => lookupHint(h, p)).map(toHint); } -export function SearchAction(): JSX.Element { +export function SearchField(): JSX.Element { const [mode] = useGlobalState(allModes); const currMode = mode.id; const userMode = React.useRef(''); diff --git a/ivette/src/ivette/state.tsx b/ivette/src/ivette/state.tsx index 19b5ab6e9fb..a2a171553ba 100644 --- a/ivette/src/ivette/state.tsx +++ b/ivette/src/ivette/state.tsx @@ -75,4 +75,4 @@ export function useChildren<A extends ElementProps>( return React.Children.toArray(elements.map((e) => e.children)); } -/* --------------------------------------------------------------------------*/ +/* -------------------------------------------------------------------------- */ diff --git a/ivette/src/renderer/Application.tsx b/ivette/src/renderer/Application.tsx index 090c4923b53..7a6c3d7b47a 100644 --- a/ivette/src/renderer/Application.tsx +++ b/ivette/src/renderer/Application.tsx @@ -32,10 +32,10 @@ import { Vfill } from 'dome/layout/boxes'; import { LSplit } from 'dome/layout/splitters'; import * as Toolbar from 'dome/frame/toolbars'; import * as Sidebar from './Sidebar'; -import * as Actions from './Actions'; import * as Controller from './Controller'; import * as Lab from './Laboratory'; import * as State from 'ivette/state'; +import * as Search from 'ivette/search'; import { TOOLBAR, STATUSBAR } from 'ivette'; import * as IvettePrefs from 'ivette/prefs'; import './loader'; @@ -71,7 +71,7 @@ export default function Application(): JSX.Element { <Toolbar.Filler /> <IvettePrefs.ThemeSwitchTool /> <IvettePrefs.FontTools /> - <Actions.SearchAction /> + <Search.SearchField /> <Toolbar.Button icon="ITEMS.GRID" title="Customize Main View" diff --git a/ivette/webpack.renderer.js b/ivette/webpack.renderer.js index d4bfd28832f..71825528a92 100644 --- a/ivette/webpack.renderer.js +++ b/ivette/webpack.renderer.js @@ -51,8 +51,6 @@ module.exports = { alias: { 'frama-c/api': path.resolve( __dirname , 'src/frama-c/api/generated' ), 'frama-c': path.resolve( __dirname , 'src/frama-c' ), - 'ivette@lab': path.resolve( __dirname , 'src/renderer/Laboratory' ), - 'ivette@mode': path.resolve( __dirname , 'src/renderer/Actions' ), 'ivette': path.resolve( __dirname , 'src/ivette' ), 'dome/misc': path.resolve( DOME , 'misc' ), 'dome/system': path.resolve( DOME , 'misc/system.ts' ), -- GitLab