From f057ee465d0242ac755ad1e107830a4fb261bd20 Mon Sep 17 00:00:00 2001 From: Luc Mcgrady Date: Tue, 7 Jan 2025 13:58:22 +0000 Subject: [PATCH] Prevent simulate button spam (#3670) --- ts/routes/deck-options/FsrsOptions.svelte | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ts/routes/deck-options/FsrsOptions.svelte b/ts/routes/deck-options/FsrsOptions.svelte index 69bb53abc..2ea823161 100644 --- a/ts/routes/deck-options/FsrsOptions.svelte +++ b/ts/routes/deck-options/FsrsOptions.svelte @@ -63,11 +63,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html let computingParams = false; let checkingParams = false; let computingRetention = false; + let simulating = false; let optimalRetention = 0; $: if ($presetName) { optimalRetention = 0; } - $: computing = computingParams || checkingParams || computingRetention; + $: computing = + computingParams || checkingParams || computingRetention || simulating; $: defaultparamSearch = `preset:"${state.getCurrentNameForSearch()}" -is:suspended`; $: roundedRetention = Number($config.desiredRetention.toFixed(2)); $: desiredRetentionWarning = getRetentionWarning(roundedRetention); @@ -307,8 +309,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html return arr1.map((value, index) => value + arr2[index]); } - $: simulateProgressString = ""; - async function simulateFsrs(): Promise { let resp: SimulateFsrsReviewResponse | undefined; simulationNumber += 1; @@ -318,13 +318,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html simulateFsrsRequest.params = fsrsParams($config); simulateFsrsRequest.desiredRetention = $config.desiredRetention; simulateFsrsRequest.search = `preset:"${state.getCurrentNameForSearch()}" -is:suspended`; - simulateProgressString = "processing..."; + simulating = true; resp = await simulateFsrsReview(simulateFsrsRequest); }, () => {}, ); } finally { - simulateProgressString = ""; + simulating = false; if (resp) { const dailyTotalCount = addArrays( resp.dailyReviewCount, @@ -563,7 +563,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html > {tr.deckConfigClearLastSimulate()} -
{simulateProgressString}
+ {#if simulating} + {tr.qtMiscProcessing()} + {/if}