diff --git a/WheelWizard/Views/Pages/FriendsPage.axaml b/WheelWizard/Views/Pages/FriendsPage.axaml index 216bc025..cf0910bd 100644 --- a/WheelWizard/Views/Pages/FriendsPage.axaml +++ b/WheelWizard/Views/Pages/FriendsPage.axaml @@ -91,6 +91,7 @@ + diff --git a/WheelWizard/Views/Pages/FriendsPage.axaml.cs b/WheelWizard/Views/Pages/FriendsPage.axaml.cs index d0546e06..d1097a77 100644 --- a/WheelWizard/Views/Pages/FriendsPage.axaml.cs +++ b/WheelWizard/Views/Pages/FriendsPage.axaml.cs @@ -340,6 +340,12 @@ private void ViewProfile_OnClick(object sender, RoutedEventArgs e) Popups.Create(selectedPlayer.FriendCode).Show(); } + private void ViewOnRwfc_OnClick(object sender, RoutedEventArgs e) + { + if (FriendsListView.SelectedItem is FriendProfile selectedPlayer) + ViewUtils.OpenRwfcPlayer(selectedPlayer.FriendCode); + } + private void RemoveFriend_OnClick(object sender, RoutedEventArgs e) { if (FriendsListView.SelectedItem is not FriendProfile selectedPlayer) diff --git a/WheelWizard/Views/Pages/LeaderboardPage.axaml b/WheelWizard/Views/Pages/LeaderboardPage.axaml index 0dc200d7..3f479fa0 100644 --- a/WheelWizard/Views/Pages/LeaderboardPage.axaml +++ b/WheelWizard/Views/Pages/LeaderboardPage.axaml @@ -198,6 +198,8 @@ + @@ -227,6 +229,8 @@ + @@ -255,6 +259,8 @@ + @@ -287,6 +293,8 @@ + diff --git a/WheelWizard/Views/Pages/LeaderboardPage.axaml.cs b/WheelWizard/Views/Pages/LeaderboardPage.axaml.cs index 4d6977a9..28047882 100644 --- a/WheelWizard/Views/Pages/LeaderboardPage.axaml.cs +++ b/WheelWizard/Views/Pages/LeaderboardPage.axaml.cs @@ -463,6 +463,12 @@ private void ViewProfile_OnClick(object sender, RoutedEventArgs e) Popups.Create(player.FriendCode).Show(); } + private void ViewOnRwfc_OnClick(object sender, RoutedEventArgs e) + { + if (GetContextPlayer(sender) is { } player) + ViewUtils.OpenRwfcPlayer(player.FriendCode); + } + private async void AddFriend_OnClick(object sender, RoutedEventArgs e) { var player = GetContextPlayer(sender); diff --git a/WheelWizard/Views/Pages/RoomDetailsPage.axaml b/WheelWizard/Views/Pages/RoomDetailsPage.axaml index c580a9c5..51e84e79 100644 --- a/WheelWizard/Views/Pages/RoomDetailsPage.axaml +++ b/WheelWizard/Views/Pages/RoomDetailsPage.axaml @@ -106,6 +106,7 @@ + diff --git a/WheelWizard/Views/Pages/RoomDetailsPage.axaml.cs b/WheelWizard/Views/Pages/RoomDetailsPage.axaml.cs index 3573fca8..98ddee15 100644 --- a/WheelWizard/Views/Pages/RoomDetailsPage.axaml.cs +++ b/WheelWizard/Views/Pages/RoomDetailsPage.axaml.cs @@ -141,6 +141,12 @@ private void ViewProfile_OnClick(object sender, RoutedEventArgs e) Popups.Create(selectedPlayer.FriendCode).Show(); } + private void ViewOnRwfc_OnClick(object sender, RoutedEventArgs e) + { + if (PlayersListView.SelectedItem is RrPlayer selectedPlayer) + ViewUtils.OpenRwfcPlayer(selectedPlayer.FriendCode); + } + private async void AddFriend_OnClick(object sender, RoutedEventArgs e) { if (PlayersListView.SelectedItem is not RrPlayer selectedPlayer) diff --git a/WheelWizard/Views/ViewUtils.cs b/WheelWizard/Views/ViewUtils.cs index 8ec0675d..675666da 100644 --- a/WheelWizard/Views/ViewUtils.cs +++ b/WheelWizard/Views/ViewUtils.cs @@ -26,6 +26,15 @@ public static void OpenLink(string link) ShowSnackbar("Opened link"); } + public static void OpenRwfcPlayer(string? friendCode) + { + var digits = new string((friendCode ?? string.Empty).Where(char.IsAsciiDigit).ToArray()); + if (digits.Length != 12) + return; + + OpenLink($"https://rwfc.net/player/{digits[..4]}-{digits[4..8]}-{digits[8..]}"); + } + public static void ShowSnackbar(string message, SnackbarType type = SnackbarType.Success) => GetLayout().ShowSnackbar(message, type); public static Layout GetLayout() =>