Commit graph

4 commits

Author SHA1 Message Date
Aaron Powell
ac2ebeef29 feat: Add library management (add/remove game from library) 2026-01-19 17:55:32 +11:00
Aaron Powell
b419e5971e fix: Download media for depot games when viewing details 2026-01-19 17:40:18 +11:00
Aaron Powell
7d51fbb6ad refactor: Extract UI components for better organization
- Create ViewModels/Components/ and Views/Components/ folders
- Extract LibrarySidebarView and LibrarySidebarViewModel from ShellView
- Move LibraryItemViewModel to Components folder
- Move GameItemViewModel to Components folder
- Create GameBannerView component (not yet integrated)
- Create PageHeaderView component (not yet integrated)
- Simplify ShellView to use LibrarySidebarView component
- Update GamesListView to reference Components namespace

This improves code organization and makes it easier to navigate
the codebase as the UI grows.
2026-01-19 14:55:27 +11:00
Aaron Powell
8cf2139ccf feat: Add Avalonia launcher PoC with cross-platform UI
- Create LANCommander.Launcher.Avalonia project using Avalonia MVVM
- Implement server selection, login, and game library views
- Add library sidebar showing user's games
- Add depot/games list view with game details
- Integrate with LANCommander.Launcher.Services for:
  - DepotService, LibraryService, ImportService, MediaService
  - SDK authentication and connection clients
- Fix async initialization pattern to prevent UI thread deadlocks
- Add ConfigureAwait(false) to ServerConfigurationProvider.RefreshAsync
- Add Microsoft.Extensions.Http package for HttpClient DI

Key features:
- Server discovery and connection
- User authentication with credential persistence
- Library import from server to local SQLite cache
- Game icons and banners via MediaService
- Navigation between library, depot, and game details
2026-01-19 14:24:49 +11:00