2021-08-23 07:59:30 +03:00
|
|
|
import 'package:flutter/widgets.dart';
|
|
|
|
import 'package:info_tren/components/loading/loading_cupertino.dart';
|
|
|
|
import 'package:info_tren/components/loading/loading_material.dart';
|
2022-10-31 01:25:45 +01:00
|
|
|
import 'package:info_tren/models.dart';
|
2021-08-23 07:59:30 +03:00
|
|
|
import 'package:info_tren/utils/default_ui_design.dart';
|
|
|
|
|
|
|
|
class Loading extends StatelessWidget {
|
2022-10-31 01:49:11 +01:00
|
|
|
static const defaultText = 'Loading...';
|
2021-08-23 07:59:30 +03:00
|
|
|
|
|
|
|
final UiDesign? uiDesign;
|
|
|
|
final String? text;
|
|
|
|
const Loading({ Key? key, this.text, this.uiDesign }) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
final uiDesign = this.uiDesign ?? defaultUiDesign;
|
|
|
|
switch (uiDesign) {
|
|
|
|
case UiDesign.MATERIAL:
|
2022-10-31 01:49:11 +01:00
|
|
|
return LoadingMaterial(text: text ?? defaultText,);
|
2021-08-23 07:59:30 +03:00
|
|
|
case UiDesign.CUPERTINO:
|
2022-10-31 01:49:11 +01:00
|
|
|
return LoadingCupertino(text: text ?? defaultText,);
|
2021-08-23 07:59:30 +03:00
|
|
|
default:
|
|
|
|
throw UnmatchedUiDesignException(uiDesign);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
abstract class LoadingCommon extends StatelessWidget {
|
|
|
|
final String text;
|
2022-10-31 01:49:11 +01:00
|
|
|
const LoadingCommon({required this.text, super.key,});
|
2021-08-23 07:59:30 +03:00
|
|
|
}
|