Skip to content

Commit

Permalink
refactor: moves code from viewmodel to page file, as it should be in …
Browse files Browse the repository at this point in the history
…the 'codebehind' file.
  • Loading branch information
andr9528 committed Dec 6, 2024
1 parent 5d5991c commit 3ebef02
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 54 deletions.
55 changes: 44 additions & 11 deletions Tracker.Frontend.Uno/Presentation/ModulesNavigationPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,16 @@ namespace Tracker.Frontend.Uno.Presentation;

public sealed partial class ModulesNavigationPage : Page
{
public static readonly List<TrackerModule> Modules = new()
private readonly List<TrackerModule> modules = new()
{
new TrackerModule(TrackerModule.Module.BUDGET),
new TrackerModule(TrackerModule.Module.DINING),
new TrackerModule(TrackerModule.Module.TIME),
};

private TrackerModule.Module activeModule;
private Dictionary<TrackerModule.Module, Grid> contentGrids = new();

public ModulesNavigationPage()
{
DataContext ??= (Application.Current as App).Host.Services.GetRequiredService<ModulesNavigationViewModel>();
Expand All @@ -20,6 +23,8 @@ public ModulesNavigationPage()
BuildContent((ModulesNavigationViewModel) DataContext));
}

#region UI

private Grid BuildContent(ModulesNavigationViewModel viewModel)
{
var grid = new Grid();
Expand Down Expand Up @@ -59,7 +64,7 @@ private ListView BuildNavigationListView(ModulesNavigationViewModel viewModel)
{
var view = new ListView();

var options = Modules.Select(module =>
var options = modules.Select(module =>
{
var item = new TextBlock()
{
Expand All @@ -75,18 +80,12 @@ private ListView BuildNavigationListView(ModulesNavigationViewModel viewModel)
return item;
});

view.SelectionChanged += (sender, args) => ListViewOnSelectionChanged(sender, args, viewModel);
view.SelectionChanged += ListViewOnSelectionChanged;
view.ItemsSource = options;

return view;
}

private void ListViewOnSelectionChanged(
object sender, SelectionChangedEventArgs e, ModulesNavigationViewModel viewModel)
{
viewModel.ListViewOnSelectionChanged(sender, e);
}

private Grid BuildContentGrid(ModulesNavigationViewModel viewModel)
{
var grid = new Grid
Expand All @@ -96,7 +95,7 @@ private Grid BuildContentGrid(ModulesNavigationViewModel viewModel)

Dictionary<TrackerModule.Module, Grid> contentGrids = new();

foreach (TrackerModule module in Modules)
foreach (TrackerModule module in modules)
{
var contentGrid = new Grid
{
Expand All @@ -110,8 +109,42 @@ private Grid BuildContentGrid(ModulesNavigationViewModel viewModel)
grid.Children.Add(contentGrid);
}

viewModel.SetContentGridsDictionary(contentGrids);
SetContentGridsDictionary(contentGrids);

return grid;
}

#endregion

#region Logic

private void SetContentGridsDictionary(Dictionary<TrackerModule.Module, Grid> contentGrids)
{
this.contentGrids = contentGrids;
SetActiveModule(modules[0].TypeModule);
}

private void SetActiveModule(TrackerModule.Module module)
{
activeModule = module;

foreach (var grid in contentGrids)
{
grid.Value.Visibility = Visibility.Collapsed;
}

contentGrids[activeModule].Visibility = Visibility.Visible;

Console.WriteLine($"Collapsed all grids except {activeModule}");
}

private void ListViewOnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var listView = (ListView) sender;
TrackerModule trackerModule = modules[listView.SelectedIndex];

SetActiveModule(trackerModule.TypeModule);
}

#endregion
}
43 changes: 0 additions & 43 deletions Tracker.Frontend.Uno/Presentation/ModulesNavigationViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,53 +5,10 @@ namespace Tracker.Frontend.Uno.Presentation;

public partial class ModulesNavigationViewModel : ObservableObject
{
//private readonly INavigator _navigator;

[ObservableProperty] private TrackerModule.Module activeModule;
private Dictionary<TrackerModule.Module, Grid> contentGrids = new();

public ModulesNavigationViewModel()
{
//_navigator = navigator;
Title = "Tracker";
}

public string? Title { get; }

public void ListViewOnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var listView = (ListView) sender;
TrackerModule trackerModule = ModulesNavigationPage.Modules[listView.SelectedIndex];

SetActiveModule(trackerModule.TypeModule);
}

public void SetContentGridsDictionary(Dictionary<TrackerModule.Module, Grid> contentGrids)
{
this.contentGrids = contentGrids;
SetActiveModule(ModulesNavigationPage.Modules[0].TypeModule);
}

private void SetActiveModule(TrackerModule.Module module)
{
ActiveModule = module;

foreach (var grid in contentGrids)
{
grid.Value.Visibility = Visibility.Collapsed;
}

contentGrids[ActiveModule].Visibility = Visibility.Visible;

Console.WriteLine($"Collapsed all grids except {ActiveModule}");

//BudgetModuleVisibility =
// ActiveModule == TrackerModule.Module.BUDGET ? Visibility.Visible : Visibility.Collapsed;
//DiningModuleVisibility =
// ActiveModule == TrackerModule.Module.DINING ? Visibility.Visible : Visibility.Collapsed;
//TimeModuleVisibility = ActiveModule == TrackerModule.Module.TIME ? Visibility.Visible : Visibility.Collapsed;

//Console.WriteLine(
// $"Budget: {BudgetModuleVisibility}; Dining: {DiningModuleVisibility}; Time: {TimeModuleVisibility}");
}
}

0 comments on commit 3ebef02

Please sign in to comment.