generateWidgetbook function

String generateWidgetbook({
  1. required String name,
  2. required List<WidgetbookStoryData> stories,
  3. required List<Device> devices,
  4. required bool foldersExpanded,
  5. required bool widgetsExpanded,
  6. WidgetbookThemeData? lightTheme,
  7. WidgetbookThemeData? darkTheme,
  8. bool? defaultThemeIsDark,
})

Generates the code of the Widgetbook

Implementation

String generateWidgetbook({
  required String name,
  required List<WidgetbookStoryData> stories,
  required List<Device> devices,
  required bool foldersExpanded,
  required bool widgetsExpanded,
  WidgetbookThemeData? lightTheme,
  WidgetbookThemeData? darkTheme,
  bool? defaultThemeIsDark,
}) {
  final category =
      _generateCategoryInstance(stories, foldersExpanded, widgetsExpanded);
  final widgetbookInstanceCode = WidgetbookInstance(
    appInfoInstance: AppInfoInstance(name: name),
    lightThemeInstance:
        lightTheme != null ? ThemeInstance(name: lightTheme.name) : null,
    darkThemeInstance:
        darkTheme != null ? ThemeInstance(name: darkTheme.name) : null,
    defaultThemeInstance: defaultThemeIsDark != null
        ? ThemeModeInstance(name: defaultThemeIsDark ? 'dark' : 'light')
        : null,
    devices: devices.map((device) => DeviceInstance(device: device)).toList(),
    categories: [
      category,
    ],
  ).toCode();

  return '''
class HotReload extends StatelessWidget {
  const HotReload({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return $widgetbookInstanceCode;
  }
}
  ''';
}