Fladder/lib/widgets/shared/offline_banner.dart
PartyDonut 092836328f
feat: Sync offline/online playback when able (#431)
Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
2025-08-03 13:35:56 +02:00

40 lines
1.2 KiB
Dart

import 'package:flutter/material.dart' hide ConnectionState;
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:iconsax_plus/iconsax_plus.dart';
import 'package:fladder/providers/connectivity_provider.dart';
import 'package:fladder/util/localization_helper.dart';
class OfflineBanner extends ConsumerWidget {
const OfflineBanner({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final isOffline = ref.watch(connectivityStatusProvider.select((value) => value == ConnectionState.offline));
final theme = Theme.of(context);
return AnimatedOpacity(
duration: const Duration(milliseconds: 250),
opacity: isOffline ? 1 : 0,
child: IgnorePointer(
child: Row(
spacing: 12,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
IconsaxPlusLinear.cloud_cross,
color: theme.colorScheme.onErrorContainer,
size: 20,
),
Text(
context.localized.offline,
style: theme.textTheme.bodyMedium?.copyWith(
color: theme.colorScheme.onErrorContainer,
),
),
],
),
),
);
}
}