Skip to content

Commit

Permalink
Only reset module list's list state when modules_len changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Anthony-Eid committed Feb 6, 2025
1 parent a8e2b17 commit b0e6615
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions crates/debugger_ui/src/module_list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ pub struct ModuleList {
focus_handle: FocusHandle,
session: Entity<DebugSession>,
client_id: DebugAdapterClientId,
modules_len: usize,
}

impl ModuleList {
Expand Down Expand Up @@ -40,17 +41,22 @@ impl ModuleList {
session,
focus_handle,
client_id: *client_id,
modules_len: 0,
}
}

pub fn on_module_event(&mut self, event: &ModuleEvent, cx: &mut Context<Self>) {
if let Some(state) = self.session.read(cx).client_state(self.client_id) {
let module_len = state.update(cx, |state, cx| {
let modules_len = state.update(cx, |state, cx| {
state.handle_module_event(event);
state.modules(cx).len()
});

self.list.reset(module_len);
if modules_len != self.modules_len {
self.modules_len = modules_len;
self.list.reset(self.modules_len);
}

cx.notify()
}
}
Expand Down Expand Up @@ -101,7 +107,10 @@ impl Render for ModuleList {
state.update(cx, |state, cx| state.modules(cx).len())
});

self.list.reset(modules_len);
if modules_len != self.modules_len {
self.modules_len = modules_len;
self.list.reset(self.modules_len);
}

div()
.size_full()
Expand Down

0 comments on commit b0e6615

Please sign in to comment.