Line data Source code
1 : import 'package:widgetbook/widgetbook.dart'; 2 : 3 : /// Helper to navigate the folder tree. 4 : class FolderHelper { 5 1 : static List<Folder> getAllFoldersFromCategories(List<Category> categories) { 6 1 : List<Folder> folders = []; 7 2 : for (Category category in categories) { 8 1 : folders.addAll( 9 1 : getAllFoldersFromCategory(category), 10 : ); 11 : } 12 : return folders; 13 : } 14 : 15 1 : static List<Folder> getAllFoldersFromCategory(Category category) { 16 2 : return getAllFoldersFromFolders(category.folders); 17 : } 18 : 19 1 : static List<Folder> getAllFoldersFromFolders(List<Folder> folders) { 20 1 : List<Folder> folderList = []; 21 2 : for (Folder folder in folders) { 22 1 : folderList.addAll( 23 1 : getAllFoldersFromFolder(folder), 24 : ); 25 : } 26 : return folderList; 27 : } 28 : 29 1 : static List<Folder> getAllFoldersFromFolder(Folder folder) { 30 1 : List<Folder> folderList = List<Folder>.from( 31 1 : [folder], 32 : ); 33 1 : folderList.addAll( 34 2 : getAllFoldersFromFolders(folder.folders), 35 : ); 36 : return folderList; 37 : } 38 : }