2022-04-02 12:31:53 -05:00
|
|
|
import 'package:flutter/material.dart';
|
2023-11-09 16:19:53 +00:00
|
|
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
2026-02-05 12:16:42 -05:00
|
|
|
import 'package:immich_mobile/presentation/widgets/images/remote_image_provider.dart';
|
|
|
|
|
import 'package:immich_mobile/presentation/widgets/images/thumbnail.widget.dart';
|
2024-06-25 00:24:57 +10:00
|
|
|
import 'package:immich_mobile/widgets/search/thumbnail_with_info_container.dart';
|
2022-04-02 12:31:53 -05:00
|
|
|
|
|
|
|
|
class ThumbnailWithInfo extends StatelessWidget {
|
2024-06-25 00:24:57 +10:00
|
|
|
const ThumbnailWithInfo({
|
2024-01-27 16:14:32 +00:00
|
|
|
super.key,
|
2022-07-13 07:23:48 -05:00
|
|
|
required this.textInfo,
|
2023-02-13 06:29:45 -06:00
|
|
|
this.imageUrl,
|
|
|
|
|
this.noImageIcon,
|
2023-03-28 10:34:06 -05:00
|
|
|
this.borderRadius = 10,
|
2024-06-25 00:24:57 +10:00
|
|
|
this.onTap,
|
2024-01-27 16:14:32 +00:00
|
|
|
});
|
2022-04-02 12:31:53 -05:00
|
|
|
|
|
|
|
|
final String textInfo;
|
2023-02-13 06:29:45 -06:00
|
|
|
final String? imageUrl;
|
2024-06-25 00:24:57 +10:00
|
|
|
final VoidCallback? onTap;
|
2023-02-13 06:29:45 -06:00
|
|
|
final IconData? noImageIcon;
|
2024-06-25 00:24:57 +10:00
|
|
|
final double borderRadius;
|
2022-04-02 12:31:53 -05:00
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
2025-07-25 08:07:22 +05:30
|
|
|
var textAndIconColor = context.isDarkTheme ? Colors.grey[100] : Colors.grey[700];
|
2024-06-25 00:24:57 +10:00
|
|
|
return ThumbnailWithInfoContainer(
|
|
|
|
|
onTap: onTap,
|
|
|
|
|
borderRadius: borderRadius,
|
|
|
|
|
label: textInfo,
|
|
|
|
|
child: imageUrl != null
|
|
|
|
|
? ClipRRect(
|
2023-03-28 10:34:06 -05:00
|
|
|
borderRadius: BorderRadius.circular(borderRadius),
|
2026-02-05 12:16:42 -05:00
|
|
|
child: Thumbnail(imageProvider: RemoteImageProvider(url: imageUrl!)),
|
2024-06-25 00:24:57 +10:00
|
|
|
)
|
2025-07-29 00:34:03 +05:30
|
|
|
: Center(child: Icon(noImageIcon ?? Icons.not_listed_location, color: textAndIconColor)),
|
2022-04-02 12:31:53 -05:00
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|