Add GitHub plugin release imports and update discovery
This commit is contained in:
@@ -82,7 +82,7 @@
|
||||
|
||||
let poll: ReturnType<typeof setInterval> | null = null;
|
||||
onMount(() => {
|
||||
load();
|
||||
void load().then(seedImportedPlugin).catch(error => { flash = (error as Error).message; });
|
||||
poll = setInterval(refreshBetas, 5000);
|
||||
});
|
||||
onDestroy(() => {
|
||||
@@ -102,6 +102,26 @@
|
||||
return eligibleScripts.filter((s) => !takenIds.has(s.id));
|
||||
}
|
||||
|
||||
async function seedImportedPlugin(): Promise<void> {
|
||||
const query = new URLSearchParams(window.location.search);
|
||||
if (!query.has('pluginId')) return;
|
||||
const pluginId = Number(query.get('pluginId'));
|
||||
const versionId = Number(query.get('versionId'));
|
||||
if (!eligibleScripts.some(s => s.id === pluginId && s.kind === 'plugin')) {
|
||||
flash = 'This plugin is already promoted or has a running beta. Open its detail page to review its status.';
|
||||
return;
|
||||
}
|
||||
picks = [{ key: nextKey++, scriptId: pluginId, versionId: null }];
|
||||
await onPickScript(0);
|
||||
if (!versionsForRow(picks[0]).some(v => v.id === versionId)) {
|
||||
picks[0].versionId = null;
|
||||
flash = 'The imported version is no longer available for testing. Choose a version to continue.';
|
||||
return;
|
||||
}
|
||||
picks[0].versionId = versionId;
|
||||
picks = [...picks];
|
||||
}
|
||||
|
||||
async function onPickScript(rowIdx: number): Promise<void> {
|
||||
flash = null;
|
||||
const pick = picks[rowIdx];
|
||||
|
||||
Reference in New Issue
Block a user