Skip to content

feat(navigation): implement correct page transition lifecycle and progressive settings loading (#199)#200

Merged
ALDamico merged 1 commit into
developfrom
feature/navigation-perf
May 30, 2026
Merged

feat(navigation): implement correct page transition lifecycle and progressive settings loading (#199)#200
ALDamico merged 1 commit into
developfrom
feature/navigation-perf

Conversation

@ALDamico

Copy link
Copy Markdown
Owner
  • NavigationManager: add Task.Delay(TransitionDuration + 100ms) before OnNavigatedTo so CrossFade completes first
  • NavigationManager: add OnNavigatingTo lifecycle hook for pre-transition lightweight init
  • NavigationManager: remove OnNavigatingFrom, unify NavigateTo/NavigateToRoot overloads
  • NavigationConstants: new class with TransitionDuration as single source of truth
  • MainWindow.axaml: remove IsEnabled/IsBusy binding that cancelled in-progress transitions; bind CrossFade Duration to NavigationConstants
  • SettingsPageViewModel: extract InitXxxSettings() methods, progressive loading with InvokeAsync(Background)
  • SettingsPageView.axaml: fix DataTemplate DataContext binding causing InvalidCastException
  • GameDetailsViewModel: implement OnNavigatingTo to set Game before transition
  • GameListViewModel: Games nullable to prevent empty state flash during loading
  • GameListView.axaml: replace inline empty state with EmptyStateView control
  • Remove unused asset Lara_Croft_Flashlight.png
  • LocalizationManager.GetSupportedLanguages: made async

Closes #199

…gressive settings loading (#199)

- NavigationManager: add Task.Delay(TransitionDuration + 100ms) before OnNavigatedTo so CrossFade completes first
- NavigationManager: add OnNavigatingTo lifecycle hook for pre-transition lightweight init
- NavigationManager: remove OnNavigatingFrom, unify NavigateTo/NavigateToRoot overloads
- NavigationConstants: new class with TransitionDuration as single source of truth
- MainWindow.axaml: remove IsEnabled/IsBusy binding that cancelled in-progress transitions; bind CrossFade Duration to NavigationConstants
- SettingsPageViewModel: extract InitXxxSettings() methods, progressive loading with InvokeAsync(Background)
- SettingsPageView.axaml: fix DataTemplate DataContext binding causing InvalidCastException
- GameDetailsViewModel: implement OnNavigatingTo to set Game before transition
- GameListViewModel: Games nullable to prevent empty state flash during loading
- GameListView.axaml: replace inline empty state with EmptyStateView control
- Remove unused asset Lara_Croft_Flashlight.png
- LocalizationManager.GetSupportedLanguages: made async

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ALDamico ALDamico self-assigned this May 30, 2026
@ALDamico ALDamico added the refactor Non-user-facing improvements. label May 30, 2026
@ALDamico
ALDamico merged commit df2c5e9 into develop May 30, 2026
2 checks passed
@ALDamico
ALDamico deleted the feature/navigation-perf branch May 30, 2026 01:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor Non-user-facing improvements.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(navigation): implement correct page transition lifecycle and progressive settings loading

1 participant