Fix search: increase tasks height to 4, disable input initially to prevent focus steal
This commit is contained in:
@@ -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 = []
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user