51 lines
1.8 KiB
TypeScript
51 lines
1.8 KiB
TypeScript
export type NapcatLoginNewDeviceStatus =
|
|
| 'confirming'
|
|
| 'expired'
|
|
| 'failed'
|
|
| 'qr-pending'
|
|
| 'scanned'
|
|
| 'verified';
|
|
|
|
export type NapcatLoginDisplayQrcodeSource = {
|
|
captchaUrl?: string;
|
|
newDeviceQrcode?: string;
|
|
qrcode?: string;
|
|
};
|
|
|
|
export const NAPCAT_LOGIN_PROGRESS_LABELS = {
|
|
'captcha-submit': '验证码已提交,等待确认',
|
|
'login-failed': '登录失败',
|
|
'login-success': '登录成功',
|
|
'manual-qr-required': '正在生成手动二维码',
|
|
'new-device-confirming': '新设备确认中',
|
|
'new-device-qrcode-ready': '新设备二维码待扫码',
|
|
'new-device-required': '需要新设备验证二维码',
|
|
'new-device-scanned': '新设备二维码已扫码',
|
|
'new-device-verified': '新设备验证成功,继续登录',
|
|
'password-login': '正在密码登录',
|
|
'password-login-captcha': '需要验证码',
|
|
'password-login-captcha-submit': '验证码已提交,等待确认',
|
|
'password-login-failed': '登录失败',
|
|
'password-login-start': '正在密码登录',
|
|
'quick-login-fallback': '快速登录失败,进入密码登录',
|
|
'quick-login-start': '正在快速登录',
|
|
'runtime-cleanup-failed': '运行态清理失败',
|
|
} as const;
|
|
|
|
export function resolveNapcatLoginDisplayQrcode(
|
|
source: NapcatLoginDisplayQrcodeSource,
|
|
) {
|
|
return source.newDeviceQrcode || source.qrcode || '';
|
|
}
|
|
|
|
export function getNapcatNewDeviceStatusMessage(
|
|
status?: NapcatLoginNewDeviceStatus,
|
|
) {
|
|
if (status === 'scanned') return '新设备二维码已扫码';
|
|
if (status === 'confirming') return '新设备确认中';
|
|
if (status === 'verified') return '新设备验证成功,继续登录';
|
|
if (status === 'expired') return '新设备二维码已过期';
|
|
if (status === 'failed') return '新设备验证失败';
|
|
return '新设备二维码待扫码';
|
|
}
|