feat(app): copy-to-clipboard button for receive address
Adds a "Copy" button next to the receive address in the Receive tab. Uses Avalonia's Clipboard API (async, code-behind) and calls NotifyAddressCopied() to show the existing addr.copied status message. New i18n key receive.copy in all 6 languages. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -253,8 +253,14 @@
|
||||
<TabItem Header="{Binding Loc[tab.receive]}">
|
||||
<StackPanel Spacing="10" Margin="8">
|
||||
<TextBlock Text="{Binding Loc[receive.next]}"/>
|
||||
<SelectableTextBlock Text="{Binding ReceiveAddress}"
|
||||
FontFamily="monospace" FontSize="16"/>
|
||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||
<SelectableTextBlock Text="{Binding ReceiveAddress}"
|
||||
FontFamily="monospace" FontSize="16"
|
||||
VerticalAlignment="Center"/>
|
||||
<Button Content="{Binding Loc[receive.copy]}"
|
||||
Click="OnCopyReceiveAddressClick"
|
||||
VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
<Border Background="White" Padding="12" CornerRadius="6"
|
||||
HorizontalAlignment="Left"
|
||||
IsVisible="{Binding ReceiveQr, Converter={x:Static ObjectConverters.IsNotNull}}">
|
||||
|
||||
@@ -87,6 +87,17 @@ public partial class MainWindow : Window
|
||||
vm.ApplyDataLocation(path);
|
||||
}
|
||||
|
||||
private async void OnCopyReceiveAddressClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
if (DataContext is not MainWindowViewModel vm || string.IsNullOrEmpty(vm.ReceiveAddress))
|
||||
return;
|
||||
if (Clipboard is { } clipboard)
|
||||
{
|
||||
await clipboard.SetTextAsync(vm.ReceiveAddress);
|
||||
vm.NotifyAddressCopied();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnConnectionStatusTapped(object? sender, TappedEventArgs e)
|
||||
{
|
||||
if (DataContext is MainWindowViewModel vm)
|
||||
|
||||
Reference in New Issue
Block a user