mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-28 00:35:32 +08:00
df5cb6d771
CopilotQuotaFooter and CodexOauthQuotaFooter called their hooks with a hardcoded `enabled: true` plus an unconditional 5-minute refetch and refetchOnWindowFocus, so non-current reverse-proxy cards kept polling in violation of the project's "only the active provider auto-queries on cooldown" rule. With multiple Copilot or ChatGPT accounts bound to different cards, every card kept hitting its own usage endpoint. Adopt the same pattern as useUsageQuery: keep `enabled` independent of isCurrent so first-fetch and manual refresh still work, but gate refetchInterval / refetchIntervalInBackground / refetchOnWindowFocus on a new `autoQuery` option, and thread `isCurrent` from ProviderCard through the footers into the hooks.
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import React from "react";
|
||
import type { ProviderMeta } from "@/types";
|
||
import { useCodexOauthQuota } from "@/lib/query/subscription";
|
||
import { SubscriptionQuotaView } from "@/components/SubscriptionQuotaFooter";
|
||
|
||
interface CodexOauthQuotaFooterProps {
|
||
meta?: ProviderMeta;
|
||
inline?: boolean;
|
||
/** 是否为当前激活的供应商 */
|
||
isCurrent?: boolean;
|
||
}
|
||
|
||
/**
|
||
* Codex OAuth (ChatGPT Plus/Pro 反代) 订阅额度 footer
|
||
*
|
||
* 复用 SubscriptionQuotaView 的全部渲染逻辑(5 状态 × inline/expanded)。
|
||
* 数据源切换为 cc-switch 自管的 OAuth token 而非 Codex CLI 凭据。
|
||
*/
|
||
const CodexOauthQuotaFooter: React.FC<CodexOauthQuotaFooterProps> = ({
|
||
meta,
|
||
inline = false,
|
||
isCurrent = false,
|
||
}) => {
|
||
const {
|
||
data: quota,
|
||
isFetching: loading,
|
||
refetch,
|
||
} = useCodexOauthQuota(meta, { enabled: true, autoQuery: isCurrent });
|
||
|
||
return (
|
||
<SubscriptionQuotaView
|
||
quota={quota}
|
||
loading={loading}
|
||
refetch={refetch}
|
||
appIdForExpiredHint="codex_oauth"
|
||
inline={inline}
|
||
/>
|
||
);
|
||
};
|
||
|
||
export default CodexOauthQuotaFooter;
|