mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 14:15:24 +00:00
fix: finish 2.9.0 plugin moves and get every check green
This commit is contained in:
1 parent
8c1e02af89
commit
6489b62ece
335 files changed
+29878
-17749
No files matched your search
@@ -33,6 +33,7 @@ import { isSessionTabType } from "@/shell/tab-registry";
|
||||
import { isElectron } from "@/lib/electron";
|
||||
import type { Tab, TabType, SplitMode } from "@/types/ui-types";
|
||||
import { SPLIT_MODES, PANE_COUNTS } from "@/lib/theme";
|
||||
import { ActionSlot } from "@/shell/ActionSlot";
|
||||
|
||||
/**
|
||||
* Tabs holding a live connection that can be refreshed: the registered
|
||||
@@ -686,6 +687,26 @@ export function TabBar({
|
||||
{t("nav.openFileManager")}
|
||||
</button>
|
||||
)}
|
||||
{/* Plugins add entries here, invoked with the tab's surface handle. */}
|
||||
<ActionSlot
|
||||
slotId="tab.menu"
|
||||
when={{ tab: ctxTab, handle: ctxTab.terminalRef?.current }}
|
||||
context={() => [ctxTab.terminalRef?.current]}
|
||||
renderItem={(contribution, invoke) => (
|
||||
<button
|
||||
className="flex items-center gap-2 w-full px-3 py-1.5 text-xs text-left hover:bg-accent hover:text-accent-foreground"
|
||||
onClick={() => {
|
||||
invoke();
|
||||
setContextTabId(null);
|
||||
}}
|
||||
>
|
||||
{contribution.icon && (
|
||||
<contribution.icon className="size-3" />
|
||||
)}
|
||||
{t(contribution.titleKey)}
|
||||
</button>
|
||||
)}
|
||||
/>
|
||||
<button
|
||||
className="flex items-center gap-2 w-full px-3 py-1.5 text-xs text-left hover:bg-accent hover:text-accent-foreground"
|
||||
onClick={() => {
|
||||
|
||||
@@ -111,8 +111,8 @@ export function TabProvider({ children }: TabProviderProps) {
|
||||
|
||||
const computeUniqueTitle = useCallback(
|
||||
(tabType: Tab["type"], desiredTitle: string | undefined): string => {
|
||||
const defaultTitle =
|
||||
tabType === "file_manager" ? t("nav.fileManager") : t("nav.terminal");
|
||||
const titleKey = getTabType(tabType)?.titleKey;
|
||||
const defaultTitle = titleKey ? t(titleKey) : t("nav.terminal");
|
||||
const baseTitle = (desiredTitle || defaultTitle).trim();
|
||||
const match = baseTitle.match(/^(.*) \((\d+)\)$/);
|
||||
const root = match ? match[1] : baseTitle;
|
||||
@@ -181,7 +181,7 @@ export function TabProvider({ children }: TabProviderProps) {
|
||||
const instanceId = `tab_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
||||
const isCommandTarget = !!getTabType(tabData.type)?.commandTarget;
|
||||
const needsUniqueTitle =
|
||||
isCommandTarget || tabData.type === "file_manager";
|
||||
isCommandTarget || !!getTabType(tabData.type)?.multiInstance;
|
||||
const singletonTitleKey = getTabType(tabData.type)?.singleton
|
||||
? getTabType(tabData.type)?.titleKey
|
||||
: undefined;
|
||||
|
||||
Reference in new issue
Block a user