mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 14:15:24 +00:00
feat: tailscale add host and copy ip, fix outbound fetch hang and plugin ESM warning
This commit is contained in:
1 parent
c21bca8cf0
commit
fbe736bc20
70 files changed
+1117
-1139
No files matched your search
@@ -1,4 +1,4 @@
|
||||
import { Puzzle } from "lucide-react";
|
||||
import { CircleSlash } from "lucide-react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { usePluginStore } from "./plugin-store";
|
||||
import { unregisteredViewStatus, type ViewKind } from "./view-ownership";
|
||||
@@ -55,7 +55,7 @@ export function PluginViewPlaceholder({
|
||||
data-status={status}
|
||||
className={`flex h-full w-full flex-col items-center justify-center gap-2 text-center ${compact ? "p-3" : "p-6"}`}
|
||||
>
|
||||
<Puzzle className="size-6 text-muted-foreground/40" />
|
||||
<CircleSlash className="size-6 text-muted-foreground/40" />
|
||||
<span className="text-sm font-semibold text-muted-foreground">
|
||||
{title}
|
||||
</span>
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
setPluginSummaries,
|
||||
} from "./plugin-store";
|
||||
import { workspaceFrontends, workspaceLocales } from "./workspace-plugins";
|
||||
import { syncHostPluginsTab } from "@/settings/host-plugins-tab";
|
||||
import { syncHostFeatureTabs } from "@/settings/host-feature-tabs";
|
||||
|
||||
/**
|
||||
* Loads plugin frontends into the running shell.
|
||||
@@ -273,8 +273,6 @@ async function loadNamespaces(summaries: PluginSummary[]): Promise<void> {
|
||||
|
||||
async function reconcile(summaries: PluginSummary[]): Promise<void> {
|
||||
setPluginSummaries(summaries);
|
||||
// The host editor's Plugins tab exists only while something fills it.
|
||||
syncHostPluginsTab(summaries);
|
||||
await loadNamespaces(summaries);
|
||||
|
||||
const { order, blocked } = orderForActivation(summaries);
|
||||
@@ -301,6 +299,9 @@ async function reconcile(summaries: PluginSummary[]): Promise<void> {
|
||||
}
|
||||
|
||||
await activateConcurrently(order);
|
||||
// After activation, so a plugin that registered its own host editor
|
||||
// section is not given a second, generated one.
|
||||
syncHostFeatureTabs(summaries);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -87,6 +87,7 @@ export const shell: TabShellCallbacks = {
|
||||
renameTab: (...args) => callbacks?.renameTab(...args),
|
||||
openRailView: (...args) => callbacks?.openRailView(...args),
|
||||
closeRailView: (...args) => callbacks?.closeRailView(...args),
|
||||
openHostEditor: (...args) => callbacks?.openHostEditor?.(...args),
|
||||
saveQuickConnect: (...args) =>
|
||||
callbacks?.saveQuickConnect?.(...args) ?? Promise.resolve(),
|
||||
};
|
||||
|
||||
@@ -80,6 +80,7 @@ function recordingShell(calls: ShellCall[]): TabShellCallbacks {
|
||||
renameTab: record("renameTab"),
|
||||
openRailView: record("openRailView"),
|
||||
closeRailView: record("closeRailView"),
|
||||
openHostEditor: record("openHostEditor"),
|
||||
saveQuickConnect: async (...args) => {
|
||||
calls.push({ method: "saveQuickConnect", args });
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user