xiaolongmr commited on
Commit ·
8034201
1
Parent(s): f9a9d62
Show user credits independently from pool quota
Browse files- 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 |
-
|
| 571 |
-
setAvailableQuota(String(
|
| 572 |
-
setAvailableQuotaCount(
|
| 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 &&
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
|