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/ui_design.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;
  LoadingCommon({required this.text});
}