statelessWidgetBuilder function
Implementation
Class statelessWidgetBuilder(
SlideData data,
String widgetName,
String body,
) {
var widget = Class(
(b) => b
..name = widgetName
..extend = refer('StatelessWidget')
..constructors.add(
Constructor(
(b) => b
..initializers.add(refer('super').call([refer('key : key')]).code)
..constant = true
..optionalParameters.add(
Parameter(
(b) => b
..name = 'key'
..type = refer('Key?', 'package:flutter/material.dart') //HERE
..named = true,
),
),
),
)
..methods.add(
Method((b) => b
..name = 'build'
..annotations.add(refer('override'))
..requiredParameters.add(
Parameter(
(b) => b
..name = 'context'
..type = refer('BuildContext'),
),
)
..body = Code(body)
..returns = refer('Widget')),
),
);
final emitter = DartEmitter(orderDirectives: true);
try {
DartFormatter().format('${widget.accept(emitter)}');
} catch (e) {
throw Exception(
'Error generating snippet for slide ${data.name}\n ${e.toString()}',
);
}
return widget;
}