feat: remove state preservation

This commit is contained in:
2025-09-19 21:12:15 +02:00
parent 262b03413a
commit 0aca182de9
6 changed files with 38 additions and 46 deletions

View File

@@ -1,4 +1,4 @@
// Cluster Members Component with enhanced state preservation
// Cluster Members Component
class ClusterMembersComponent extends Component {
constructor(container, viewModel, eventBus) {
super(container, viewModel, eventBus);
@@ -142,7 +142,7 @@ class ClusterMembersComponent extends Component {
logger.debug('ClusterMembersComponent: View model listeners set up');
}
// Handle members update with state preservation
// Handle members update
handleMembersUpdate(newMembers, previousMembers) {
logger.debug('ClusterMembersComponent: Members updated:', { newMembers, previousMembers });
@@ -166,9 +166,9 @@ class ClusterMembersComponent extends Component {
return;
}
if (this.shouldPreserveState(newMembers, previousMembers)) {
// Perform partial update to preserve UI state
logger.debug('ClusterMembersComponent: Preserving state, performing partial update');
if (this.shouldSkipFullRender(newMembers, previousMembers)) {
// Perform partial update
logger.debug('ClusterMembersComponent: Skipping full render, performing partial update');
this.updateMembersPartially(newMembers, previousMembers);
} else {
// Full re-render if structure changed significantly
@@ -242,8 +242,8 @@ class ClusterMembersComponent extends Component {
}
}
// Check if we should preserve UI state during update
shouldPreserveState(newMembers, previousMembers) {
// Check if we should skip full re-render during update
shouldSkipFullRender(newMembers, previousMembers) {
if (!previousMembers || !Array.isArray(previousMembers)) return false;
if (!Array.isArray(newMembers)) return false;
@@ -254,7 +254,7 @@ class ClusterMembersComponent extends Component {
const newIps = new Set(newMembers.map(m => m.ip));
const prevIps = new Set(previousMembers.map(m => m.ip));
// If IPs are the same, we can preserve state
// If IPs are the same, we can skip full re-render
return newIps.size === prevIps.size &&
[...newIps].every(ip => prevIps.has(ip));
}
@@ -269,9 +269,9 @@ class ClusterMembersComponent extends Component {
return false;
}
// Update members partially to preserve UI state
// Update members partially
updateMembersPartially(newMembers, previousMembers) {
logger.debug('ClusterMembersComponent: Performing partial update to preserve UI state');
logger.debug('ClusterMembersComponent: Performing partial update');
// Build previous map by IP for stable diffs
const prevByIp = new Map((previousMembers || []).map(m => [m.ip, m]));