Skip to content

Commit 5d6836a

Browse files
committed
add _read_lottery_selection() helper method
patch bump
1 parent dbbc32f commit 5d6836a

2 files changed

Lines changed: 18 additions & 7 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "lottery-tui"
3-
version = "0.2.7"
3+
version = "0.2.8"
44
description = "A terminal user interface for lottery games."
55
authors = [{ name = "onyx-and-iris", email = "code@onyxandiris.online" }]
66
dependencies = ["textual>=8.0.0", "loguru>=0.7.3"]

src/lottery_tui/tui.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
from typing import NoReturn
2+
13
from rich.text import Text
24
from textual.app import App, ComposeResult
35
from textual.containers import Container
6+
from textual.events import Key
7+
from textual.types import SelectType
48
from textual.widgets import Button, Label, Select, Static
59

610
from .lottery import request_lottery_obj
@@ -30,29 +34,36 @@ def compose(self) -> ComposeResult:
3034
id='main-container',
3135
)
3236

33-
def on_key(self, event):
37+
def on_key(self, event: Key) -> NoReturn:
3438
"""Handle key events."""
3539
if event.key == 'q':
3640
self.exit()
3741

38-
def on_button_pressed(self, event):
42+
def on_button_pressed(self, event: Button.Pressed) -> None:
3943
"""Handle button press events."""
4044
if event.button.id == 'draw-button':
4145
self._draw_button_handler()
4246

43-
def _draw_button_handler(self):
47+
def _draw_button_handler(self) -> None:
4448
"""Handle the draw button press."""
45-
if self.query_one('#lottery-select').is_blank():
49+
if self._read_lottery_selection() is None:
4650
self._update_result_label(
4751
Text('Please select a lottery before drawing.', style='bold #ff8c42')
4852
)
4953
return
5054

51-
lottery_obj = request_lottery_obj(self.query_one('#lottery-select').value)
55+
lottery_obj = request_lottery_obj(self._read_lottery_selection())
5256
result = lottery_obj.draw()
5357
self._update_result_label(str(result))
5458

55-
def _update_result_label(self, message: str):
59+
def _read_lottery_selection(self) -> SelectType | None:
60+
"""Read the selected lottery from the dropdown."""
61+
select_widget = self.query_one('#lottery-select')
62+
if select_widget.is_blank():
63+
return None
64+
return select_widget.value
65+
66+
def _update_result_label(self, message: str) -> None:
5667
"""Update the result label with a new message."""
5768
self.query_one('#result-label').update(message)
5869

0 commit comments

Comments
 (0)