user_avatar.dart 876 B

123456789101112131415161718192021
  1. import 'package:cached_network_image/cached_network_image.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:immich_mobile/shared/models/store.dart';
  4. import 'package:immich_mobile/shared/models/user.dart';
  5. Widget userAvatar(BuildContext context, User u, {double? radius}) {
  6. final url =
  7. "${Store.get(StoreKey.serverEndpoint)}/user/profile-image/${u.id}";
  8. return CircleAvatar(
  9. radius: radius,
  10. backgroundColor: Theme.of(context).primaryColor.withAlpha(50),
  11. foregroundImage: CachedNetworkImageProvider(
  12. url,
  13. headers: {"Authorization": "Bearer ${Store.get(StoreKey.accessToken)}"},
  14. cacheKey: "user-${u.id}-profile",
  15. ),
  16. // silence errors if user has no profile image, use initials as fallback
  17. onForegroundImageError: (exception, stackTrace) {},
  18. child: Text((u.firstName[0] + u.lastName[0]).toUpperCase()),
  19. );
  20. }