mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	* Fixed app not resuming backup after closing and reopening the app * Fixed cosmetic effect of backup button doesn't change state right away after pressing start backup * Fixed grammar * Fixed deep copy problem that cause incorrect asset count when backing up * Format code
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:cached_network_image/cached_network_image.dart';
 | |
| import 'package:flutter/material.dart';
 | |
| import 'package:hive_flutter/hive_flutter.dart';
 | |
| import 'package:immich_mobile/constants/hive_box.dart';
 | |
| import 'package:immich_mobile/utils/capitalize_first_letter.dart';
 | |
| 
 | |
| class ThumbnailWithInfo extends StatelessWidget {
 | |
|   const ThumbnailWithInfo(
 | |
|       {Key? key,
 | |
|       required this.textInfo,
 | |
|       required this.imageUrl,
 | |
|       required this.onTap})
 | |
|       : super(key: key);
 | |
| 
 | |
|   final String textInfo;
 | |
|   final String imageUrl;
 | |
|   final Function onTap;
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context) {
 | |
|     var box = Hive.box(userInfoBox);
 | |
| 
 | |
|     return GestureDetector(
 | |
|       onTap: () {
 | |
|         onTap();
 | |
|       },
 | |
|       child: Padding(
 | |
|         padding: const EdgeInsets.only(right: 8.0),
 | |
|         child: SizedBox(
 | |
|           width: MediaQuery.of(context).size.width / 2,
 | |
|           child: Stack(
 | |
|             alignment: Alignment.bottomCenter,
 | |
|             children: [
 | |
|               Container(
 | |
|                 foregroundDecoration: BoxDecoration(
 | |
|                   borderRadius: BorderRadius.circular(10),
 | |
|                   color: Colors.black26,
 | |
|                 ),
 | |
|                 child: ClipRRect(
 | |
|                   borderRadius: BorderRadius.circular(10),
 | |
|                   child: CachedNetworkImage(
 | |
|                     width: 250,
 | |
|                     height: 250,
 | |
|                     fit: BoxFit.cover,
 | |
|                     imageUrl: imageUrl,
 | |
|                     httpHeaders: {
 | |
|                       "Authorization": "Bearer ${box.get(accessTokenKey)}"
 | |
|                     },
 | |
|                   ),
 | |
|                 ),
 | |
|               ),
 | |
|               Positioned(
 | |
|                 bottom: 8,
 | |
|                 left: 10,
 | |
|                 child: SizedBox(
 | |
|                   width: MediaQuery.of(context).size.width / 3,
 | |
|                   child: Text(
 | |
|                     textInfo.capitalizeFirstLetter(),
 | |
|                     style: const TextStyle(
 | |
|                       color: Colors.white,
 | |
|                       fontWeight: FontWeight.bold,
 | |
|                       fontSize: 16,
 | |
|                     ),
 | |
|                   ),
 | |
|                 ),
 | |
|               ),
 | |
|             ],
 | |
|           ),
 | |
|         ),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| }
 |