LCOV - code coverage report
Current view: | top level - src/widgets - device_render.dart (source / functions) |  |  | Hit | Total | Coverage
Test: | lcov.info |  | Lines: | 0 | 29 | 0.0 %
Date: | 2021-10-11 06:57:03 |  | Functions: | 0 | 0 | -

              Line data    Source code
           1             : import 'dart:developer';
           2             :
           3             : import 'package:flutter/material.dart';
           4             : import 'package:widgetbook/src/models/organizers/organizers.dart';
           5             : import 'package:widgetbook/src/providers/device_provider.dart';
           6             : import 'package:widgetbook/src/providers/injected_theme_provider.dart';
           7             : import 'package:widgetbook/src/providers/injected_theme_state.dart';
           8             :
           9             : class DeviceRender extends StatelessWidget {
          10           0 :   const DeviceRender({
          11             :     Key? key,
          12             :     required this.story,
          13           0 :   }) : super(key: key);
          14             :
          15             :   final Story story;
          16             :
          17           0 :   ThemeData getInjectedTheme(BuildContext context, InjectedThemeState state) {
          18           0 :     final brightness = Theme.of(context).brightness;
          19             :
          20           0 :     if (brightness == Brightness.light && state.lightTheme != null) {
          21           0 :       return state.lightTheme!;
          22             :     }
          23           0 :     if (brightness == Brightness.dark && state.darkTheme != null) {
          24           0 :       return state.darkTheme!;
          25             :     }
          26             :
          27           0 :     log('''
          28             : No theme was provided for the set brightness.
          29             :  The theme of widgetbook is used to render your widgets.
          30             :  This may cause your widgets to look different.''');
          31           0 :     return Theme.of(context);
          32             :   }
          33             :
          34           0 :   @override
          35             :   Widget build(BuildContext context) {
          36           0 :     final deviceProvider = DeviceProvider.of(context)!;
          37           0 :     final state = deviceProvider.state;
          38             :
          39           0 :     final device = state.currentDevice;
          40           0 :     final resolution = device.resolution;
          41             :
          42           0 :     final themeState = InjectedThemeProvider.of(context)!.state;
          43             :
          44           0 :     return Column(
          45             :       mainAxisAlignment: MainAxisAlignment.center,
          46           0 :       children: [
          47           0 :         Text(device.name),
          48             :         const SizedBox(
          49             :           height: 16,
          50             :         ),
          51           0 :         Container(
          52           0 :           decoration: BoxDecoration(
          53           0 :             border: Border.all(
          54           0 :               color: Theme.of(context).brightness == Brightness.dark
          55             :                   ? Colors.white
          56             :                   : Colors.black,
          57             :             ),
          58             :           ),
          59           0 :           width: resolution.logicalSize.width,
          60           0 :           height: resolution.logicalSize.height,
          61           0 :           child: MaterialApp(
          62             :             debugShowCheckedModeBanner: false,
          63           0 :             theme: getInjectedTheme(context, themeState).copyWith(
          64             :               pageTransitionsTheme: const PageTransitionsTheme(
          65             :                 builders: {
          66             :                   TargetPlatform.iOS: FadeUpwardsPageTransitionsBuilder(),
          67             :                   TargetPlatform.android: FadeUpwardsPageTransitionsBuilder(),
          68             :                 },
          69             :               ),
          70             :             ),
          71           0 :             home: Scaffold(
          72           0 :               body: story.builder(
          73             :                 context,
          74             :               ),
          75             :             ),
          76             :           ),
          77             :         ),
          78             :       ],
          79             :     );
          80             :   }
          81             : }

Generated by: LCOV version 1.15