import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:info_tren/components/badge/badge_cupertino.dart'; import 'package:info_tren/components/badge/badge_fluent.dart'; import 'package:info_tren/components/badge/badge_material.dart'; import 'package:info_tren/models.dart'; import 'package:info_tren/providers.dart'; class Badge extends ConsumerWidget { final String text; final String caption; final bool isNotScheduled; final bool isOnTime; final bool isDelayed; const Badge({ super.key, required this.text, required this.caption, this.isNotScheduled = false, this.isOnTime = false, this.isDelayed = false, }); @override Widget build(BuildContext context, WidgetRef ref) { final uiDesign = ref.watch(uiDesignProvider); switch (uiDesign) { case UiDesign.MATERIAL: return MaterialBadge( text: text, caption: caption, isNotScheduled: isNotScheduled, isOnTime: isOnTime, isDelayed: isDelayed, ); case UiDesign.CUPERTINO: return CupertinoBadge( text: text, caption: caption, isNotScheduled: isNotScheduled, isOnTime: isOnTime, isDelayed: isDelayed, ); case UiDesign.FLUENT: return FluentBadge( text: text, caption: caption, isNotScheduled: isNotScheduled, isOnTime: isOnTime, isDelayed: isDelayed, ); default: throw UnmatchedUiDesignException(uiDesign); } } }