generateWidgetbook function
String
generateWidgetbook({
- required String name,
- required WidgetbookConstructor constructor,
- required List<
WidgetbookUseCaseData> useCases, - required List<
Device> devices, - required List<
WidgetbookFrame> frames, - required List<
double> textScaleFactors, - required bool foldersExpanded,
- required bool widgetsExpanded,
- WidgetbookLocalesData? localesData,
- WidgetbookLocalizationsDelegatesData? localizationDelegatesData,
- WidgetbookThemeData? widgetbookThemeData,
- WidgetbookThemeTypeData? themeTypeData,
- required List<
WidgetbookThemeData> themes, - WidgetbookDeviceFrameData? deviceFrameBuilder,
- WidgetbookLocalizationBuilderData? localizationBuilder,
- WidgetbookAppBuilderData? appBuilder,
- WidgetbookScaffoldBuilderData? scaffoldBuilder,
- WidgetbookThemeBuilderData? themeBuilder,
- WidgetbookUseCaseBuilderData? useCaseBuilder,
Generates the code of the Widgetbook
Implementation
String generateWidgetbook({
required String name,
required WidgetbookConstructor constructor,
required List<WidgetbookUseCaseData> useCases,
required List<Device> devices,
required List<WidgetbookFrame> frames,
required List<double> textScaleFactors,
required bool foldersExpanded,
required bool widgetsExpanded,
WidgetbookLocalesData? localesData,
WidgetbookLocalizationsDelegatesData? localizationDelegatesData,
WidgetbookThemeData? widgetbookThemeData,
WidgetbookThemeTypeData? themeTypeData,
required List<WidgetbookThemeData> themes,
WidgetbookDeviceFrameData? deviceFrameBuilder,
WidgetbookLocalizationBuilderData? localizationBuilder,
WidgetbookAppBuilderData? appBuilder,
WidgetbookScaffoldBuilderData? scaffoldBuilder,
WidgetbookThemeBuilderData? themeBuilder,
WidgetbookUseCaseBuilderData? useCaseBuilder,
}) {
final category =
_generateCategoryInstance(useCases, foldersExpanded, widgetsExpanded);
final widgetbookInstanceCode = WidgetbookInstance(
constructor: constructor,
appInfoInstance: AppInfoInstance(name: name),
themes: themes.map((theme) => ThemeInstance(theme: theme)).toList(),
devices: devices.map((device) => DeviceInstance(device: device)).toList(),
frames: frames.map((frame) => FrameInstance(frame: frame)).toList(),
textScaleFactors: textScaleFactors.map(DoubleInstance.value).toList(),
categories: [
category,
],
type: themeTypeData?.name,
locales: localesData != null
? VariableInstance(variableIdentifier: localesData.name)
: null,
localizationDelegates: localizationDelegatesData != null
? VariableInstance(variableIdentifier: localizationDelegatesData.name)
: null,
deviceFrameBuilder: deviceFrameBuilder != null
? VariableInstance(variableIdentifier: deviceFrameBuilder.name)
: null,
localizationBuilder: localizationBuilder != null
? VariableInstance(variableIdentifier: localizationBuilder.name)
: null,
appBuilder: appBuilder != null
? VariableInstance(variableIdentifier: appBuilder.name)
: null,
scaffoldBuilder: scaffoldBuilder != null
? VariableInstance(variableIdentifier: scaffoldBuilder.name)
: null,
themeBuilder: themeBuilder != null
? FunctionCallInstance(name: themeBuilder.name)
: null,
useCaseBuilder: useCaseBuilder != null
? VariableInstance(variableIdentifier: useCaseBuilder.name)
: null,
).toCode();
return '''
class HotReload extends StatelessWidget {
const HotReload({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return $widgetbookInstanceCode;
}
}
''';
}