progressBar method

Widget progressBar({
  1. required double fraction,
  2. required Color color,
  3. double height = 6,
})

Slim rounded bar that drains as fraction (1 → 0) falls: the OTP expiry and the resend cooldown both use it.

Implementation

Widget progressBar({
  required double fraction,
  required Color color,
  double height = 6,
}) {
  return ClipRRect(
    borderRadius: BorderRadius.circular(999),
    child: Container(
      height: height,
      width: double.infinity,
      color: progressTrack,
      alignment: Alignment.centerLeft,
      child: AnimatedFractionallySizedBox(
        duration: const Duration(seconds: 1),
        curve: Curves.linear,
        widthFactor: fraction.clamp(0.0, 1.0),
        heightFactor: 1,
        child: DecoratedBox(
          decoration: BoxDecoration(
            color: color,
            borderRadius: BorderRadius.circular(999),
          ),
        ),
      ),
    ),
  );
}