Files
ThingsGateway/framework/Web/ThingsGateway.Components/Components/AppCopyButton.razor
T
2023-09-30 23:05:53 +08:00

61 lines
1.7 KiB
Plaintext

@*
//------------------------------------------------------------------------------
// 此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
// 此代码版权(除特别声明外的代码)归作者本人Diego所有
// 源代码使用协议遵循本仓库的开源协议及附加协议
// Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway
// Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway
// 使用文档:https://diego2098.gitee.io/thingsgateway-docs/
// QQ群:605534569
//------------------------------------------------------------------------------
*@
@namespace ThingsGateway.Components
@using BlazorComponent;
@using Masa.Blazor
<MButton Absolute Class="@($"m-btn--copy {Class}")" Icon Right Top Show="Show" OnClick="Copy">
<FadeTransition LeaveAbsolute>
<ShowTransitionElement Value="_copying">
<MIcon Color="success">
mdi-check
</MIcon>
</ShowTransitionElement>
<ShowTransitionElement Value="!_copying">
<MIcon Color="white">
mdi-content-copy
</MIcon>
</ShowTransitionElement>
</FadeTransition>
</MButton>
@code {
[Inject]
public IJSRuntime Js { get; set; } = null!;
[Parameter]
public bool Show { get; set; }
[Parameter]
public string Class { get; set; }
[Parameter]
[EditorRequired]
public string Content { get; set; }
private bool _copying;
private async Task Copy()
{
if (_copying) return;
_copying = true;
await Js.InvokeVoidAsync(JsInteropConstants.Copy, Content);
await Task.Delay(1000);
_copying = false;
}
}