From d39b52272e5d10596617493cc8b1e2a26c56ed97 Mon Sep 17 00:00:00 2001 From: "Apple\\Apple" Date: Thu, 12 Jun 2025 23:53:34 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20fix(token=20hooks):=20adapt=20to?= =?UTF-8?q?ken=20key=20fetcher=20to=20new=20paginated=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changes 1. web/src/helpers/token.js • `fetchTokenKeys` now calls `/api/token/?p=1&size=10` (1-based paging). • Supports new response shape `{ items, total, page, page_size }`; falls back gracefully if array is returned. • Filters active tokens from `tokenItems`, not `data` directly. `useTokenKeys` remains unchanged—its consumer code receives the same list of active keys. --- web/src/helpers/token.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/web/src/helpers/token.js b/web/src/helpers/token.js index ecdeaa3a..2c6e9f86 100644 --- a/web/src/helpers/token.js +++ b/web/src/helpers/token.js @@ -6,14 +6,13 @@ import { API } from './api'; */ export async function fetchTokenKeys() { try { - const response = await API.get('/api/token/?p=0&size=100'); + const response = await API.get('/api/token/?p=1&size=10'); const { success, data } = response.data; - if (success) { - const activeTokens = data.filter((token) => token.status === 1); - return activeTokens.map((token) => token.key); - } else { - throw new Error('Failed to fetch token keys'); - } + if (!success) throw new Error('Failed to fetch token keys'); + + const tokenItems = Array.isArray(data) ? data : data.items || []; + const activeTokens = tokenItems.filter((token) => token.status === 1); + return activeTokens.map((token) => token.key); } catch (error) { console.error('Error fetching token keys:', error); return [];