focus-flow/apps/focus_flow_flutter/lib/widgets/timeline/timeline_geometry.dart

25 lines
671 B
Dart

import 'package:flutter/material.dart';
class TimelineGeometry {
const TimelineGeometry({
required this.visibleStart,
required this.visibleEnd,
required this.pixelsPerMinute,
this.minCardHeight = 48,
});
final TimeOfDay visibleStart;
final TimeOfDay visibleEnd;
final double pixelsPerMinute;
final double minCardHeight;
double yForMinutesSinceMidnight(int minutes) {
final start = visibleStart.hour * 60 + visibleStart.minute;
return (minutes - start) * pixelsPerMinute;
}
double heightForDuration(int minutes) {
final height = minutes * pixelsPerMinute;
return height < minCardHeight ? minCardHeight : height;
}
}