progressBar method
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),
),
),
),
),
);
}