Skip to content

Commit 578d71b

Browse files
Merge pull request #17 from koenvervloesem/improve_performance
Make address filter a reactive attribute
2 parents 653842e + 527e3a2 commit 578d71b

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/humble_explorer/app.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from bleak.backends.scanner import AdvertisementData
88
from rich.style import Style
99
from textual.app import App, ComposeResult
10+
from textual.reactive import reactive
1011
from textual.widgets import Checkbox, DataTable, Footer, Header, Input
1112

1213
if system() == "Linux":
@@ -38,6 +39,8 @@ class BLEScannerApp(App[None]):
3839
("s", "toggle_scan", "Toggle scan"),
3940
]
4041

42+
address_filter = reactive("")
43+
4144
def __init__(self, cli_args: Namespace):
4245
"""Initialize BLE scanner."""
4346

@@ -62,9 +65,6 @@ def __init__(self, cli_args: Namespace):
6265
self.scanner = BleakScanner(**scanner_kwargs)
6366
self.scanning = False
6467

65-
# Initialize empty address filter
66-
self.address_filter = ""
67-
6868
# Initialize empty list of advertisements
6969
self.advertisements = []
7070

@@ -150,6 +150,10 @@ def on_input_changed(self, message: Input.Changed) -> None:
150150
else:
151151
self.address_filter = ""
152152

153+
def watch_address_filter(self, old_filter: str, new_filter: str) -> None:
154+
"""Watch method called when the reactive attribute address_filter
155+
changes.
156+
"""
153157
self.recreate_table()
154158

155159
def recreate_table(self):

0 commit comments

Comments
 (0)