1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-01-11 18:24:43 +02:00

Mobile: Fixes #10593: Fix plugin list not cached in config screen (#10599)

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
This commit is contained in:
Henry Heino 2024-06-18 02:02:42 -07:00 committed by GitHub
parent d9dadf28cb
commit c972ce223e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 2 deletions

View File

@ -6,7 +6,7 @@ import { createTempDir, supportDir } from '@joplin/lib/testing/test-utils';
const newRepoApi = async (installMode: InstallMode, appVersion = '3.0.0'): Promise<RepositoryApi> => {
const appInfo = { type: AppType.Mobile, version: appVersion };
const repo = new RepositoryApi(`${supportDir}/pluginRepo`, await createTempDir(), appInfo, installMode);
await repo.initialize();
await repo.reinitialize();
return repo;
};

View File

@ -35,7 +35,7 @@ const useRepoApi = ({ reloadRepoCounter, setRepoApiError, onRepoApiLoaded }: Pro
setRepoApiError(null);
try {
await repoApi.initialize();
await repoApi.reinitialize();
} catch (error) {
logger.error(error);
setRepoApiError(error);

View File

@ -77,6 +77,7 @@ export default class RepositoryApi {
private githubApiUrl_: string;
private contentBaseUrl_: string;
private isUsingDefaultContentUrl_ = true;
private lastInitializedTime_ = 0;
public constructor(baseUrl: string, tempDir: string, appInfo: AppInfo, installMode: InstallMode) {
this.installMode_ = installMode;
@ -102,6 +103,15 @@ export default class RepositoryApi {
await this.loadManifests();
await this.loadRelease();
this.lastInitializedTime_ = Date.now();
}
public async reinitialize() {
// Refresh at most once per minute
if (Date.now() - this.lastInitializedTime_ > 5 * 60000) {
await this.initialize();
}
}
private async loadManifests() {