mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-30 15:15:24 +00:00
fix: load plugin strings on guest pages, plugin wording and drop unused keys
This commit is contained in:
1 parent
f803bfc140
commit
406766eddd
19 files changed
+81
-292
No files matched your search
@@ -568,7 +568,7 @@ export function AdminRolesSection({
|
||||
<span className="text-accent-brand">*</span>
|
||||
</label>
|
||||
<Input
|
||||
placeholder="e.g., developer"
|
||||
placeholder="developer"
|
||||
value={newRoleName}
|
||||
onChange={(e) => setNewRoleName(e.target.value)}
|
||||
className="text-xs"
|
||||
@@ -580,7 +580,7 @@ export function AdminRolesSection({
|
||||
<span className="text-accent-brand">*</span>
|
||||
</label>
|
||||
<Input
|
||||
placeholder="e.g., Developer"
|
||||
placeholder="Developer"
|
||||
value={newRoleDisplayName}
|
||||
onChange={(e) => setNewRoleDisplayName(e.target.value)}
|
||||
className="text-xs"
|
||||
|
||||
@@ -146,7 +146,7 @@ export function HostEditorGeneralTab({
|
||||
return (
|
||||
<>
|
||||
<HostOnly>
|
||||
{/* Protocols — enable/disable each connection type */}
|
||||
{/* Protocols, enable/disable each connection type */}
|
||||
<SectionCard
|
||||
title={t("hosts.protocols")}
|
||||
icon={<Globe className="size-3.5" />}
|
||||
|
||||
@@ -493,7 +493,7 @@ export function UserProfilePanel({
|
||||
const { theme, setTheme } = useTheme();
|
||||
const localSnapshot = useRef<Record<string, string | null>>({});
|
||||
|
||||
// Appearance state — initialized from localStorage
|
||||
// Appearance state, initialized from localStorage
|
||||
const [accentColor, setAccentColor] = useState(
|
||||
() => localStorage.getItem("termix-accent") ?? "#f59145",
|
||||
);
|
||||
@@ -534,7 +534,7 @@ export function UserProfilePanel({
|
||||
}
|
||||
}, [linkedAccount, storageMode, onPrefsChange]);
|
||||
|
||||
// Settings toggles — all backed by localStorage
|
||||
// Settings toggles, all backed by localStorage
|
||||
const [commandPaletteEnabled, setCommandPaletteEnabled] = useState(() => {
|
||||
const v = localStorage.getItem("commandPaletteShortcutEnabled");
|
||||
return v !== null ? v === "true" : true;
|
||||
@@ -1137,7 +1137,7 @@ export function UserProfilePanel({
|
||||
userId={userId}
|
||||
/>
|
||||
|
||||
{/* Storage mode toggle — only meaningful once a remote server is
|
||||
{/* Storage mode toggle, only meaningful once a remote server is
|
||||
connected; with no sync there's nowhere for "cloud" to sync to,
|
||||
so this stays forced to local storage and hidden. */}
|
||||
{(!isElectron() || isLinked) && shows("data") && (
|
||||
@@ -1224,7 +1224,7 @@ export function UserProfilePanel({
|
||||
{t("newUi.sidebar.userProfile.usernameLabel")}
|
||||
</span>
|
||||
<span className="text-sm font-semibold mt-0.5">
|
||||
{accountUsername || "—"}
|
||||
{accountUsername || "-"}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex flex-col py-2">
|
||||
@@ -1233,7 +1233,7 @@ export function UserProfilePanel({
|
||||
</span>
|
||||
<div className="flex flex-wrap gap-1 mt-0.5">
|
||||
<span className="inline-flex items-center px-1.5 py-0.5 text-[10px] font-semibold border border-accent-brand/40 bg-accent-brand/10 text-accent-brand w-fit">
|
||||
{userRole || "—"}
|
||||
{userRole || "-"}
|
||||
</span>
|
||||
{userRoles.map((r) => (
|
||||
<span
|
||||
@@ -1252,7 +1252,7 @@ export function UserProfilePanel({
|
||||
{t("newUi.sidebar.userProfile.authMethodLabel")}
|
||||
</span>
|
||||
<span className="text-sm font-semibold mt-0.5">
|
||||
{authMethod || "—"}
|
||||
{authMethod || "-"}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex flex-col py-2">
|
||||
|
||||
@@ -1282,7 +1282,7 @@ export function HostItem({
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Action tray — slides open on hover (default) or via chevron in click-tray mode */}
|
||||
{/* Action tray, slides open on hover (default) or via chevron in click-tray mode */}
|
||||
{!isCompact && (
|
||||
<div className={trayVisibilityClass}>
|
||||
{tokens.showResourceRow &&
|
||||
|
||||
@@ -617,7 +617,7 @@ export function SidebarTree({
|
||||
pin: host.pin ?? false,
|
||||
notes: host.notes,
|
||||
// Key material is never sent to the frontend, so a cloned key-auth
|
||||
// host would have authType "key" with no key — unusable. Reset to
|
||||
// host would have authType "key" with no key, which is unusable. Reset to
|
||||
// password so the clone is in a connectable (editable) state.
|
||||
authType: host.authType === "key" ? "password" : host.authType,
|
||||
password: host.authType === "key" ? null : (host.password ?? null),
|
||||
|
||||
Reference in new issue
Block a user