- Check if we're in Status view
- Set
is_refreshing = trueand all field refresh states immediately - Spawn async task to run
refresh_all_fields - The spawned task runs refresh for each validator/node
- Footer: "r: Refresh | 🔄 Refreshing..."
- Status field: "🔄 Checking... (node-label)"
- Identity field: "🔄 Refreshing..."
- Client/Version field: "🔄 Detecting..."
- Press 't' to toggle refresh states manually
- This helps verify if UI updates are working
-
Test with 't' key first
- Press 't' to toggle refresh indicators
- If indicators show, UI updates are working
- If not, there's an issue with state propagation
-
Test with 'r' key
- Press 'r' to trigger actual refresh
- Watch for loading indicators
- Check if UI freezes
- UI not updating: Event loop might be blocked
- State not propagating: RwLock contention
- SSH commands blocking: Even in spawned tasks, SSH might block the runtime
If 't' works but 'r' doesn't:
- The issue is likely in the SSH command execution
- Consider using tokio::task::spawn_blocking for SSH operations
If 't' doesn't work:
- The UI state updates aren't being reflected
- Check the draw functions and state reading