Skip to content

Commit 4ab96a9

Browse files
Merge pull request #77 from S-Luiten/fix/#76
Add CancellationToken overloads.
2 parents 3071436 + 063b860 commit 4ab96a9

File tree

8 files changed

+124
-49
lines changed

8 files changed

+124
-49
lines changed

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,20 +146,18 @@ Below is a list of all the options available on the Text Editor.
146146
BlazoredTextEditor QuillHtml;
147147
string QuillHTMLContent;
148148

149-
public async void GetHTML()
149+
public async Task GetHTML()
150150
{
151151
QuillHTMLContent = await this.QuillHtml.GetHTML();
152-
StateHasChanged();
153152
}
154153

155-
public async void SetHTML()
154+
public async Task SetHTML()
156155
{
157156
string QuillContent =
158157
@"<a href='http://BlazorHelpWebsite.com/'>" +
159158
"<img src='images/BlazorHelpWebsite.gif' /></a>";
160159

161160
await this.QuillHtml.LoadHTMLContent(QuillContent);
162-
StateHasChanged();
163161
}
164162
}
165163
```

samples/BlazorClientSide/Pages/Index.razor

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -220,51 +220,53 @@ console.<span class="hljs-built_in">log</span>("I love " <span class="hljs-opera
220220

221221
bool mode = false;
222222

223-
public async void GetHTML()
223+
public async Task GetHTML()
224224
{
225-
QuillHTMLContent = await this.QuillHtml.GetHTML();
226-
StateHasChanged();
225+
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(1));
226+
227+
try
228+
{
229+
QuillHTMLContent = await this.QuillHtml.GetHTML(cts.Token);
230+
}
231+
catch (TaskCanceledException e)
232+
{
233+
QuillHTMLContent = "<p>ERROR: Timeout</p>";
234+
}
227235
}
228236

229-
public async void SetHTML()
237+
public async Task SetHTML()
230238
{
231239
string QuillContent =
232240
@"<a href='http://BlazorHelpWebsite.com/'>" +
233241
"<img src='images/BlazorHelpWebsite.gif' /></a>";
234242

235243
await this.QuillHtml.LoadHTMLContent(QuillContent);
236-
StateHasChanged();
237244
}
238245

239-
public async void GetContent()
246+
public async Task GetContent()
240247
{
241248
QuillContent = await this.QuillNative.GetContent();
242-
StateHasChanged();
243249
}
244-
public async void LoadContent()
250+
public async Task LoadContent()
245251
{
246252
await this.QuillNative.LoadContent(QuillContent);
247-
StateHasChanged();
248253
}
249-
public async void InsertImage()
254+
public async Task InsertImage()
250255
{
251256
await this.QuillNative.InsertImage("images/BlazorHelpWebsite.gif");
252-
StateHasChanged();
253257
}
254-
public async void InsertText()
258+
public async Task InsertText()
255259
{
256260
await this.QuillNative.InsertText("Some Text");
257-
StateHasChanged();
258261
}
259262
async Task ToggleQuillEditor()
260263
{
261264
mode = (mode) ? false : true;
262265
await this.QuillReadOnly.EnableEditor(mode);
263266
}
264267

265-
public async void GetHTMLCode()
268+
public async Task GetHTMLCode()
266269
{
267270
QuillHTMLCodeContent = await this.QuillCode.GetHTML();
268-
StateHasChanged();
269271
}
270272
}

samples/BlazorClientSide/_Imports.razor

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@using System.Net.Http
2+
@using System.Threading
23
@using Microsoft.AspNetCore.Components.Forms
34
@using Microsoft.AspNetCore.Components.Routing
45
@using Microsoft.AspNetCore.Components.Web

samples/BlazorServerSide/Pages/Index.razor

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -212,49 +212,52 @@ console.<span class="hljs-built_in">log</span>("I love " <span class="hljs-opera
212212

213213
string QuillHTMLContent;
214214
string QuillContent;
215-
string QuillReadOnlyContent =
215+
string QuillReadOnlyContent =
216216
@"<span><b>Read Only</b> <u>Content</u></span>";
217217
string QuillHTMLCodeContent;
218218

219219
bool mode = false;
220220

221-
public async void GetHTML()
221+
public async Task GetHTML()
222222
{
223-
QuillHTMLContent = await this.QuillHtml.GetHTML();
224-
StateHasChanged();
223+
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(1));
224+
225+
try
226+
{
227+
QuillHTMLContent = await this.QuillHtml.GetHTML(cts.Token);
228+
}
229+
catch (TaskCanceledException e)
230+
{
231+
QuillHTMLContent = "<p>ERROR: Timeout</p>";
232+
}
225233
}
226234

227-
public async void SetHTML()
235+
public async Task SetHTML()
228236
{
229237
string QuillContent =
230238
@"<a href='http://BlazorHelpWebsite.com/'>" +
231239
"<img src='images/BlazorHelpWebsite.gif' /></a>";
232240

233241
await this.QuillHtml.LoadHTMLContent(QuillContent);
234-
StateHasChanged();
235242
}
236243

237-
public async void GetContent()
244+
public async Task GetContent()
238245
{
239246
QuillContent = await this.QuillNative.GetContent();
240-
StateHasChanged();
241247
}
242-
public async void LoadContent()
248+
public async Task LoadContent()
243249
{
244250
await this.QuillNative.LoadContent(QuillContent);
245-
StateHasChanged();
246251
}
247252

248-
public async void InsertImage()
253+
public async Task InsertImage()
249254
{
250255
await this.QuillNative.InsertImage("images/BlazorHelpWebsite.gif");
251-
StateHasChanged();
252256
}
253257

254-
public async void InsertText()
258+
public async Task InsertText()
255259
{
256260
await this.QuillNative.InsertText("Some Text");
257-
StateHasChanged();
258261
}
259262

260263
async Task ToggleQuillEditor()
@@ -263,9 +266,8 @@ console.<span class="hljs-built_in">log</span>("I love " <span class="hljs-opera
263266
await this.QuillReadOnly.EnableEditor(mode);
264267
}
265268

266-
public async void GetHTMLCode()
269+
public async Task GetHTMLCode()
267270
{
268271
QuillHTMLCodeContent = await this.QuillCode.GetHTML();
269-
StateHasChanged();
270272
}
271273
}

samples/BlazorServerSide/_Imports.razor

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@using System.Net.Http
2+
@using System.Threading
23
@using Microsoft.AspNetCore.Authorization
34
@using Microsoft.AspNetCore.Components.Authorization
45
@using Microsoft.AspNetCore.Components.Forms

src/Blazored.TextEditor/BlazoredTextEditor.razor

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,51 +106,104 @@
106106
JSRuntime, QuillElement);
107107
}
108108

109+
public async Task<string> GetText(CancellationToken cancellationToken)
110+
{
111+
return await Interop.GetText(
112+
JSRuntime, QuillElement, cancellationToken);
113+
}
114+
109115
public async Task<string> GetHTML()
110116
{
111117
return await Interop.GetHTML(
112118
JSRuntime, QuillElement);
113119
}
114120

121+
public async Task<string> GetHTML(CancellationToken cancellationToken)
122+
{
123+
return await Interop.GetHTML(
124+
JSRuntime, QuillElement, cancellationToken);
125+
}
126+
115127
public async Task<string> GetContent()
116128
{
117129
return await Interop.GetContent(
118130
JSRuntime, QuillElement);
119131
}
120132

133+
public async Task<string> GetContent(CancellationToken cancellationToken)
134+
{
135+
return await Interop.GetContent(
136+
JSRuntime, QuillElement, cancellationToken);
137+
}
138+
121139
public async Task LoadContent(string Content)
122140
{
123141
var QuillDelta =
124142
await Interop.LoadQuillContent(
125143
JSRuntime, QuillElement, Content);
126144
}
127145

146+
public async Task LoadContent(string Content, CancellationToken cancellationToken)
147+
{
148+
var QuillDelta =
149+
await Interop.LoadQuillContent(
150+
JSRuntime, QuillElement, Content, cancellationToken);
151+
}
152+
128153
public async Task LoadHTMLContent(string quillHTMLContent)
129154
{
130155
var QuillDelta =
131156
await Interop.LoadQuillHTMLContent(
132157
JSRuntime, QuillElement, quillHTMLContent);
133158
}
134159

160+
public async Task LoadHTMLContent(string quillHTMLContent, CancellationToken cancellationToken)
161+
{
162+
var QuillDelta =
163+
await Interop.LoadQuillHTMLContent(
164+
JSRuntime, QuillElement, quillHTMLContent, cancellationToken);
165+
}
166+
135167
public async Task InsertImage(string ImageURL)
136168
{
137169
var QuillDelta =
138170
await Interop.InsertQuillImage(
139171
JSRuntime, QuillElement, ImageURL);
140172
}
141173

174+
public async Task InsertImage(string ImageURL, CancellationToken cancellationToken)
175+
{
176+
var QuillDelta =
177+
await Interop.InsertQuillImage(
178+
JSRuntime, QuillElement, ImageURL, cancellationToken);
179+
}
180+
142181
public async Task InsertText(string text)
143182
{
144183
var QuillDelta =
145184
await Interop.InsertQuillText(
146185
JSRuntime, QuillElement, text);
147186
}
148187

188+
public async Task InsertText(string text, CancellationToken cancellationToken)
189+
{
190+
var QuillDelta =
191+
await Interop.InsertQuillText(
192+
JSRuntime, QuillElement, text, cancellationToken);
193+
}
194+
149195
public async Task EnableEditor(bool mode)
150196
{
151197
var QuillDelta =
152198
await Interop.EnableQuillEditor(
153199
JSRuntime, QuillElement, mode);
154200
}
155201

202+
public async Task EnableEditor(bool mode, CancellationToken cancellationToken)
203+
{
204+
var QuillDelta =
205+
await Interop.EnableQuillEditor(
206+
JSRuntime, QuillElement, mode, cancellationToken);
207+
}
208+
156209
}

0 commit comments

Comments
 (0)