Skip to content
Snippets Groups Projects
Commit a4047b2e authored by Mateusz Żebrak's avatar Mateusz Żebrak
Browse files

Create ComposeFormResult typealias

parent bffce618
No related branches found
No related tags found
2 merge requests!600v1.27.5.21 Release,!558Remove welcome profile from TUIWorld, set TUIWorld profile during CreateProfile wizard instead
from __future__ import annotations
from typing import TYPE_CHECKING
from clive.__private.core.profile import Profile
from clive.__private.ui.forms.create_profile.create_profile_form_screen import CreateProfileFormScreen
from clive.__private.ui.forms.create_profile.new_key_alias_form_screen import NewKeyAliasFormScreen
from clive.__private.ui.forms.create_profile.set_account_form_screen import SetAccountFormScreen
from clive.__private.ui.forms.create_profile.welcome_form_screen import CreateProfileWelcomeFormScreen
from clive.__private.ui.forms.form import Form
if TYPE_CHECKING:
from collections.abc import Iterator
from clive.__private.ui.forms.form_screen import FormScreen
from clive.__private.ui.forms.form import ComposeFormResult, Form
class CreateProfileForm(Form):
......@@ -23,7 +16,7 @@ class CreateProfileForm(Form):
async def cleanup(self) -> None:
await self.world.switch_profile(None)
def compose_form(self) -> Iterator[type[FormScreen]]:
def compose_form(self) -> ComposeFormResult:
if not Profile.is_any_profile_saved():
yield CreateProfileWelcomeFormScreen
yield CreateProfileFormScreen
......
......@@ -2,20 +2,20 @@ from __future__ import annotations
import inspect
from abc import abstractmethod
from collections.abc import Callable, Iterator
from collections.abc import Callable
from queue import Queue
from typing import TYPE_CHECKING, Any, cast
from typing import Any, Iterable, cast
from clive.__private.core.commands.abc.command import Command
from clive.__private.core.contextual import ContextualHolder
from clive.__private.ui.clive_screen import CliveScreen
from clive.__private.ui.forms.form_context import FormContextT, NoContext
if TYPE_CHECKING:
from clive.__private.ui.forms.form_screen import FormScreen
from clive.__private.ui.forms.form_screen import FormScreen
PostAction = Command | Callable[[], Any]
ComposeFormResult = Iterable[type[FormScreen[FormContextT]]]
class Form(ContextualHolder[FormContextT], CliveScreen[None]):
MINIMUM_SCREEN_COUNT = 2 # Rationale: it makes no sense to have only one screen in the form
......@@ -29,7 +29,7 @@ class Form(ContextualHolder[FormContextT], CliveScreen[None]):
super().__init__(self._build_context())
@abstractmethod
def compose_form(self) -> Iterator[type[FormScreen[FormContextT]]]:
def compose_form(self) -> ComposeFormResult[FormContextT]:
"""Yield screens types in the order they should be displayed."""
@property
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment