mirror of
https://github.com/home-assistant/core.git
synced 2025-11-10 03:19:34 +00:00
Allow next_step to be a string (#82647)
* Allow next_step to be a string * Adjust docstrings * Add test
This commit is contained in:
@@ -32,18 +32,22 @@ class SchemaFlowFormStep:
|
||||
vol.Schema | None,
|
||||
] | None
|
||||
|
||||
# Optional function to validate user input.
|
||||
# The validate_user_input function is called if the schema validates successfully.
|
||||
# The validate_user_input function is passed the user input from the current step.
|
||||
# The validate_user_input should raise SchemaFlowError is user input is invalid.
|
||||
validate_user_input: Callable[[dict[str, Any]], dict[str, Any]] = lambda x: x
|
||||
"""Optional function to validate user input.
|
||||
|
||||
# Optional function to identify next step.
|
||||
# The next_step function is called if the schema validates successfully or if no
|
||||
# schema is defined. The next_step function is passed the union of config entry
|
||||
# options and user input from previous steps.
|
||||
# If next_step is None, the flow is ended with FlowResultType.CREATE_ENTRY.
|
||||
next_step: Callable[[dict[str, Any]], str] | None = None
|
||||
- The `validate_user_input` function is called if the schema validates successfully.
|
||||
- The `validate_user_input` function is passed the user input from the current step.
|
||||
- The `validate_user_input` should raise `SchemaFlowError` is user input is invalid.
|
||||
"""
|
||||
|
||||
next_step: Callable[[dict[str, Any]], str] | str | None = None
|
||||
"""Optional property to identify next step.
|
||||
|
||||
- If `next_step` is a function, it is called if the schema validates successfully or
|
||||
if no schema is defined. The `next_step` function is passed the union of config entry
|
||||
options and user input from previous steps.
|
||||
- If `next_step` is None, the flow is ended with `FlowResultType.CREATE_ENTRY`.
|
||||
"""
|
||||
|
||||
# Optional function to allow amending a form schema.
|
||||
# The update_form_schema function is called before async_show_form is called. The
|
||||
@@ -140,7 +144,10 @@ class SchemaCommonFlowHandler:
|
||||
# Flow done, create entry or update config entry options
|
||||
return self._handler.async_create_entry(data=self._options)
|
||||
|
||||
next_step_id = form_step.next_step(self._options)
|
||||
if isinstance(form_step.next_step, str):
|
||||
next_step_id = form_step.next_step
|
||||
else:
|
||||
next_step_id = form_step.next_step(self._options)
|
||||
|
||||
return self._show_next_step(next_step_id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user