Skip to content

Commit 0b8ec31

Browse files
xristianstefanovxristianstefanov
authored andcommitted
chore(Autocomplete): add suggestions
1 parent e13e755 commit 0b8ec31

File tree

1 file changed

+32
-7
lines changed

1 file changed

+32
-7
lines changed

knowledge-base/autocomplete-copy-text-itemtemplate.md

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to allow users to copy text from the ItemTemplate in the
44
type: how-to
55
page_title: How to Enable Text Copy in AutoComplete Dropdown Blazor
66
slug: autocomplete-kb-copy-text-itemtemplate
7-
tags: autocomplete, blazor, itemtemplate, clipboard, text, copy, paste
7+
tags: blazor, autocomplete, itemtemplate, clipboard, copy, paste
88
res_type: kb
99
ticketid: 1689288
1010
---
@@ -35,8 +35,11 @@ To enable text copying from the dropdown list in the AutoComplete, use the `Item
3535
@inject IJSRuntime JS
3636
3737
<style>
38-
.copy-button {
39-
margin-left: 8px;
38+
.autocomplete-item {
39+
display: flex;
40+
align-items: center;
41+
justify-content: space-between;
42+
gap: 8px;
4043
}
4144
</style>
4245
@@ -45,17 +48,22 @@ To enable text copying from the dropdown list in the AutoComplete, use the `Item
4548
@{
4649
var text = context.ToString();
4750
}
48-
<div style="display: flex; align-items: center; justify-content: space-between;">
51+
<div class="autocomplete-item">
4952
<strong>@text</strong>
50-
<TelerikButton OnClick="@(() => CopyToClipboard(text))" Class="copy-button" Icon="@SvgIcon.Copy" FillMode="@ThemeConstants.Button.FillMode.Outline" />
53+
<TelerikButton OnClick="@(() => CopyToClipboard(text))"
54+
Icon="@SvgIcon.Copy"
55+
FillMode="@ThemeConstants.Button.FillMode.Outline" />
5156
</div>
5257
</ItemTemplate>
5358
</TelerikAutoComplete>
5459
5560
@code {
5661
private string Role { get; set; }
5762
private List<string> AutoCompleteData { get; set; }
58-
private List<string> SourceData { get; set; } = new List<string> { "Manager", "Developer", "QA", "Technical Writer", "Support Engineer", "Sales Agent", "Architect", "Designer" };
63+
private List<string> SourceData { get; set; } = new()
64+
{
65+
"Manager", "Developer", "QA", "Technical Writer", "Support Engineer", "Sales Agent", "Architect", "Designer"
66+
};
5967
6068
protected override void OnInitialized()
6169
{
@@ -69,7 +77,24 @@ To enable text copying from the dropdown list in the AutoComplete, use the `Item
6977
7078
private async Task CopyToClipboard(string text)
7179
{
72-
await JS.InvokeVoidAsync("navigator.clipboard.writeText", text);
80+
try
81+
{
82+
var isSupported = await JS.InvokeAsync<bool>("eval", "!!(navigator.clipboard && navigator.clipboard.writeText)");
83+
if (isSupported)
84+
{
85+
await JS.InvokeVoidAsync("navigator.clipboard.writeText", text);
86+
}
87+
else
88+
{
89+
Console.WriteLine("Clipboard API not supported in this browser.");
90+
// Optionally show a notification to the user
91+
}
92+
}
93+
catch (Exception ex)
94+
{
95+
Console.Error.WriteLine($"Clipboard copy failed: {ex.Message}");
96+
// Optionally show a fallback UI message to the user
97+
}
7398
}
7499
}
75100
````

0 commit comments

Comments
 (0)