Files
Termix/plugins/workspaces/frontend/index.mjs
T

35 lines
1.3 KiB
JavaScript

/**
* Frontend half of the workspaces plugin.
*
* WorkspacesPanel is a left-sidebar railView panel (opened from the rail,
* not a Tab), the same shape as FleetsPanel/HostsPanel/CredentialsPanel.
* None of those go through registerRailItem/registerTabComponent either --
* per src/ui/shell/pluginLoader.ts's own comment, a rail-view panel like
* this is rendered directly by AppShell.tsx rather than registered at
* runtime. WorkspacesPanel is reached today through a direct relative
* import in AppShell.tsx (../../plugins/workspaces/frontend/WorkspacesPanel),
* not through register() below.
*
* register()/unregister() still follow the same shape every other plugin's
* frontend entry does, so this is ready the moment a real frontend plugin
* loader exists -- see plugins/ssh-terminal/frontend/index.mjs and
* src/ui/tests/sidebar/plugin-extension-seam.test.tsx, which says outright
* "there is no plugin loader yet".
*/
export const id = "workspaces";
export const railViewId = "workspaces";
export async function register({ registerRailItem, icons }) {
registerRailItem?.({
id: railViewId,
icon: icons.LayoutTemplate,
labelKey: "nav.workspaces",
separatorAfter: true,
});
}
export async function unregister({ unregisterRailItem }) {
unregisterRailItem?.(railViewId);
}