info_tren/lib/components/loading/loading.dart

34 lines
1.1 KiB
Dart
Raw Permalink Normal View History

import 'package:flutter/widgets.dart';
2022-10-31 03:44:29 +01:00
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:info_tren/components/loading/loading_cupertino.dart';
import 'package:info_tren/components/loading/loading_fluent.dart';
import 'package:info_tren/components/loading/loading_material.dart';
import 'package:info_tren/models.dart';
2022-10-31 03:44:29 +01:00
import 'package:info_tren/providers.dart';
2022-10-31 03:44:29 +01:00
class Loading extends ConsumerWidget {
static const defaultText = 'Loading...';
final String? text;
2022-10-31 03:44:29 +01:00
const Loading({ super.key, this.text, });
@override
2022-10-31 03:44:29 +01:00
Widget build(BuildContext context, WidgetRef ref) {
final uiDesign = ref.watch(uiDesignProvider);
switch (uiDesign) {
case UiDesign.MATERIAL:
return LoadingMaterial(text: text ?? defaultText,);
case UiDesign.CUPERTINO:
return LoadingCupertino(text: text ?? defaultText,);
case UiDesign.FLUENT:
return LoadingFluent(text: text ?? defaultText,);
default:
throw UnmatchedUiDesignException(uiDesign);
}
}
}
abstract class LoadingCommon extends StatelessWidget {
final String text;
const LoadingCommon({required this.text, super.key,});
}