diff --git a/example/lib/catalog/process.dart b/example/lib/catalog/process.dart new file mode 100644 index 0000000..a82d622 --- /dev/null +++ b/example/lib/catalog/process.dart @@ -0,0 +1,78 @@ +import 'dart:convert'; + +import 'package:catalog/src/base/serial.dart'; + +class InternalPreview implements Serial { + final String id; + final String path; + final String description; + final List parameters; + + const InternalPreview({ + this.id = '', + this.path = '', + this.description = '', + this.parameters = const [], + }); + + @override + InternalPreview fromJson(Map json) => InternalPreview( + id: json['id'] ?? '', + path: json['path'] ?? '', + description: json['description'] ?? '', + parameters: Serial.listObjectFromBasicType( + json['parameters'] ?? [], + ), + ); + + @override + String getId() => id; + + @override + InternalPreview instance() => const InternalPreview(id: '', path: ''); + + @override + Map toJson() => { + 'id': id, + 'path': path, + 'description': description, + 'parameters': parameters, + }; + + @override + InternalPreview fromString(String value) { + Map map = jsonDecode(value); + return fromJson(map); + } + + @override + String stringValue() { + var map = toJson(); + return jsonEncode(map); + } + + InternalPreview copyWith({ + String? id, + String? path, + String? description, + List? parameters, + }) => + InternalPreview( + id: id ?? this.id, + path: path ?? this.path, + description: description ?? this.description, + parameters: parameters ?? this.parameters, + ); +} + +void main(List arguments) async { + var preview = const InternalPreview( + parameters: [ + 'title', + 'infoText', + 'counter', + 'incrementCounter', + ], + ); + print(jsonEncode(preview.toJson())); +} diff --git a/example/lib/widgets/catalog/preview/main_screen.preview.dart b/example/lib/widgets/catalog/preview/main_screen.preview.dart index 16f0169..7095ff7 100644 --- a/example/lib/widgets/catalog/preview/main_screen.preview.dart +++ b/example/lib/widgets/catalog/preview/main_screen.preview.dart @@ -110,12 +110,7 @@ class MainScreenPreview extends ParentPreviewWidget { widgetKey: GlobalKey(), dummyBuilder: () => MainScreenDummy().dummies[i], builder: (BuildContext context, Dummy dummy) { - return MainScreen( - title: dummy.parameters['title'], - infoText: dummy.parameters['infoText'], - counter: dummy.parameters['counter'], - incrementCounter: dummy.parameters['incrementCounter'], - ); + return buildMainScreen(dummy); }, ), ], @@ -124,3 +119,12 @@ class MainScreenPreview extends ParentPreviewWidget { ); } } + +MainScreen buildMainScreen(Dummy dummy) { + return MainScreen( + title: dummy.parameters['title'], + infoText: dummy.parameters['infoText'], + counter: dummy.parameters['counter'], + incrementCounter: dummy.parameters['incrementCounter'], + ); +} diff --git a/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart b/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart index 47dc8ff..24af584 100644 --- a/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart +++ b/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart @@ -108,10 +108,7 @@ class BodyWidgetPreview extends ParentPreviewWidget { widgetKey: GlobalKey(), dummyBuilder: () => BodyWidgetDummy().dummies[i], builder: (BuildContext context, Dummy dummy) { - return BodyWidget( - infoText: dummy.parameters['infoText'], - counter: dummy.parameters['counter'], - ); + return buildBodyWidget(dummy); }, ), ], @@ -120,3 +117,10 @@ class BodyWidgetPreview extends ParentPreviewWidget { ); } } + +BodyWidget buildBodyWidget(Dummy dummy) { + return BodyWidget( + infoText: dummy.parameters['infoText'], + counter: dummy.parameters['counter'], + ); +} diff --git a/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart b/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart index 74eb890..04f76ab 100644 --- a/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart +++ b/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart @@ -108,9 +108,7 @@ class CounterWidgetPreview extends ParentPreviewWidget { widgetKey: GlobalKey(), dummyBuilder: () => CounterWidgetDummy().dummies[i], builder: (BuildContext context, Dummy dummy) { - return CounterWidget( - counter: dummy.parameters['counter'], - ); + return buildCounterWidget(dummy); }, ), ], @@ -119,3 +117,9 @@ class CounterWidgetPreview extends ParentPreviewWidget { ); } } + +CounterWidget buildCounterWidget(Dummy dummy) { + return CounterWidget( + counter: dummy.parameters['counter'], + ); +} diff --git a/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart b/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart index 1ecbb83..8b87e15 100644 --- a/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart +++ b/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart @@ -106,9 +106,7 @@ class FabWidgetPreview extends ParentPreviewWidget { widgetKey: GlobalKey(), dummyBuilder: () => FabWidgetDummy().dummies[i], builder: (BuildContext context, Dummy dummy) { - return FabWidget( - incrementCounter: dummy.parameters['incrementCounter'], - ); + return buildFabWidget(dummy); }, ), ], @@ -117,3 +115,9 @@ class FabWidgetPreview extends ParentPreviewWidget { ); } } + +FabWidget buildFabWidget(Dummy dummy) { + return FabWidget( + incrementCounter: dummy.parameters['incrementCounter'], + ); +} diff --git a/example/lib/widgets/utils/bottom/catalog/test/fab_widget.test.dart b/example/lib/widgets/utils/bottom/catalog/test/fab_widget.test.dart index 9a7b8ab..3121262 100644 --- a/example/lib/widgets/utils/bottom/catalog/test/fab_widget.test.dart +++ b/example/lib/widgets/utils/bottom/catalog/test/fab_widget.test.dart @@ -5,8 +5,8 @@ import 'package:catalog/catalog.dart'; -import '../../fab_widget.dart'; import '../dummy/fab_widget.dummy.dart'; +import '../preview/fab_widget.preview.dart'; class FabWidgetTest { void main() { @@ -15,13 +15,9 @@ class FabWidgetTest { () { testWidgets( 'Lorem text not found', - (tester) async { + (tester) async { final dummy = FabWidgetDummy().dummies.first; - - final widget = FabWidget( - incrementCounter: dummy.parameters['incrementCounter'], - ); - + final widget = buildFabWidget(dummy); await tester.test(widget); expect(find.text('lorem ipsu'), findsNothing); @@ -30,16 +26,12 @@ class FabWidgetTest { testWidgets( 'Other lorem text not found', - (tester) async { + (tester) async { final dummy = FabWidgetDummy().dummies.first; - - final widget = FabWidget( - incrementCounter: dummy.parameters['incrementCounter'], - ); - + final widget = buildFabWidget(dummy); await tester.test(widget); - expect(find.text('lorem ipsu'), findsNothing); + expect(find.text('ipsu lorem'), findsNothing); }, ); }, diff --git a/lib/src/bin/preview_builder/preview_builder.dart b/lib/src/bin/preview_builder/preview_builder.dart index 86fc331..ad8a6cd 100644 --- a/lib/src/bin/preview_builder/preview_builder.dart +++ b/lib/src/bin/preview_builder/preview_builder.dart @@ -132,7 +132,7 @@ class ${clazz}Preview extends ParentPreviewWidget { ), ), for (int i = 0; i < ${clazz}Dummy().dummies.length; i++) - ${dummyWidgetBuilder(clazz, widgetCompose)} + ${dummyWidgetBuilder(clazz)} ], ) ], @@ -140,6 +140,10 @@ class ${clazz}Preview extends ParentPreviewWidget { } +} + +$clazz build$clazz(Dummy dummy) { + return $widgetCompose; } '''; @@ -156,13 +160,13 @@ class ${clazz}Preview extends ParentPreviewWidget { await file.writeAsString(content); } -String dummyWidgetBuilder(String clazz, String widgetCompose) { +String dummyWidgetBuilder(String clazz) { return ''' PreviewBoundary( widgetKey: GlobalKey(), dummyBuilder: () => ${clazz}Dummy().dummies[i], builder: (BuildContext context, Dummy dummy) { - return $widgetCompose; + return build$clazz(dummy); }, ), ''';