feature: Details screen rework (#190)

Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
PartyDonut 2024-12-27 15:21:47 +01:00 committed by GitHub
parent 473e817e0f
commit d2138da785
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 462 additions and 394 deletions

View file

@ -10,15 +10,19 @@ import 'package:fladder/providers/settings/client_settings_provider.dart';
class FladderImage extends ConsumerWidget {
final ImageData? image;
final Widget Function(BuildContext context, Widget child, int? frame, bool wasSynchronouslyLoaded)? frameBuilder;
final Widget Function(BuildContext context, Object object, StackTrace? stack)? imageErrorBuilder;
final Widget? placeHolder;
final BoxFit fit;
final AlignmentGeometry? alignment;
final bool enableBlur;
final bool blurOnly;
const FladderImage({
required this.image,
this.frameBuilder,
this.imageErrorBuilder,
this.placeHolder,
this.fit = BoxFit.cover,
this.alignment,
this.enableBlur = false,
this.blurOnly = false,
super.key,
@ -50,7 +54,9 @@ class FladderImage extends ConsumerWidget {
fit: fit,
placeholderFit: fit,
excludeFromSemantics: true,
alignment: alignment ?? Alignment.center,
filterQuality: FilterQuality.high,
imageErrorBuilder: imageErrorBuilder,
placeholderFilterQuality: FilterQuality.low,
image: newImage.imageProvider,
)

View file

@ -6,7 +6,7 @@ extension DurationExtensions on Duration? {
final duration = this!;
final hours = duration.inHours != 0 ? '${duration.inHours.toString()}h' : null;
final minutes = duration.inMinutes % 60 != 0 ? '${duration.inMinutes % 60}m'.padLeft(3, '0') : null;
final seconds = duration.inHours == 0 ? '${duration.inSeconds % 60}s'.padLeft(3, '0') : null;
final seconds = duration.inSeconds % 60 != 0 ? '${duration.inSeconds % 60}s'.padLeft(3, '0') : null;
final result = [hours, minutes, seconds].whereNotNull().map((e) => e).join(' ');
return result.isNotEmpty ? result : null;
}

View file

@ -14,6 +14,7 @@ extension StringExtensions on String {
}
String maxLength({int limitTo = 75}) {
if (isEmpty) return this;
if (length > limitTo) {
return "${substring(0, limitTo.clamp(0, length))}...";
} else {