build method

  1. @override
Widget build(
  1. BuildContext context,
  2. TimerBuilder model
)
override

Builds the UI according to the state in model.

Implementation

@override
Widget build(BuildContext context, TimerBuilder model) => AlertDialog(
    title: const Text("Start a timer"),
    content: Column(
      mainAxisSize: MainAxisSize.min,
      children: [
        SizedBox(
          height: 50,
          width: double.infinity,
          child: TextField(
            controller: model.nameController,
            onChanged: model.update,
            decoration: const InputDecoration(hintText: "Timer Name"),
          ),
        ),
        SizedBox(
          height: 50,
          width: double.infinity,
          child: TextField(
            onChanged: model.duration.update,
            decoration: const InputDecoration(hintText: "Number of Minutes"),
            inputFormatters: [FilteringTextInputFormatter.allow(RegExp(r"\d"))],
          ),
        ),
      ],
    ),
    actions: [
      TextButton(child: const Text("Cancel"), onPressed: () => Navigator.of(context).pop()),
      ElevatedButton(
        onPressed: model.isValid ? () { model.start(); Navigator.of(context).pop(); } : null,
        child: const Text("Save"),
      ),
    ],
);