Settings: clarify Codex 만료=결제, drop Claude expiry badge (#49)

- Codex expiry badge now says "결제 만료/까지" so it's unambiguous that
  this is the ChatGPT Pro/Team subscription end-date, not an OAuth
  access-token TTL.
- Claude rows no longer show an expiry badge: Claude credentials only
  expose an OAuth access_token TTL (auto-refreshed every few minutes
  by the existing claude token refresh loop), which is meaningless to
  the user. Replace it with a static "토큰 자동갱신" tag so the column
  alignment stays consistent.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Eyejoker
2026-04-27 22:26:17 +09:00
committed by GitHub
parent c2a6889567
commit dafb84fa4d

View File

@@ -1340,16 +1340,19 @@ function formatExpiry(
});
if (days < 0) {
const ago = Math.ceil(-days);
return { label: `${dateStr} 만료 (${ago}일 전)`, cls: 'is-expired' };
return {
label: `결제 만료 ${dateStr} (${ago}일 전)`,
cls: 'is-expired',
};
}
if (days < 7) {
return {
label: `${dateStr}까지 (${Math.floor(days)}일)`,
label: `결제 ${dateStr}까지 (${Math.floor(days)}일)`,
cls: 'is-soon',
};
}
return {
label: `${dateStr}까지 (${Math.floor(days)}일)`,
label: `결제 ${dateStr}까지 (${Math.floor(days)}일)`,
cls: 'is-active',
};
}
@@ -1475,11 +1478,7 @@ function AccountSettings({ onRestartStack }: { onRestartStack: () => void }) {
<p className="settings-hint"> </p>
) : (
<ul className="settings-account-list">
{data.claude.map((acc) => {
const expiry = formatExpiry(
acc.expiresAt ? new Date(acc.expiresAt).toISOString() : null,
);
return (
{data.claude.map((acc) => (
<li key={acc.index} className="settings-account-row">
<div className="settings-account-main">
<span className="settings-account-tag">#{acc.index}</span>
@@ -1487,11 +1486,10 @@ function AccountSettings({ onRestartStack }: { onRestartStack: () => void }) {
{acc.subscriptionType ?? 'unknown'}
{acc.rateLimitTier ? ` · ${acc.rateLimitTier}` : ''}
</span>
{expiry ? (
<span className={`settings-account-badge ${expiry.cls}`}>
{expiry.label}
<span className="settings-account-plan">claude</span>
<span className="settings-account-badge is-active">
</span>
) : null}
</div>
{acc.index > 0 ? (
<button
@@ -1506,8 +1504,7 @@ function AccountSettings({ onRestartStack }: { onRestartStack: () => void }) {
<span className="settings-account-default"></span>
)}
</li>
);
})}
))}
</ul>
)}
<div className="settings-add-token">