You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1005 B
31 lines
1005 B
import 'package:flutter/widgets.dart'; |
|
import 'package:info_tren/components/loading/loading_cupertino.dart'; |
|
import 'package:info_tren/components/loading/loading_material.dart'; |
|
import 'package:info_tren/models.dart'; |
|
import 'package:info_tren/utils/default_ui_design.dart'; |
|
|
|
class Loading extends StatelessWidget { |
|
static const DEFAULT_TEXT = 'Loading...'; |
|
|
|
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: |
|
return LoadingMaterial(text: text ?? DEFAULT_TEXT,); |
|
case UiDesign.CUPERTINO: |
|
return LoadingCupertino(text: text ?? DEFAULT_TEXT,); |
|
default: |
|
throw UnmatchedUiDesignException(uiDesign); |
|
} |
|
} |
|
} |
|
|
|
abstract class LoadingCommon extends StatelessWidget { |
|
final String text; |
|
const LoadingCommon({required this.text}); |
|
} |