Cache clearing logic

This commit is contained in:
Luc Mcgrady 2025-07-21 01:16:12 +01:00
parent 93d969a3b0
commit 75d941bc93
No known key found for this signature in database
GPG key ID: 4F3D7A0B17CC3D9C

View file

@ -68,10 +68,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
$: desiredRetentionWarning = getRetentionLongShortWarning(roundedRetention); $: desiredRetentionWarning = getRetentionLongShortWarning(roundedRetention);
let desiredRetentionChangeInfo = ""; let desiredRetentionChangeInfo = "";
$: { $: if (showDesiredRetentionTooltip) {
showDesiredRetentionTooltip getRetentionChangeInfo(roundedRetention, fsrsParams($config));
? getRetentionChangeInfo(roundedRetention, fsrsParams($config))
: "";
} }
$: retentionWarningClass = getRetentionWarningClass(roundedRetention); $: retentionWarningClass = getRetentionWarningClass(roundedRetention);
@ -106,17 +104,24 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
let retentionWorloadInfo: undefined | Promise<GetRetentionWorkloadResponse> = let retentionWorloadInfo: undefined | Promise<GetRetentionWorkloadResponse> =
undefined; undefined;
let lastParams = [...fsrsParams($config)];
async function getRetentionChangeInfo(retention: number, params: number[]) { async function getRetentionChangeInfo(retention: number, params: number[]) {
if (+startingDesiredRetention == roundedRetention) { if (+startingDesiredRetention == roundedRetention) {
desiredRetentionChangeInfo = tr.deckConfigWorkloadFactorUnchanged(); desiredRetentionChangeInfo = tr.deckConfigWorkloadFactorUnchanged();
return; return;
} }
if (!retentionWorloadInfo) { if (
// If the cache is empty and a request has not yet been made to fill it
!retentionWorloadInfo ||
// If the parameters have been changed
lastParams.toString() !== fsrsParams($config).toString()
) {
const request = new GetRetentionWorkloadRequest({ const request = new GetRetentionWorkloadRequest({
w: params, w: params,
search: defaultparamSearch, search: defaultparamSearch,
}); });
lastParams = [...fsrsParams($config)];
retentionWorloadInfo = getRetentionWorkload(request); retentionWorloadInfo = getRetentionWorkload(request);
} }