xiaolongmr commited on
Commit
8034201
·
1 Parent(s): f9a9d62

Show user credits independently from pool quota

Browse files
Files changed (1) hide show
  1. web/src/app/image/page.tsx +13 -9
web/src/app/image/page.tsx CHANGED
@@ -441,6 +441,7 @@ function ImagePageContent({ session }: { session: StoredAuthSession }) {
441
  const [composerBottomSpacer, setComposerBottomSpacer] = useState(240);
442
  const [availableQuota, setAvailableQuota] = useState("加载中...");
443
  const [availableQuotaCount, setAvailableQuotaCount] = useState<number | null>(null);
 
444
  const [creditSummary, setCreditSummary] = useState<CreditSummary | null>(null);
445
  const [isRedeemOpen, setIsRedeemOpen] = useState(false);
446
  const [redeemValue, setRedeemValue] = useState("");
@@ -567,10 +568,11 @@ function ImagePageContent({ session }: { session: StoredAuthSession }) {
567
  try {
568
  const poolData = await fetchQuotaSummary(selectedAccountPoolStrategy, !isMemoryEnabled);
569
  const poolQuota = poolData.unknown ? null : toQuotaCount(poolData.quota);
570
- const effectiveQuota = poolQuota === null ? siteCredits : Math.min(siteCredits, poolQuota);
571
- setAvailableQuota(String(effectiveQuota));
572
- setAvailableQuotaCount(effectiveQuota);
573
  } catch {
 
574
  setAvailableQuota(String(siteCredits));
575
  setAvailableQuotaCount(siteCredits);
576
  }
@@ -578,9 +580,11 @@ function ImagePageContent({ session }: { session: StoredAuthSession }) {
578
  }
579
  const data = await fetchQuotaSummary(selectedAccountPoolStrategy, !isMemoryEnabled);
580
  const quotaCount = data.unknown ? null : toQuotaCount(data.quota);
 
581
  setAvailableQuota(String(data.label ?? data.quota ?? 0));
582
  setAvailableQuotaCount(quotaCount);
583
  } catch {
 
584
  setAvailableQuota((prev) => (prev === "加载中..." ? "--" : prev));
585
  setAvailableQuotaCount(null);
586
  }
@@ -1411,7 +1415,12 @@ function ImagePageContent({ session }: { session: StoredAuthSession }) {
1411
  toast.error("请输入提示词");
1412
  return;
1413
  }
1414
- if (isNormalUser && availableQuotaCount !== null && availableQuotaCount < parsedCount) {
 
 
 
 
 
1415
  const siteCredits = toQuotaCount(creditSummary?.credits) ?? 0;
1416
  if (siteCredits < parsedCount) {
1417
  toast.error("剩余次数不足,请先充值");
@@ -1421,11 +1430,6 @@ function ImagePageContent({ session }: { session: StoredAuthSession }) {
1421
  }
1422
  return;
1423
  }
1424
- if (isNormalUser && (creditSummary?.credits ?? 0) < parsedCount) {
1425
- toast.error("剩余次数不足,请先充值");
1426
- setIsRedeemOpen(true);
1427
- return;
1428
- }
1429
 
1430
  const effectiveImageMode: ImageConversationMode = referenceImageFiles.length > 0 ? "edit" : "generate";
1431
 
 
441
  const [composerBottomSpacer, setComposerBottomSpacer] = useState(240);
442
  const [availableQuota, setAvailableQuota] = useState("加载中...");
443
  const [availableQuotaCount, setAvailableQuotaCount] = useState<number | null>(null);
444
+ const [accountPoolQuotaCount, setAccountPoolQuotaCount] = useState<number | null>(null);
445
  const [creditSummary, setCreditSummary] = useState<CreditSummary | null>(null);
446
  const [isRedeemOpen, setIsRedeemOpen] = useState(false);
447
  const [redeemValue, setRedeemValue] = useState("");
 
568
  try {
569
  const poolData = await fetchQuotaSummary(selectedAccountPoolStrategy, !isMemoryEnabled);
570
  const poolQuota = poolData.unknown ? null : toQuotaCount(poolData.quota);
571
+ setAccountPoolQuotaCount(poolQuota);
572
+ setAvailableQuota(String(siteCredits));
573
+ setAvailableQuotaCount(siteCredits);
574
  } catch {
575
+ setAccountPoolQuotaCount(null);
576
  setAvailableQuota(String(siteCredits));
577
  setAvailableQuotaCount(siteCredits);
578
  }
 
580
  }
581
  const data = await fetchQuotaSummary(selectedAccountPoolStrategy, !isMemoryEnabled);
582
  const quotaCount = data.unknown ? null : toQuotaCount(data.quota);
583
+ setAccountPoolQuotaCount(quotaCount);
584
  setAvailableQuota(String(data.label ?? data.quota ?? 0));
585
  setAvailableQuotaCount(quotaCount);
586
  } catch {
587
+ setAccountPoolQuotaCount(null);
588
  setAvailableQuota((prev) => (prev === "加载中..." ? "--" : prev));
589
  setAvailableQuotaCount(null);
590
  }
 
1415
  toast.error("请输入提示词");
1416
  return;
1417
  }
1418
+ if (isNormalUser && (creditSummary?.credits ?? 0) < parsedCount) {
1419
+ toast.error("剩余次数不足,请先充值");
1420
+ setIsRedeemOpen(true);
1421
+ return;
1422
+ }
1423
+ if (isNormalUser && accountPoolQuotaCount !== null && accountPoolQuotaCount < parsedCount) {
1424
  const siteCredits = toQuotaCount(creditSummary?.credits) ?? 0;
1425
  if (siteCredits < parsedCount) {
1426
  toast.error("剩余次数不足,请先充值");
 
1430
  }
1431
  return;
1432
  }
 
 
 
 
 
1433
 
1434
  const effectiveImageMode: ImageConversationMode = referenceImageFiles.length > 0 ? "edit" : "generate";
1435