LCOV - code coverage report
Current view: top level - lib/design/generic - loading_widget.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 26 0.0 %
Date: 2024-10-04 11:12:13 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright 2023 The terCAD team. All rights reserved.
       2             : // Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.
       3             : 
       4             : import 'package:app_finance/_ext/build_context_ext.dart';
       5             : import 'package:flutter/material.dart';
       6             : 
       7             : class LoadingWidget extends StatefulWidget {
       8             :   final bool isLoading;
       9             :   final Size? size;
      10             : 
      11           0 :   const LoadingWidget({
      12             :     super.key,
      13             :     required this.isLoading,
      14             :     this.size,
      15             :   });
      16             : 
      17           0 :   @override
      18           0 :   LoadingWidgetState createState() => LoadingWidgetState();
      19             : }
      20             : 
      21             : class LoadingWidgetState extends State<LoadingWidget> with TickerProviderStateMixin {
      22             :   late AnimationController _controller;
      23             : 
      24           0 :   @override
      25             :   void initState() {
      26           0 :     _controller = AnimationController(
      27             :       vsync: this,
      28             :       duration: const Duration(seconds: 2),
      29           0 :     )..repeat();
      30           0 :     super.initState();
      31             :   }
      32             : 
      33           0 :   @override
      34             :   void dispose() {
      35           0 :     _controller.dispose();
      36           0 :     super.dispose();
      37             :   }
      38             : 
      39           0 :   @override
      40             :   Widget build(BuildContext context) {
      41           0 :     Size side = widget.size ?? MediaQuery.sizeOf(context);
      42           0 :     double width = side.width;
      43           0 :     double height = side.height;
      44           0 :     double size = (height > width ? width : height) * 0.6;
      45           0 :     return AnimatedBuilder(
      46           0 :       animation: _controller,
      47           0 :       builder: (context, child) {
      48           0 :         return Center(
      49           0 :           child: Stack(
      50             :             alignment: Alignment.center,
      51           0 :             children: [
      52           0 :               SizedBox(
      53             :                 height: size,
      54             :                 width: size,
      55           0 :                 child: CircularProgressIndicator(
      56           0 :                   value: _controller.value,
      57           0 :                   color: context.colorScheme.inversePrimary,
      58             :                   strokeWidth: 8,
      59             :                 ),
      60             :               ),
      61           0 :               Image.asset(
      62             :                 'assets/images/logo.png',
      63             :                 width: size,
      64             :                 height: size,
      65             :               ),
      66             :             ],
      67             :           ),
      68             :         );
      69             :       },
      70             :     );
      71             :   }
      72             : }

Generated by: LCOV version 1.14