Line data Source code
1 : import 'package:flutter/material.dart'; 2 : import 'package:widgetbook/src/constants/radii.dart'; 3 : import 'package:widgetbook/src/providers/injected_theme_provider.dart'; 4 : import 'package:widgetbook/src/providers/theme_provider.dart'; 5 : 6 : import 'package:widgetbook/src/utils/utils.dart'; 7 : import 'package:widgetbook/src/widgets/controls_bar.dart'; 8 : import 'package:widgetbook/src/widgets/no_theme.dart'; 9 : import 'package:widgetbook/src/widgets/story_render.dart'; 10 : 11 : class Editor extends StatelessWidget { 12 15 : const Editor({ 13 : Key? key, 14 0 : }) : super(key: key); 15 : 16 0 : bool isSelectedThemeDefined(BuildContext context) { 17 0 : final injectedThemeState = InjectedThemeProvider.of(context)!.state; 18 0 : final themeState = ThemeProvider.of(context)!.state; 19 : 20 0 : if (themeState == ThemeMode.light && 21 0 : injectedThemeState.isLightThemeDefined) { 22 : return true; 23 : } 24 : 25 0 : if (themeState == ThemeMode.dark && injectedThemeState.isDarkThemeDefined) { 26 : return true; 27 : } 28 : 29 : return false; 30 : } 31 : 32 0 : @override 33 : Widget build(BuildContext context) { 34 0 : return Column( 35 : crossAxisAlignment: CrossAxisAlignment.stretch, 36 0 : children: [ 37 : const ControlsBar(), 38 : const SizedBox( 39 : height: 16, 40 : ), 41 0 : Expanded( 42 0 : child: Container( 43 0 : decoration: BoxDecoration( 44 : borderRadius: Radii.defaultRadius, 45 0 : color: context.colorScheme.surface, 46 : ), 47 0 : child: isSelectedThemeDefined(context) 48 : ? const StoryRender() 49 : : const NoTheme()), 50 : ), 51 : ], 52 : ); 53 : } 54 : }