Add manual API token fallback dialog for start.gg

This commit is contained in:
Pandipipas
2026-02-16 22:38:39 +01:00
parent d691f60e08
commit 8edd732182
+62 -10
View File
@@ -111,6 +111,8 @@ const temporaryStartGGPlayers = ref<TemporaryStartGGPlayersMap>({});
let temporaryCleanupTimer: ReturnType<typeof setInterval> | null = null;
const oauthLoading = ref(false);
const isManualTokenDialogOpen = ref(false);
const manualTokenDraft = ref('');
const oauthSessionId = ref('');
let oauthPollingTimer: ReturnType<typeof setInterval> | null = null;
@@ -301,6 +303,17 @@ const connectWithStartGGOAuth = async () => {
}
};
const openManualTokenDialog = () => {
manualTokenDraft.value = startGGToken.value;
isManualTokenDialogOpen.value = true;
window.open('https://developer.start.gg/docs/authentication', '_blank', 'noopener,noreferrer');
};
const saveManualToken = () => {
startGGToken.value = manualTokenDraft.value.trim();
isManualTokenDialogOpen.value = false;
};
const loadRecentTournaments = async () => {
const token = startGGToken.value.trim();
if (!token) {
@@ -572,16 +585,7 @@ onBeforeUnmount(() => {
Conecta por OAuth (recomendado) o pega tu token personal para cargar tus torneos creados o donde eres admin. Si aparece "Client authentication failed", revisa que en config uses el Client ID/Secret de un OAuth App de start.gg.
</div>
<div class="row q-col-gutter-sm items-center">
<div class="col-12">
<QInput
v-model="startGGToken"
label="start.gg API Token"
dense
outlined
type="password"
/>
</div>
<div class="col-12">
<div class="col-auto">
<QBtn
color="primary"
icon="login"
@@ -590,6 +594,15 @@ onBeforeUnmount(() => {
@click="connectWithStartGGOAuth"
/>
</div>
<div class="col-auto">
<QBtn
outline
color="white"
icon="vpn_key"
label="Usar API personal"
@click="openManualTokenDialog"
/>
</div>
</div>
<div
v-if="tournamentsError"
@@ -655,6 +668,45 @@ onBeforeUnmount(() => {
</div>
</div>
<QDialog v-model="isManualTokenDialogOpen">
<QCard class="players-dialog">
<QCardSection>
<div class="text-h6">
API personal de start.gg
</div>
</QCardSection>
<QSeparator />
<QCardSection>
<div class="text-body2 q-mb-md">
Si OAuth falla, puedes crear tu token personal manualmente. Se abrirá la documentación oficial de start.gg en una pestaña nueva.
</div>
<QInput
v-model="manualTokenDraft"
label="Pega tu token personal"
dense
outlined
type="password"
/>
</QCardSection>
<QSeparator />
<QCardActions align="right">
<QBtn
flat
label="Cancelar"
color="secondary"
@click="isManualTokenDialogOpen = false"
/>
<QBtn
color="primary"
label="Guardar token"
:disable="!manualTokenDraft.trim()"
@click="saveManualToken"
/>
</QCardActions>
</QCard>
</QDialog>
<QDialog v-model="isImportDialogOpen">
<QCard class="players-dialog">
<QCardSection>