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