Skip to content

Commit 83cfc64

Browse files
committed
docs(Chat): improve examples to follow style guide
1 parent 00c8507 commit 83cfc64

File tree

7 files changed

+361
-211
lines changed

7 files changed

+361
-211
lines changed

components/chat/data-binding.md

Lines changed: 87 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,42 @@ To bind the Chat to data, set its `Data` parameter to an `IEnumerable<T>` where
1919
>caption Basic data binding
2020
2121
````Razor
22-
<TelerikChat Data="@Messages"
22+
<TelerikChat Data="@ChatData"
2323
AuthorId="@CurrentUserId"
24-
OnSendMessage="@HandleSendMessage">
24+
OnSendMessage="@OnChatSendMessage">
2525
</TelerikChat>
2626
2727
@code {
28-
private List<ChatMessage> Messages { get; set; } = new List<ChatMessage>
28+
#region Component Parameters
29+
30+
private List<ChatMessage> ChatData { get; set; }
31+
private string CurrentUserId { get; set; } = "user1";
32+
33+
#endregion
34+
35+
#region Lifecycle Methods
36+
37+
protected override void OnInitialized()
2938
{
30-
new ChatMessage { Id = "1", Text = "Hello!", AuthorId = "user1", Timestamp = DateTime.Now.AddMinutes(-5) },
31-
new ChatMessage { Id = "2", Text = "Hi there!", AuthorId = "user2", Timestamp = DateTime.Now.AddMinutes(-3) }
32-
};
39+
ChatData = new List<ChatMessage>();
40+
41+
for (int i = 1; i <= 2; i++)
42+
{
43+
ChatData.Add(new ChatMessage
44+
{
45+
Id = i.ToString(),
46+
Text = i == 1 ? "Hello!" : "Hi there!",
47+
AuthorId = i == 1 ? "user1" : "user2",
48+
Timestamp = DateTime.Now.AddMinutes(-5 + (i * 2))
49+
});
50+
}
51+
}
3352
34-
private string CurrentUserId { get; set; } = "user1";
35-
36-
private void HandleSendMessage(ChatSendMessageEventArgs args)
53+
#endregion
54+
55+
#region Methods
56+
57+
private void OnChatSendMessage(ChatSendMessageEventArgs args)
3758
{
3859
var newMessage = new ChatMessage
3960
{
@@ -43,8 +64,12 @@ To bind the Chat to data, set its `Data` parameter to an `IEnumerable<T>` where
4364
Timestamp = DateTime.Now
4465
};
4566
46-
Messages.Add(newMessage);
67+
ChatData.Add(newMessage);
4768
}
69+
70+
#endregion
71+
72+
#region Class Declarations
4873
4974
public class ChatMessage
5075
{
@@ -72,6 +97,8 @@ To bind the Chat to data, set its `Data` parameter to an `IEnumerable<T>` where
7297
7398
public IEnumerable<FileSelectFileInfo> Attachments { get; set; } = new List<FileSelectFileInfo>();
7499
}
100+
101+
#endregion
75102
}
76103
````
77104

@@ -98,24 +125,44 @@ The Chat component provides field mapping parameters to work with different data
98125
The Chat component automatically reflects changes to the bound data collection. You can add, modify, or remove messages programmatically:
99126

