1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

simplifying main code

Signed-off-by: Sebastian Malton <smalton@mirantis.com>
This commit is contained in:
Sebastian Malton 2020-08-04 16:49:18 -04:00
parent b0acf0a472
commit b0801c17fe

View File

@ -22,10 +22,6 @@ interface ClusterIconOrdering {
[workspaceId: string]: ClusterId[] [workspaceId: string]: ClusterId[]
} }
interface ClusterIconOrderingMap {
[id: string]: number
}
export interface ClusterStoreModel { export interface ClusterStoreModel {
activeCluster?: ClusterId; // last opened cluster activeCluster?: ClusterId; // last opened cluster
clusters?: ClusterModel[] clusters?: ClusterModel[]
@ -123,26 +119,8 @@ export class ClusterStore extends BaseStore<ClusterStoreModel> {
return this.clusters.get(id); return this.clusters.get(id);
} }
getByWorkspaceId(workspaceId: string, sorted = true): Cluster[] { getByWorkspaceId(workspaceId: string): Cluster[] {
const ordering = this.clusterOrders[workspaceId]?.reduce((acc: ClusterIconOrderingMap, cur, i) => { acc[cur] = i; return acc; }, {}); return this.clusterOrders[workspaceId].map(clusterId => this.clusters.get(clusterId));
const clusters = this.clustersList.filter(cluster => cluster.workspace === workspaceId);
if (!ordering || !sorted) {
return clusters;
}
const sortedClusters = [];
const unsortedClusters = [];
for (const cluster of clusters) {
const index = ordering[cluster.id];
if (typeof index === "number" && index >= 0) {
sortedClusters[index] = cluster;
} else {
unsortedClusters.push(cluster);
}
}
return [...sortedClusters.filter(c => c), ...unsortedClusters];
} }
@action @action
@ -172,7 +150,7 @@ export class ClusterStore extends BaseStore<ClusterStoreModel> {
@action @action
removeByWorkspaceId(workspaceId: string) { removeByWorkspaceId(workspaceId: string) {
this.getByWorkspaceId(workspaceId, false).forEach(cluster => { this.getByWorkspaceId(workspaceId).forEach(cluster => {
this.removeById(cluster.id) this.removeById(cluster.id)
}) })
} }
@ -186,7 +164,7 @@ export class ClusterStore extends BaseStore<ClusterStoreModel> {
this.clusterOrders = iconOrder; this.clusterOrders = iconOrder;
// update new clusters // update new clusters
clusters.forEach(clusterModel => { for (const clusterModel of clusters) {
let cluster = currentClusters.get(clusterModel.id); let cluster = currentClusters.get(clusterModel.id);
if (cluster) { if (cluster) {
cluster.updateModel(clusterModel); cluster.updateModel(clusterModel);
@ -194,7 +172,14 @@ export class ClusterStore extends BaseStore<ClusterStoreModel> {
cluster = new Cluster(clusterModel); cluster = new Cluster(clusterModel);
} }
newClusters.set(clusterModel.id, cluster); newClusters.set(clusterModel.id, cluster);
});
if (!this.clusterOrders[cluster.workspace]) {
this.clusterOrders[cluster.workspace] = [];
}
if (!this.clusterOrders[cluster.workspace].includes(cluster.id)) {
this.clusterOrders[cluster.workspace].push(cluster.id);
}
}
// update removed clusters // update removed clusters
currentClusters.forEach(cluster => { currentClusters.forEach(cluster => {