diff --git a/src/SharpIDE.Application/Features/SolutionDiscovery/VsPersistence/SharpIdeModels.cs b/src/SharpIDE.Application/Features/SolutionDiscovery/VsPersistence/SharpIdeModels.cs index 1d1c898..4e755b4 100644 --- a/src/SharpIDE.Application/Features/SolutionDiscovery/VsPersistence/SharpIdeModels.cs +++ b/src/SharpIDE.Application/Features/SolutionDiscovery/VsPersistence/SharpIdeModels.cs @@ -14,6 +14,7 @@ public class SharpIdeSolutionFolder : ISharpIdeNode public required string Name { get; set; } public required List Folders { get; set; } public required List Projects { get; set; } + public bool Expanded { get; set; } } public class SharpIdeProjectModel : ISharpIdeNode { @@ -21,4 +22,5 @@ public class SharpIdeProjectModel : ISharpIdeNode public required string FilePath { get; set; } public required List Folders { get; set; } public required List Files { get; set; } + public bool Expanded { get; set; } } diff --git a/src/SharpIDE.Photino/Components/SolutionExplorer.razor b/src/SharpIDE.Photino/Components/SolutionExplorer.razor index 159618a..f0babcb 100644 --- a/src/SharpIDE.Photino/Components/SolutionExplorer.razor +++ b/src/SharpIDE.Photino/Components/SolutionExplorer.razor @@ -19,7 +19,7 @@ { @GetSolutionFolderFragment(folder) } - @foreach(var project in SolutionModel.Projects) + @foreach (var project in SolutionModel.Projects) { @GetProjectFragment(project) } @@ -45,30 +45,36 @@ private RenderFragment GetSolutionFolderFragment(SharpIdeSolutionFolder slnFolder) => @ - - @foreach(var childFolder in slnFolder.Folders) + + @if (slnFolder.Expanded) { - @GetSolutionFolderFragment(childFolder) - } - @foreach(var childProject in slnFolder.Projects) - { - @GetProjectFragment(childProject) + @foreach (var childFolder in slnFolder.Folders) + { + @GetSolutionFolderFragment(childFolder) + } + @foreach (var childProject in slnFolder.Projects) + { + @GetProjectFragment(childProject) + } } ; private RenderFragment GetProjectFragment(SharpIdeProjectModel project) => @ - - @foreach (var folder in project.Folders) + + @if (project.Expanded) { - - @GetFolderFragment(folder) - - } - @foreach(var file in project.Files) - { - @GetFileFragment(file) + @foreach (var folder in project.Folders) + { + + @GetFolderFragment(folder) + + } + @foreach (var file in project.Files) + { + @GetFileFragment(file) + } } ;