100127
````Razor
101-
<TelerikChat @ref="@Chat1"
102-
Data="@Messages"
103-
TextField="Content"
128+
<TelerikChat @ref="@ChatRef"
129+
Data="@ChatData"
130+
TextField="@nameof(ChatMessage.Content)"
104131
AuthorId="@CurrentUserId"
105-
OnSendMessage="@HandleSendMessage">
132+
OnSendMessage="@OnChatSendMessage">
106133
</TelerikChat>
107134
108135
<div style="margin-top: 20px;">
109-
<TelerikButton OnClick="@AddSystemMessage">Add System Message</TelerikButton>
110-
<TelerikButton OnClick="@ClearMessages">Clear All Messages</TelerikButton>
136+
<TelerikButton OnClick="@OnAddSystemMessageClick">Add System Message</TelerikButton>
137+
<TelerikButton OnClick="@OnClearMessagesClick">Clear All Messages</TelerikButton>
111138
</div>
112139
113140
@code {
114-
private TelerikChat<ChatMessage> Chat1 { get; set; }
115-
private List<ChatMessage> Messages { get; set; } = new List<ChatMessage>();
116-
private string CurrentUserId = "user1";
141+
#region Component References
142+
143+
private TelerikChat<ChatMessage> ChatRef { get; set; }
144+
145+
#endregion
146+
147+
#region Component Parameters
148+
149+
private List<ChatMessage> ChatData { get; set; }
150+
private string CurrentUserId { get; set; } = "user1";
151+
152+
#endregion
153+
154+
#region Lifecycle Methods
155+
156+
protected override void OnInitialized()
157+
{
158+
ChatData = new List<ChatMessage>();
159+
}
160+
161+
#endregion
162+
163+
#region Methods
117164
118-
private void HandleSendMessage(ChatSendMessageEventArgs args)
165+
private void OnChatSendMessage(ChatSendMessageEventArgs args)
119166
{
120167
var newMessage = new ChatMessage
121168
{
@@ -126,14 +173,14 @@ The Chat component automatically reflects changes to the bound data collection.
126173
Timestamp = DateTime.Now
127174
};
128175
129-
Messages.Add(newMessage);
176+
ChatData.Add(newMessage);
130177
131-
Chat1?.Refresh();
178+
ChatRef?.Refresh();
132179
}
133180
134-
private void AddSystemMessage()
181+
private void OnAddSystemMessageClick()
135182
{
136-
Messages.Add(new ChatMessage
183+
ChatData.Add(new ChatMessage
137184
{
138185
Id = Guid.NewGuid().ToString(),
139186
Content = "System notification: New user joined the chat",
@@ -142,25 +189,37 @@ The Chat component automatically reflects changes to the bound data collection.
142189
Timestamp = DateTime.Now
143190
});
144191
145-
Chat1?.Refresh();
192+
ChatRef?.Refresh();
146193
}
147194
148-
private void ClearMessages()
195+
private void OnClearMessagesClick()
149196
{
150-
Messages.Clear();
151-
Chat1?.Refresh();
197+
ChatData.Clear();
198+
ChatRef?.Refresh();
152199
}
200+
201+
#endregion
202+
203+
#region Class Declarations
153204
154205
public class ChatMessage
155206
{
156207
public string Id { get; set; }
208+
157209
public string AuthorId { get; set; }
210+
158211
public string AuthorName { get; set; }
212+
159213
public string Content { get; set; }
214+
160215
public DateTime Timestamp { get; set; }
216+
161217
public string Status { get; set; }
218+
162219
public IEnumerable<FileSelectFileInfo> Attachments { get; set; } = new List<FileSelectFileInfo>();
163220
}
221+
222+
#endregion
164223
}
165224
````
166225

components/chat/events.md

Lines changed: 44 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ The `OnSendMessage` event fires when a user sends a new message. Use this event
1919
>caption Handle the OnSendMessage event
2020
2121
````Razor
22-
<TelerikChat Data="@Messages"
23-
OnSendMessage="@HandleSendMessage">
22+
<TelerikChat Data="@ChatData"
23+
OnSendMessage="@OnChatSendMessage">
2424
</TelerikChat>
2525
26-
@code {
27-
private List<ChatMessage> Messages { get; set; } = new List<ChatMessage>();
26+
@code {
27+
private List<ChatMessage> ChatData { get; set; } = new List<ChatMessage>();
2828
29-
private string CurrentUserId { get; set; } = "user1";
29+
private string CurrentUserId { get; set; } = "user1";
3030
31-
private void HandleSendMessage(ChatSendMessageEventArgs args)
31+
private void OnChatSendMessage(ChatSendMessageEventArgs args)
3232
{
3333
var newMessage = new ChatMessage
3434
{
@@ -38,7 +38,7 @@ The `OnSendMessage` event fires when a user sends a new message. Use this event
3838
Timestamp = DateTime.Now
3939
};
4040
41-
Messages.Add(newMessage);
41+
ChatData.Add(newMessage);
4242
}
4343
4444
public class ChatMessage
@@ -77,21 +77,30 @@ The `OnSuggestionClick` event fires when a user clicks on a quick reply suggesti
7777
>caption Handle suggestion clicks
7878
7979
````Razor
80-
<TelerikChat Data="@Messages"
81-
@ref="@Chat1"
82-
Suggestions="@QuickReplies"
83-
OnSuggestionClick="@HandleSuggestionClick">
80+
<TelerikChat Data="@ChatData"
81+
@ref="@ChatRef"
82+
Suggestions="@ChatSuggestions"
83+
OnSuggestionClick="@OnChatSuggestionClick">
8484
</TelerikChat>
8585
86-
@code {
87-
private TelerikChat<ChatMessage> Chat1;
88-
89-
private List<string> QuickReplies = new List<string>
86+
@code {
87+
private TelerikChat<ChatMessage> ChatRef { get; set; }
88+
89+
private List<ChatMessage> ChatData { get; set; }
90+
91+
private List<string> ChatSuggestions { get; set; }
92+
93+
protected override void OnInitialized()
9094
{
91-
"Request project status update"
92-
};
95+
ChatData = new List<ChatMessage>();
96+
97+
ChatSuggestions = new List<string>
98+
{
99+
"Request project status update"
100+
};
101+
}
93102
94-
private void HandleSuggestionClick(ChatSuggestionClickEventArgs args)
103+
private void OnChatSuggestionClick(ChatSuggestionClickEventArgs args)
95104
{
96105
string responseMessage = string.Empty;
97106
@@ -100,7 +109,7 @@ The `OnSuggestionClick` event fires when a user clicks on a quick reply suggesti
100109
responseMessage = "Could you please provide the current status of all ongoing projects?";
101110
}
102111
103-
Messages.Add(new ChatMessage
112+
ChatData.Add(new ChatMessage
104113
{
105114
Id = Guid.NewGuid().ToString(),
106115
AuthorId = "user2",
@@ -110,7 +119,7 @@ The `OnSuggestionClick` event fires when a user clicks on a quick reply suggesti
110119
Timestamp = DateTime.Now
111120
});
112121
113-
Chat1?.Refresh();
122+
ChatRef?.Refresh();
114123
}
115124
}
116125
````
@@ -122,12 +131,12 @@ The `OnDownload` event fires when a user downloads files from a message. Use thi
122131
>caption Handle file downloads
123132
124133
````RAZOR.skip-repl
125-
<TelerikChat Data="@Messages"
126-
OnDownload="@HandleDownload">
134+
<TelerikChat Data="@ChatData"
135+
OnDownload="@OnChatDownload">
127136
</TelerikChat>
128137
129-
@code {
130-
private async Task HandleDownload(ChatDownloadEventArgs args)
138+
@code {
139+
private async Task OnChatDownload(ChatDownloadEventArgs args)
131140
{
132141
foreach (var file in args.Files)
133142
{
@@ -148,14 +157,14 @@ The `OnMessageUnpin` event fires when a user unpins a message. Handle this event
148157
>caption Handle message unpinning
149158
150159
````RAZOR.skip-repl
151-
<TelerikChat Data="@Messages"
152-
OnMessageUnpin="@HandleMessageUnpin">
160+
<TelerikChat Data="@ChatData"
161+
OnMessageUnpin="@OnChatMessageUnpin">
153162
</TelerikChat>
154163
155-
@code {
156-
private void HandleMessageUnpin(ChatMessageUnpinEventArgs args)
164+
@code {
165+
private void OnChatMessageUnpin(ChatMessageUnpinEventArgs args)
157166
{
158-
var message = Messages.FirstOrDefault(m => m.Id == args.MessageId);
167+
var message = ChatData.FirstOrDefault(m => m.Id == args.MessageId);
159168
if (message != null)
160169
{
161170
message.IsPinned = false;
@@ -171,17 +180,17 @@ The `OnInputValueChanged` event fires when the input value changes. Use this for
171180
>caption Handle input value changes
172181
173182
````RAZOR.skip-repl
174-
<TelerikChat Data="@Messages"
175-
InputValue="@InputValue"
176-
OnInputValueChanged="@HandleInputChange">
183+
<TelerikChat Data="@ChatData"
184+
InputValue="@ChatInputValue"
185+
OnInputValueChanged="@OnChatInputValueChanged">
177186
</TelerikChat>
178187
179188
@code {
180-
private string InputValue { get; set; } = string.Empty;
189+
private string ChatInputValue { get; set; } = string.Empty;
181190
182-
private void HandleInputChange(string value)
191+
private void OnChatInputValueChanged(string newValue)
183192
{
184-
InputValue = value;
193+
ChatInputValue = newValue;
185194
}
186195
}
187196
````

components/chat/file-uploads-and-media.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ Configure file upload behavior using the `ChatFileSelectSettings` component:
5757
5858
@code {
5959
private TelerikChat<ChatMessage> Chat1;
60+
6061
private List<string> AllowedExtensions = new List<string> { ".jpg", ".jpeg", ".png", ".pdf", ".docx", ".txt" };
6162
6263
private List<ChatMessage> ChatConversation = new List<ChatMessage>()

0 commit comments

Comments
 (0)