5555 FormResponse ,
5656 MultiSelectField ,
5757 MultiSelectFieldValue ,
58+ SingleSelectField ,
59+ SingleSelectFieldValue ,
5860 TextField ,
5961 TextFieldValue ,
6062)
@@ -257,6 +259,15 @@ async def _ask_form_questions(form_render: FormRender) -> FormResponse:
257259 validate = EmptyInputValidator () if field .required else None ,
258260 ).execute_async ()
259261 form_values [field .id ] = TextFieldValue (value = answer )
262+ elif isinstance (field , SingleSelectField ):
263+ choices = [Choice (value = opt .id , name = opt .label ) for opt in field .options ]
264+ answer = await inquirer .fuzzy ( # pyright: ignore[reportPrivateImportUsage]
265+ message = field .label + ":" ,
266+ choices = choices ,
267+ default = field .default_value ,
268+ validate = EmptyInputValidator () if field .required else None ,
269+ ).execute_async ()
270+ form_values [field .id ] = SingleSelectFieldValue (value = answer )
260271 elif isinstance (field , MultiSelectField ):
261272 choices = [Choice (value = opt .id , name = opt .label ) for opt in field .options ]
262273 answer = await inquirer .checkbox ( # pyright: ignore[reportPrivateImportUsage]
@@ -266,6 +277,7 @@ async def _ask_form_questions(form_render: FormRender) -> FormResponse:
266277 validate = EmptyInputValidator () if field .required else None ,
267278 ).execute_async ()
268279 form_values [field .id ] = MultiSelectFieldValue (value = answer )
280+
269281 elif isinstance (field , DateField ):
270282 year = await inquirer .text ( # pyright: ignore[reportPrivateImportUsage]
271283 message = f"{ field .label } (year):" ,
0 commit comments