From b0c8345e92f126265748ecfaba8bc70c95d389c0 Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Fri, 4 Mar 2022 15:50:05 -0700 Subject: [PATCH 01/13] If bitmap is svg use Svg package --- .../visual-widgets/pb_bitmap_gen.dart | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/generation/generators/visual-widgets/pb_bitmap_gen.dart b/lib/generation/generators/visual-widgets/pb_bitmap_gen.dart index b3ae872b..6249b7c9 100644 --- a/lib/generation/generators/visual-widgets/pb_bitmap_gen.dart +++ b/lib/generation/generators/visual-widgets/pb_bitmap_gen.dart @@ -7,6 +7,8 @@ import 'package:parabeac_core/interpret_and_optimize/entities/inherited_bitmap.d import 'package:parabeac_core/interpret_and_optimize/helpers/override_helper.dart'; import 'package:parabeac_core/interpret_and_optimize/helpers/pb_context.dart'; +import '../import_generator.dart'; + class PBBitmapGenerator extends PBGenerator { var _sizehelper; @@ -21,11 +23,24 @@ class PBBitmapGenerator extends PBGenerator { ) { var buffer = StringBuffer(); var imageOverride = OverrideHelper.getProperty(source.UUID, 'image'); + + var imageFormat = 'Image'; + + if ((source as InheritedBitmap).referenceImage.endsWith('.svg')) { + generatorContext.project.genProjectData + .addDependencies('flutter_svg', '^1.0.3'); + + generatorContext.managerData + .addImport(FlutterImport('flutter_svg.dart', 'flutter_svg')); + + imageFormat = 'SvgPicture'; + } + if (imageOverride != null) { buffer.write(imageOverride.generateOverride()); } - buffer.write('Image.asset('); + buffer.write('$imageFormat.asset('); var styleOverride = OverrideHelper.getProperty(source.UUID, 'layerStyle'); if (styleOverride != null) { From d1a51be6aa6f6ac14b6246345118d880f217b62a Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Fri, 4 Mar 2022 15:50:24 -0700 Subject: [PATCH 02/13] Make image extension dynamic --- lib/generation/generators/writers/pb_flutter_writer.dart | 6 +++--- lib/interpret_and_optimize/entities/inherited_bitmap.dart | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/generation/generators/writers/pb_flutter_writer.dart b/lib/generation/generators/writers/pb_flutter_writer.dart index 8033ac22..6816ebc9 100644 --- a/lib/generation/generators/writers/pb_flutter_writer.dart +++ b/lib/generation/generators/writers/pb_flutter_writer.dart @@ -105,8 +105,8 @@ class MyApp extends StatelessWidget { /// Add dependency for each asset for (var assetName in assets) { if (!yamlAssets.any((str) => str.endsWith('/$assetName'))) { - yamlAssets.add( - 'packages/${MainInfo().projectName}/assets/images/$assetName'); + yamlAssets + .add('packages/${MainInfo().projectName}/assets/$assetName'); } } @@ -131,7 +131,7 @@ class MyApp extends StatelessWidget { // Return names inside image reference storage return ImageReferenceStorage() .names - .map((imageName) => '${imageName}.png') + .map((imageName) => '${imageName}') .toList(); } catch (e) { return []; diff --git a/lib/interpret_and_optimize/entities/inherited_bitmap.dart b/lib/interpret_and_optimize/entities/inherited_bitmap.dart index 787f28ee..97418dbd 100644 --- a/lib/interpret_and_optimize/entities/inherited_bitmap.dart +++ b/lib/interpret_and_optimize/entities/inherited_bitmap.dart @@ -46,8 +46,8 @@ class InheritedBitmap extends PBVisualIntermediateNode generator = PBBitmapGenerator(); childrenStrategy = NoChildStrategy(); if (name != null && name.isNotEmpty) { - ImageReferenceStorage() - .addReference(name, '${MainInfo().outputPath}assets/images'); + ImageReferenceStorage().addReference( + referenceImage, '${MainInfo().outputPath}assets/images'); } } From 6663cadb5c156c236a81314d24f21969b69a125e Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Tue, 8 Mar 2022 18:51:08 -0700 Subject: [PATCH 03/13] Merge branch 'fix/yaml-duplicates' into feat/dashbook --- .../generators/writers/pb_flutter_writer.dart | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/lib/generation/generators/writers/pb_flutter_writer.dart b/lib/generation/generators/writers/pb_flutter_writer.dart index 6816ebc9..28f71f15 100644 --- a/lib/generation/generators/writers/pb_flutter_writer.dart +++ b/lib/generation/generators/writers/pb_flutter_writer.dart @@ -98,26 +98,30 @@ class MyApp extends StatelessWidget { /// Add assets if (modifiableyaml.containsKey('flutter')) { - var yamlAssets = []; - var assets = _getAssetFileNames(); - /// Add dependency for each asset - for (var assetName in assets) { - if (!yamlAssets.any((str) => str.endsWith('/$assetName'))) { - yamlAssets - .add('packages/${MainInfo().projectName}/assets/$assetName'); - } + /// If there are no assets to add, simply return. + if (assets.isEmpty) { + return; } - if (yamlAssets.isNotEmpty) { - /// Create `assets` entry if does not exist - if (!modifiableyaml['flutter'].containsKey('assets') || - modifiableyaml['flutter']['assets'] == null) { - modifiableyaml['flutter']['assets'] = yamlAssets; - } else { - modifiableyaml['flutter']['assets'].addAll(yamlAssets); - } + /// Add only elements that are not already in the yaml + if (modifiableyaml['flutter'].containsKey('assets') && + modifiableyaml['flutter']['assets'] != null) { + var existingAssets = (modifiableyaml['flutter']['assets'] as List); + assets.forEach((asset) { + if (!existingAssets.any((e) => e.endsWith('/$asset'))) { + existingAssets + .add('packages/${MainInfo().projectName}/assets/images/$asset'); + } + }); + } + + /// Add all elements to the yaml + else { + modifiableyaml['flutter']['assets'] = assets + .map((e) => 'packages/${MainInfo().projectName}/assets/images/$e') + .toList(); } } From e66b222268e6f32b9e2f0fd54746368b79bac4ee Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Tue, 8 Mar 2022 18:52:06 -0700 Subject: [PATCH 04/13] Formatted code --- lib/controllers/interpret.dart | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/controllers/interpret.dart b/lib/controllers/interpret.dart index 311270af..87799c87 100644 --- a/lib/controllers/interpret.dart +++ b/lib/controllers/interpret.dart @@ -58,19 +58,26 @@ class Interpret { /// This is a workaround for adding missing information to either the [PBContext] or any of the /// [PBIntermediateNode]s. aitServiceBuilder.addTransformation( - (PBContext context, PBIntermediateNode node, PBIntermediateTree tree) { - elementStorage.treeUUIDs[tree.UUID] = tree; - elementStorage.elementToTree[node.UUID] = tree.UUID; - return Future.value(node); - }, index: 0, id: 'Indexing ${tree.name}').addTransformation( - (PBContext context, PBIntermediateTree tree) async { - // - var baseGroupList = tree.whereType(); - - baseGroupList.forEach((group) => tree.remove(group, keepChildren: true)); - - return Future.value(tree); - }, index: 1, id: 'Removing the $BaseGroup from ${tree.name}'); + (PBContext context, PBIntermediateNode node, PBIntermediateTree tree) { + elementStorage.treeUUIDs[tree.UUID] = tree; + elementStorage.elementToTree[node.UUID] = tree.UUID; + return Future.value(node); + }, + index: 0, + id: 'Indexing ${tree.name}', + ).addTransformation( + (PBContext context, PBIntermediateTree tree) async { + // + var baseGroupList = tree.whereType(); + + baseGroupList + .forEach((group) => tree.remove(group, keepChildren: true)); + + return Future.value(tree); + }, + index: 1, + id: 'Removing the $BaseGroup from ${tree.name}', + ); // TODO: We should dynamically add the [PBPrototypeLinkerService] to `aitHandlers` // somewhere else so that it does not check the configuration every time From cccc47c12a4c1b023aca2e05dea6d47cdd699ef6 Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Tue, 8 Mar 2022 18:52:35 -0700 Subject: [PATCH 05/13] Added dashbook entities and generator --- .../dashbook/dashbook_generator.dart | 52 +++++++++++++++++++ .../dashbook/entities/dashbook_book.dart | 23 ++++++++ .../dashbook/entities/dashbook_chapter.dart | 14 +++++ .../dashbook/entities/dashbook_story.dart | 23 ++++++++ 4 files changed, 112 insertions(+) create mode 100644 lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/dashbook_generator.dart create mode 100644 lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_book.dart create mode 100644 lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_chapter.dart create mode 100644 lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart diff --git a/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/dashbook_generator.dart b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/dashbook_generator.dart new file mode 100644 index 00000000..69cca399 --- /dev/null +++ b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/dashbook_generator.dart @@ -0,0 +1,52 @@ +import 'package:parabeac_core/controllers/main_info.dart'; +import 'package:parabeac_core/generation/flutter_project_builder/import_helper.dart'; +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/component_isolation_generator.dart'; +import 'package:parabeac_core/generation/generators/import_generator.dart'; +import 'package:parabeac_core/generation/generators/util/pb_generation_project_data.dart'; +import 'package:parabeac_core/interpret_and_optimize/services/component_isolation/dashbook_service.dart'; + +class DashbookGenerator implements ComponentIsolationGenerator { + @override + String fileName = 'main_dashbook.dart'; + + DashbookGenerator(this.projectData) { + projectData.addDependencies('dashbook', '^0.1.6'); + } + + @override + PBGenerationProjectData projectData; + + @override + String generateCode(ImportHelper helper) { + var book = DashbookService.book; + var treeIds = DashbookService.treeIds; + var generatedCode = book.generate(); + + var imports = treeIds + .map( + (id) => helper + .getFormattedImports( + id, + importMapper: (import) => FlutterImport( + import, + MainInfo().projectName, + ), + ) + .join('\n'), + ) + .join(''); + return ''' + import 'package:flutter/material.dart'; + import 'package:dashbook/dashbook.dart'; + $imports + + void main() { + final dashbook = Dashbook(); + + $generatedCode + + runApp(dashbook); + } + '''; + } +} diff --git a/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_book.dart b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_book.dart new file mode 100644 index 00000000..55fa2ce2 --- /dev/null +++ b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_book.dart @@ -0,0 +1,23 @@ +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart'; +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/isolation_node.dart'; + +/// Class that represents a DashBook Book. +class DashBookBook extends IsolationNode { + DashBookBook({ + String name = 'Parabeac-Generated', + }) : super(name: name); + + @override + String generate() { + var stories = getType(); + + var storiesGen = ''; + + if (stories != null && stories.isNotEmpty) { + storiesGen = stories.map((s) => s.generate()).join('\n'); + } + return ''' + ${storiesGen.isNotEmpty ? ' $storiesGen\n' : ''} + '''; + } +} diff --git a/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_chapter.dart b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_chapter.dart new file mode 100644 index 00000000..a4dfcfe6 --- /dev/null +++ b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_chapter.dart @@ -0,0 +1,14 @@ +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/isolation_node.dart'; + +class DashBookChapter extends IsolationNode { + String builderCode; + DashBookChapter(String name, this.builderCode) : super(name: name); + + @override + String generate() { + return ''' + .add('$name', + (ctx) => $builderCode) + '''; + } +} diff --git a/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart new file mode 100644 index 00000000..b0494734 --- /dev/null +++ b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart @@ -0,0 +1,23 @@ +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_chapter.dart'; +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/isolation_node.dart'; + +/// Node that represents a Widgetbook component. +class DashBookStory extends IsolationNode { + DashBookStory(String name) : super(name: name); + + @override + String generate() { + var useCases = getType(); + var useCasesGen = ''; + if (useCases != null && useCases.isNotEmpty) { + useCasesGen = useCases.map((useCase) => useCase.generate()).join('\n'); + } + return ''' + dashbook + .storiesOf('$name') + .decorator(CenterDecorator()) + $useCasesGen + ; + '''; + } +} From 87e74192bafec1fe758dbeac08d560493d32c6de Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Tue, 8 Mar 2022 18:52:47 -0700 Subject: [PATCH 06/13] Fixed asset names --- lib/generation/generators/writers/pb_flutter_writer.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/generation/generators/writers/pb_flutter_writer.dart b/lib/generation/generators/writers/pb_flutter_writer.dart index 28f71f15..b104d4c3 100644 --- a/lib/generation/generators/writers/pb_flutter_writer.dart +++ b/lib/generation/generators/writers/pb_flutter_writer.dart @@ -112,7 +112,7 @@ class MyApp extends StatelessWidget { assets.forEach((asset) { if (!existingAssets.any((e) => e.endsWith('/$asset'))) { existingAssets - .add('packages/${MainInfo().projectName}/assets/images/$asset'); + .add('packages/${MainInfo().projectName}/assets/$asset'); } }); } @@ -120,7 +120,7 @@ class MyApp extends StatelessWidget { /// Add all elements to the yaml else { modifiableyaml['flutter']['assets'] = assets - .map((e) => 'packages/${MainInfo().projectName}/assets/images/$e') + .map((e) => 'packages/${MainInfo().projectName}/assets/$e') .toList(); } } From b2a4abb75cf3d8c63ca8ca8fdd1d1dfb21032b38 Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Tue, 8 Mar 2022 18:53:00 -0700 Subject: [PATCH 07/13] Added dashbook for component isolation --- .../helpers/component_isolation_configuration.dart | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/interpret_and_optimize/helpers/component_isolation_configuration.dart b/lib/interpret_and_optimize/helpers/component_isolation_configuration.dart index 1f48b56c..283f8e03 100644 --- a/lib/interpret_and_optimize/helpers/component_isolation_configuration.dart +++ b/lib/interpret_and_optimize/helpers/component_isolation_configuration.dart @@ -1,7 +1,9 @@ import 'package:parabeac_core/controllers/interpret.dart'; import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/component_isolation_generator.dart'; +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/dashbook_generator.dart'; import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/widgetbook/widgetbook_generator.dart'; import 'package:parabeac_core/generation/generators/util/pb_generation_project_data.dart'; +import 'package:parabeac_core/interpret_and_optimize/services/component_isolation/dashbook_service.dart'; import 'package:parabeac_core/interpret_and_optimize/services/component_isolation/widgetbook_service.dart'; /// Class that bundles a ComponentIsolationGenerator and an AITHandler @@ -18,6 +20,9 @@ class ComponentIsolationConfiguration { case 'widgetbook': return ComponentIsolationConfiguration._internal( WidgetbookGenerator(projectData), WidgetBookService()); + case 'dashbook': + return ComponentIsolationConfiguration._internal( + DashbookGenerator(projectData), DashbookService()); default: return null; } From 3210c2690d81ec462aadd1ad11042fb35062ffe2 Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Tue, 8 Mar 2022 18:53:10 -0700 Subject: [PATCH 08/13] Implemented dashbook service --- .../component_isolation/dashbook_service.dart | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 lib/interpret_and_optimize/services/component_isolation/dashbook_service.dart diff --git a/lib/interpret_and_optimize/services/component_isolation/dashbook_service.dart b/lib/interpret_and_optimize/services/component_isolation/dashbook_service.dart new file mode 100644 index 00000000..57f5c8cb --- /dev/null +++ b/lib/interpret_and_optimize/services/component_isolation/dashbook_service.dart @@ -0,0 +1,70 @@ +import 'package:parabeac_core/controllers/interpret.dart'; +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_book.dart'; +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_chapter.dart'; +import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart'; +import 'package:parabeac_core/generation/generators/attribute-helper/pb_size_helper.dart'; +import 'package:parabeac_core/generation/generators/symbols/pb_instancesym_gen.dart'; +import 'package:parabeac_core/interpret_and_optimize/entities/pb_shared_instance.dart'; +import 'package:parabeac_core/interpret_and_optimize/entities/pb_shared_master_node.dart'; +import 'package:parabeac_core/interpret_and_optimize/helpers/pb_intermediate_node_tree.dart'; +import 'package:parabeac_core/interpret_and_optimize/helpers/pb_context.dart'; +import 'package:recase/recase.dart'; + +class DashbookService extends AITHandler { + /// Map that holds the name of the folder as its key, and the folder as its value. + + static Map _dashBookStories; + static DashBookBook book = DashBookBook(); + static final treeIds = []; + + DashbookService() { + _dashBookStories = {}; + } + + @override + Future handleTree( + PBContext context, PBIntermediateTree tree) async { + /// Only process [PBSharedMasterNode]s. + if (tree.rootNode is PBSharedMasterNode) { + treeIds.add(tree.UUID); + + var component = tree.rootNode as PBSharedMasterNode; + var rootName = component.componentSetName ?? tree.rootNode.name; + + /// Create new Widget for this variation if it doesn't exist already + if (!_dashBookStories.containsKey(rootName)) { + _dashBookStories[rootName] = DashBookStory(rootName); + book.addChild(_dashBookStories[rootName]); + } + + /// Create a fake instance in order to generate the Use Case. + // FIXME: Generating the code should happen somewhere in generate, not here. + var dummyInstance = PBSharedInstanceIntermediateNode( + null, + tree.rootNode.frame.copyWith(), + SYMBOL_ID: component.SYMBOL_ID, + name: rootName, + sharedNodeSetID: component.sharedNodeSetID, + ); + var sizeHelper = PBSizeHelper(); + + var generatedCode = ''' + SizedBox( + ${sizeHelper.generate(dummyInstance, context.copyWith(sizingContext: SizingValueContext.PointValue))} + child: ${(dummyInstance.generator as PBSymbolInstanceGenerator).generate( + dummyInstance, + context.copyWith(), + )}, + ), + '''; + + /// Create a use case for the current component and add it to the folder. + var useCase = DashBookChapter( + (tree.rootNode as PBSharedMasterNode).name.pascalCase, + generatedCode, + ); + _dashBookStories[rootName].addChild(useCase); + } + return tree; + } +} From 006ee404b13f22378db8778878e8bd01a26c1636 Mon Sep 17 00:00:00 2001 From: Ivan <42812006+ivan-015@users.noreply.github.com> Date: Sat, 12 Mar 2022 21:15:52 -0600 Subject: [PATCH 09/13] Edit header on [DashBookBook] class. This is for added clarity that DashbookBook is not actually a Dashbook-supported widget, but rather a way for Stories to be grouped and generated more conveniently. --- .../comp_isolation/dashbook/entities/dashbook_book.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_book.dart b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_book.dart index 55fa2ce2..9d16cc83 100644 --- a/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_book.dart +++ b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_book.dart @@ -1,7 +1,11 @@ import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart'; import 'package:parabeac_core/generation/flutter_project_builder/post_gen_tasks/comp_isolation/isolation_node.dart'; -/// Class that represents a DashBook Book. +/// Class that represents a group of [DashBookStories]. +/// +/// This class does not actually exist in Dashbook. However, +/// it makes it easier for us to group stories and generate them +/// in a single step. class DashBookBook extends IsolationNode { DashBookBook({ String name = 'Parabeac-Generated', From c83578945f210d967cc32fecb3d49b02b64ab289 Mon Sep 17 00:00:00 2001 From: Ivan <42812006+ivan-015@users.noreply.github.com> Date: Sat, 12 Mar 2022 21:23:15 -0600 Subject: [PATCH 10/13] Use dashbook-specific terminology --- .../dashbook/entities/dashbook_story.dart | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart index b0494734..1522acb4 100644 --- a/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart +++ b/lib/generation/flutter_project_builder/post_gen_tasks/comp_isolation/dashbook/entities/dashbook_story.dart @@ -7,16 +7,16 @@ class DashBookStory extends IsolationNode { @override String generate() { - var useCases = getType(); - var useCasesGen = ''; - if (useCases != null && useCases.isNotEmpty) { - useCasesGen = useCases.map((useCase) => useCase.generate()).join('\n'); + var chapters = getType(); + var chaptersGen = ''; + if (chapters != null && chapters.isNotEmpty) { + chaptersGen = chapters.map((chapter) => chapter.generate()).join('\n'); } return ''' dashbook .storiesOf('$name') .decorator(CenterDecorator()) - $useCasesGen + $chaptersGen ; '''; } From d1db0659cff9aa8a7b80d5e577cf8d523024b0f7 Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Sun, 13 Mar 2022 12:07:37 -0600 Subject: [PATCH 11/13] Corrected mistake on merge --- lib/generation/generators/writers/pb_flutter_writer.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/generation/generators/writers/pb_flutter_writer.dart b/lib/generation/generators/writers/pb_flutter_writer.dart index b104d4c3..28f71f15 100644 --- a/lib/generation/generators/writers/pb_flutter_writer.dart +++ b/lib/generation/generators/writers/pb_flutter_writer.dart @@ -112,7 +112,7 @@ class MyApp extends StatelessWidget { assets.forEach((asset) { if (!existingAssets.any((e) => e.endsWith('/$asset'))) { existingAssets - .add('packages/${MainInfo().projectName}/assets/$asset'); + .add('packages/${MainInfo().projectName}/assets/images/$asset'); } }); } @@ -120,7 +120,7 @@ class MyApp extends StatelessWidget { /// Add all elements to the yaml else { modifiableyaml['flutter']['assets'] = assets - .map((e) => 'packages/${MainInfo().projectName}/assets/$e') + .map((e) => 'packages/${MainInfo().projectName}/assets/images/$e') .toList(); } } From c5a5b11594cb1e5c3e9eb4f4c72c96ec6a30fe35 Mon Sep 17 00:00:00 2001 From: Bryan Figueroa Date: Sun, 13 Mar 2022 12:07:51 -0600 Subject: [PATCH 12/13] Fix bitmap loosing extension --- lib/interpret_and_optimize/entities/inherited_bitmap.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/interpret_and_optimize/entities/inherited_bitmap.dart b/lib/interpret_and_optimize/entities/inherited_bitmap.dart index bffef89b..0a328992 100644 --- a/lib/interpret_and_optimize/entities/inherited_bitmap.dart +++ b/lib/interpret_and_optimize/entities/inherited_bitmap.dart @@ -47,7 +47,7 @@ class InheritedBitmap extends PBVisualIntermediateNode childrenStrategy = NoChildStrategy(); if (referenceImage != null && referenceImage.isNotEmpty) { ImageReferenceStorage().addReference( - referenceImage.split('.').first.replaceAll('images/', ''), + referenceImage.replaceAll('images/', ''), '${MainInfo().outputPath}assets/images'); } } From d42fc1a8a6b2c57c89c88325c64ef75e09f6e9f2 Mon Sep 17 00:00:00 2001 From: Ivan <42812006+ivan-015@users.noreply.github.com> Date: Sun, 13 Mar 2022 15:58:18 -0500 Subject: [PATCH 13/13] Increase version to `2.6.0` --- pubspec.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 14754fca..71ac646e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,7 @@ name: parabeac_core -description: A starting point for Dart libraries or applications. -version: 2.5.0 +description: Continuous Design / Continuous Integration for Figma-to-Flutter + +version: 2.6.0 # homepage: https://www.example.com environment: @@ -23,7 +24,7 @@ dependencies: path: ^1.6.0 file: ^6.1.2 pbdl: - git: + git: url: https://github.com/Parabeac/pbdl.git ref: master directed_graph: ^0.2.3