Skip to content

Commit c69922d

Browse files
committed
cancelatin token
1 parent 2658c3f commit c69922d

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

src/PrompterOne.Shared/Editor/Pages/EditorPage.Persistence.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@ namespace PrompterOne.Shared.Pages;
44

55
public partial class EditorPage
66
{
7-
private async Task PersistDraftAsync(string text, string? documentNameOverride = null)
7+
private async Task PersistDraftAsync(
8+
string text,
9+
string? documentNameOverride = null,
10+
CancellationToken cancellationToken = default)
811
{
912
CancelDraftAnalysis();
1013
CancelAutosave();
1114
var revision = PrepareDraftPersistence(text, documentNameOverride);
12-
await PersistPreparedDraftAsync(revision, CancellationToken.None);
15+
await PersistPreparedDraftAsync(revision, cancellationToken);
1316
}
1417

1518
private long PrepareDraftPersistence(string text, string? documentNameOverride = null)
@@ -20,12 +23,15 @@ private long PrepareDraftPersistence(string text, string? documentNameOverride =
2023
return checked(++_draftRevision);
2124
}
2225

23-
private void PersistDraftInBackground(string text, string? documentNameOverride = null)
26+
private void PersistDraftInBackground(
27+
string text,
28+
string? documentNameOverride = null,
29+
CancellationToken cancellationToken = default)
2430
{
2531
CancelDraftAnalysis();
2632
CancelAutosave();
2733
var revision = PrepareDraftPersistence(text, documentNameOverride);
28-
_ = InvokeAsync(() => PersistPreparedDraftAsync(revision, CancellationToken.None));
34+
_ = InvokeAsync(() => PersistPreparedDraftAsync(revision, cancellationToken));
2935
}
3036

3137
private Task PersistPreparedDraftAsync(long revision, CancellationToken cancellationToken) =>
@@ -65,6 +71,8 @@ await SessionService.UpdateDraftAsync(
6571
await CaptureLocalRevisionAsync(savedDocument, cancellationToken);
6672
if (assignScriptId)
6773
{
74+
cancellationToken.ThrowIfCancellationRequested();
75+
6876
if (revision != _draftRevision)
6977
{
7078
StageDraftIdentity(savedDocument.Id, savedDocument.DocumentName);
@@ -133,7 +141,7 @@ private async Task RunAutosaveAsync(CancellationToken cancellationToken)
133141
await InvokeAsync(() =>
134142
{
135143
_skipNextRenderFromTyping = false;
136-
return PersistDraftAsync(_sourceText);
144+
return PersistDraftAsync(_sourceText, cancellationToken: cancellationToken);
137145
});
138146
}
139147
catch (OperationCanceledException)

0 commit comments

Comments
 (0)