Fix search: increase tasks height to 4, disable input initially to prevent focus steal

This commit is contained in:
Bendt
2025-12-19 16:44:15 -05:00
parent 44cfe3f714
commit ab6e080bb4
2 changed files with 8 additions and 9 deletions

View File

@@ -201,7 +201,7 @@ class CalendarApp(App):
yield Header() yield Header()
yield Horizontal( yield Horizontal(
Static("\uf002 Search:", classes="search-label"), # nf-fa-search Static("\uf002 Search:", classes="search-label"), # nf-fa-search
Input(placeholder="Search events...", id="search-input"), Input(placeholder="Search events...", id="search-input", disabled=True),
id="search-container", id="search-container",
classes="hidden", classes="hidden",
) )
@@ -597,6 +597,7 @@ Keybindings:
search_container = self.query_one("#search-container") search_container = self.query_one("#search-container")
search_container.remove_class("hidden") search_container.remove_class("hidden")
search_input = self.query_one("#search-input", Input) search_input = self.query_one("#search-input", Input)
search_input.disabled = False
search_input.focus() search_input.focus()
def action_clear_search(self) -> None: def action_clear_search(self) -> None:
@@ -610,6 +611,7 @@ Keybindings:
"hidden" "hidden"
): ):
search_input.value = "" search_input.value = ""
search_input.disabled = True
search_container.add_class("hidden") search_container.add_class("hidden")
search_results.add_class("hidden") search_results.add_class("hidden")
self._search_results = [] self._search_results = []

View File

@@ -157,23 +157,18 @@ class TasksApp(App):
#search-container { #search-container {
dock: top; dock: top;
height: 3; height: 4;
width: 100%; width: 100%;
background: $surface; background: $surface;
border-bottom: solid $primary; border-bottom: solid $primary;
padding: 0 1; padding: 0 1;
align: left middle;
} }
#search-container.hidden { #search-container.hidden {
display: none; display: none;
} }
#search-container > Horizontal {
height: 100%;
width: 100%;
align: left middle;
}
#search-container .search-label { #search-container .search-label {
width: auto; width: auto;
padding: 0 1; padding: 0 1;
@@ -256,7 +251,7 @@ class TasksApp(App):
yield Header() yield Header()
yield Horizontal( yield Horizontal(
Static("\uf002 Search:", classes="search-label"), # nf-fa-search Static("\uf002 Search:", classes="search-label"), # nf-fa-search
Input(placeholder="Filter tasks...", id="search-input"), Input(placeholder="Filter tasks...", id="search-input", disabled=True),
id="search-container", id="search-container",
classes="hidden", classes="hidden",
) )
@@ -887,6 +882,7 @@ Keybindings:
search_container = self.query_one("#search-container") search_container = self.query_one("#search-container")
search_container.remove_class("hidden") search_container.remove_class("hidden")
search_input = self.query_one("#search-input", Input) search_input = self.query_one("#search-input", Input)
search_input.disabled = False
search_input.focus() search_input.focus()
def action_clear_search(self) -> None: def action_clear_search(self) -> None:
@@ -897,6 +893,7 @@ Keybindings:
# Only act if search is visible or there's a query # Only act if search is visible or there's a query
if not search_container.has_class("hidden") or self.current_search_query: if not search_container.has_class("hidden") or self.current_search_query:
search_input.value = "" search_input.value = ""
search_input.disabled = True
self.current_search_query = "" self.current_search_query = ""
search_container.add_class("hidden") search_container.add_class("hidden")
self.load_tasks() self.load_tasks()