From a5b48236db75dfa8980079c318a302b5bee1dfd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Thu, 14 Mar 2024 07:49:28 +0100 Subject: [PATCH] [ivette] move extensions --- ivette/src/ivette/index.tsx | 14 +++++++------- .../{renderer/Extensions.tsx => ivette/state.tsx} | 0 ivette/src/renderer/Application.tsx | 6 +++--- ivette/src/renderer/Laboratory.tsx | 14 +++++++------- ivette/src/renderer/Sidebar.tsx | 4 ++-- ivette/webpack.renderer.js | 1 - 6 files changed, 19 insertions(+), 20 deletions(-) rename ivette/src/{renderer/Extensions.tsx => ivette/state.tsx} (100%) diff --git a/ivette/src/ivette/index.tsx b/ivette/src/ivette/index.tsx index 906278b5568..4fc977e5bfe 100644 --- a/ivette/src/ivette/index.tsx +++ b/ivette/src/ivette/index.tsx @@ -33,7 +33,7 @@ import React from 'react'; import { DEVEL } from 'dome'; import { Label } from 'dome/controls/labels'; import { DefineElement } from 'dome/layout/dispatch'; -import * as Ext from 'ivette@ext'; +import * as State from 'ivette/state'; import * as Mode from 'ivette@mode'; /* -------------------------------------------------------------------------- */ @@ -61,7 +61,7 @@ export interface ContentProps extends ItemProps { /* -------------------------------------------------------------------------- */ /** @ignore */ -export const GROUP = new Ext.ElementRack<ItemProps>(); +export const GROUP = new State.ElementRack<ItemProps>(); /** Defines a group of components. @@ -116,7 +116,7 @@ export interface ViewLayoutProps extends ItemProps { } /** @ignore */ -export const VIEW = new Ext.ElementRack<ViewLayoutProps>(); +export const VIEW = new State.ElementRack<ViewLayoutProps>(); /** Register a new View. */ export function registerView(view: ViewLayoutProps): void { @@ -138,7 +138,7 @@ export interface ComponentProps extends ContentProps { } /** @ignore */ -export const COMPONENT = new Ext.ElementRack<ComponentProps>(); +export const COMPONENT = new State.ElementRack<ComponentProps>(); /** Register the given Ivette Component. @@ -210,13 +210,13 @@ export interface ToolProps { } /** @ignore */ -export const SIDEBAR = new Ext.ElementRack<SidebarProps>(); +export const SIDEBAR = new State.ElementRack<SidebarProps>(); /** @ignore */ -export const TOOLBAR = new Ext.ElementRack<ToolProps>(); +export const TOOLBAR = new State.ElementRack<ToolProps>(); /** @ignore */ -export const STATUSBAR = new Ext.ElementRack<ToolProps>(); +export const STATUSBAR = new State.ElementRack<ToolProps>(); export function registerSidebar(sidebar: SidebarProps): void { SIDEBAR.register(sidebar); diff --git a/ivette/src/renderer/Extensions.tsx b/ivette/src/ivette/state.tsx similarity index 100% rename from ivette/src/renderer/Extensions.tsx rename to ivette/src/ivette/state.tsx diff --git a/ivette/src/renderer/Application.tsx b/ivette/src/renderer/Application.tsx index 8e55109e8a5..090c4923b53 100644 --- a/ivette/src/renderer/Application.tsx +++ b/ivette/src/renderer/Application.tsx @@ -35,7 +35,7 @@ import * as Sidebar from './Sidebar'; import * as Actions from './Actions'; import * as Controller from './Controller'; import * as Lab from './Laboratory'; -import * as Ext from './Extensions'; +import * as State from 'ivette/state'; import { TOOLBAR, STATUSBAR } from 'ivette'; import * as IvettePrefs from 'ivette/prefs'; import './loader'; @@ -52,8 +52,8 @@ export default function Application(): JSX.Element { const [viewbar, flipViewbar] = Dome.useFlipSettings('frama-c.viewbar.unfold', true); - const ToolBar = Ext.useChildren(TOOLBAR); - const StatusBar = Ext.useChildren(STATUSBAR); + const ToolBar = State.useChildren(TOOLBAR); + const StatusBar = State.useChildren(STATUSBAR); return ( <Vfill> diff --git a/ivette/src/renderer/Laboratory.tsx b/ivette/src/renderer/Laboratory.tsx index 2a2cab5e855..b14654ec66c 100644 --- a/ivette/src/renderer/Laboratory.tsx +++ b/ivette/src/renderer/Laboratory.tsx @@ -37,7 +37,7 @@ import { Catch } from 'dome/errors'; import { classes } from 'dome/misc/utils'; import * as Ivette from 'ivette'; import { compId, LayoutPosition, VIEW, COMPONENT, GROUP } from 'ivette'; -import * as Ext from './Extensions'; +import * as State from 'ivette/state'; /* -------------------------------------------------------------------------- */ /* --- LabView State --- */ @@ -804,7 +804,7 @@ const paneActions: Actions = { dock: true, undock: false, close: true }; function Pane(props: PaneProps): JSX.Element | null { const { compId } = props; - const component = Ext.useElement(COMPONENT, compId); + const component = State.useElement(COMPONENT, compId); const onLayout = React.useCallback( (evt) => openLayoutMenu(compId, paneActions, evt), [compId] @@ -920,7 +920,7 @@ function ViewItem(props: ViewItemProps): JSX.Element { } function ViewSection(): JSX.Element { - const views = Ext.useElements(VIEW); + const views = State.useElements(VIEW); const [{ tabs, tabKey, sideView, stack }] = States.useGlobalState(LAB); const items = views.map((view) => { const { id } = view; @@ -1019,7 +1019,7 @@ interface GroupSectionProps extends Ivette.ItemProps { function GroupSection(props: GroupSectionProps): JSX.Element | null { const { id, label, title, filter } = props; const settings = 'ivette.sidebar.group.' + id; - const components = Ext.useElements(COMPONENT).filter(filter) ?? []; + const components = State.useElements(COMPONENT).filter(filter) ?? []; const [{ panels, docked, sideComp, stack }] = States.useGlobalState(LAB); const layout = stack[0] ?? defaultLayout; const items = components.map((comp) => { @@ -1059,7 +1059,7 @@ const Sandbox: Ivette.ItemProps = { }; function ViewBar(): JSX.Element { - const groups = Ext.useElements(GROUP); + const groups = State.useElements(GROUP); const allGroups = groups.concat(Sandbox); return ( @@ -1098,7 +1098,7 @@ interface DockItemProps { function DockItem(props: DockItemProps): JSX.Element | null { const { compId, visible, position } = props; - const comp = Ext.useElement(COMPONENT, compId); + const comp = State.useElement(COMPONENT, compId); if (comp === undefined) return null; const label = comp.label ?? compId; const icon = 'QSPLIT.' + position; @@ -1167,7 +1167,7 @@ interface TabViewProps { function TabView(props: TabViewProps): JSX.Element | null { const { tab, tabKey } = props; const { viewId, custom, key } = tab; - const view = Ext.useElement(VIEW, viewId); + const view = State.useElement(VIEW, viewId); if (!view) return null; const selected = key === tabKey; const top = tab.stack[0] ?? defaultLayout; diff --git a/ivette/src/renderer/Sidebar.tsx b/ivette/src/renderer/Sidebar.tsx index 1e5a41d4b5d..f2da4a6c3fe 100644 --- a/ivette/src/renderer/Sidebar.tsx +++ b/ivette/src/renderer/Sidebar.tsx @@ -30,7 +30,7 @@ import { SideBar } from 'dome/frame/sidebars'; import { Catch } from 'dome/errors'; import { classes } from 'dome/misc/utils'; import { SidebarProps, SIDEBAR } from 'ivette'; -import * as Ext from './Extensions'; +import * as State from 'ivette/state'; /* -------------------------------------------------------------------------- */ /* --- SideBar Selector --- */ @@ -89,7 +89,7 @@ export function Panel(): JSX.Element { const [selected, setSelected] = Dome.useStringSettings('ivette.sidebar.selected'); - const sidebars = Ext.useElements(SIDEBAR); + const sidebars = State.useElements(SIDEBAR); // Ensures there is one selected sidebar React.useEffect(() => { diff --git a/ivette/webpack.renderer.js b/ivette/webpack.renderer.js index 454d3fb5427..d4bfd28832f 100644 --- a/ivette/webpack.renderer.js +++ b/ivette/webpack.renderer.js @@ -51,7 +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@ext': path.resolve( __dirname , 'src/renderer/Extensions' ), 'ivette@lab': path.resolve( __dirname , 'src/renderer/Laboratory' ), 'ivette@mode': path.resolve( __dirname , 'src/renderer/Actions' ), 'ivette': path.resolve( __dirname , 'src/ivette' ), -- GitLab