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() =>