Files
MrbWebLibre/app/lib/features/bangs/presentation/widgets/bang_icon.dart
T
2024-12-12 09:44:33 +01:00

38 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_material_design_icons/flutter_material_design_icons.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:lensai/features/bangs/data/models/bang_data.dart';
import 'package:lensai/features/bangs/domain/providers/bangs.dart';
import 'package:skeletonizer/skeletonizer.dart';
class BangIcon extends HookConsumerWidget {
final double iconSize;
final BangData bangData;
const BangIcon(this.bangData, {this.iconSize = 34.0, super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final bangAsync = ref.watch(bangDataEnsureIconProvider(bangData));
final bang = bangAsync.valueOrNull ?? bangData;
return Skeletonizer(
enabled: bangAsync.isLoading,
child: SizedBox.square(
dimension: iconSize,
child: (bang.icon != null)
? RawImage(
image: bang.icon?.image.value,
height: iconSize,
width: iconSize,
fit: BoxFit.fill,
)
: Icon(
MdiIcons.web,
size: iconSize,
),
),
);
}
}