fix(electron): preserve desktop hosts when saving SSH instances (#1138)
Co-authored-by: Isaac Sanchez <isanchez-hawkins@arize.com>
This commit is contained in:
committed by
GitHub
co-authored by
Isaac Sanchez
parent
c827d6b8df
commit
9fb3e5d764
@@ -579,16 +579,20 @@ export class ElectronSshManager {
|
||||
|
||||
async setInstances(config) {
|
||||
const root = readJsonRoot(this.settingsFilePath);
|
||||
const previousSshIds = new Set(
|
||||
(Array.isArray(root.desktopSshInstances) ? root.desktopSshInstances : [])
|
||||
.map((entry) => String(entry?.id || '').trim())
|
||||
.filter((id) => id && id !== LOCAL_HOST_ID)
|
||||
);
|
||||
const instances = Array.isArray(config?.instances) ? config.instances.map((instance) => this.sanitizeInstance(instance)) : [];
|
||||
root.desktopSshInstances = instances;
|
||||
|
||||
const previousIds = new Set((Array.isArray(root.desktopHosts) ? root.desktopHosts : []).map((entry) => String(entry?.id || '').trim()).filter(Boolean));
|
||||
const hosts = Array.isArray(root.desktopHosts) ? root.desktopHosts.filter(Boolean) : [];
|
||||
const nextIds = new Set(instances.map((instance) => instance.id));
|
||||
|
||||
const filteredHosts = hosts.filter((entry) => {
|
||||
const id = String(entry?.id || '').trim();
|
||||
return id && !(previousIds.has(id) && !nextIds.has(id));
|
||||
return id && id !== LOCAL_HOST_ID && !(previousSshIds.has(id) && !nextIds.has(id));
|
||||
});
|
||||
|
||||
for (const instance of instances) {
|
||||
@@ -605,7 +609,7 @@ export class ElectronSshManager {
|
||||
}
|
||||
|
||||
root.desktopHosts = filteredHosts;
|
||||
if (typeof root.desktopDefaultHostId === 'string' && previousIds.has(root.desktopDefaultHostId) && !nextIds.has(root.desktopDefaultHostId)) {
|
||||
if (typeof root.desktopDefaultHostId === 'string' && previousSshIds.has(root.desktopDefaultHostId) && !nextIds.has(root.desktopDefaultHostId)) {
|
||||
root.desktopDefaultHostId = LOCAL_HOST_ID;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user