Use TelegramConnectStatus enum for connect status instead of magic strings
This commit is contained in:
parent
92e6425906
commit
58eab0619b
2 changed files with 18 additions and 6 deletions
|
|
@ -25,11 +25,14 @@ import {
|
|||
connect as connectTelegram,
|
||||
status as telegramStatus,
|
||||
} from '@/routes/app/social/telegram';
|
||||
import {
|
||||
TelegramConnectStatus,
|
||||
type TelegramConnectStatusValue,
|
||||
} from '@/types/telegram-connect-status';
|
||||
|
||||
const open = defineModel<boolean>('open', { required: true });
|
||||
|
||||
type Phase = 'loading' | 'ready' | 'connected' | 'expired' | 'error';
|
||||
type ConnectStatus = 'unknown' | 'pending' | 'connected';
|
||||
|
||||
interface ConnectResponse {
|
||||
code: string;
|
||||
|
|
@ -46,9 +49,10 @@ const botUsername = ref('');
|
|||
const errorMessage = ref('');
|
||||
|
||||
const httpConnect = useHttp<Record<string, never>, ConnectResponse>({});
|
||||
const httpStatus = useHttp<Record<string, never>, { status: ConnectStatus }>(
|
||||
{},
|
||||
);
|
||||
const httpStatus = useHttp<
|
||||
Record<string, never>,
|
||||
{ status: TelegramConnectStatusValue }
|
||||
>({});
|
||||
|
||||
let pollTimer: ReturnType<typeof setTimeout> | null = null;
|
||||
|
||||
|
|
@ -67,7 +71,7 @@ const poll = async () => {
|
|||
telegramStatus.url({ query: { code: code.value } }),
|
||||
);
|
||||
|
||||
if (response?.status === 'connected') {
|
||||
if (response?.status === TelegramConnectStatus.Connected) {
|
||||
phase.value = 'connected';
|
||||
stopPolling();
|
||||
toast.success(trans('accounts.telegram.connected_toast'));
|
||||
|
|
@ -79,7 +83,7 @@ const poll = async () => {
|
|||
}
|
||||
|
||||
// The signed code expired (or the session was lost): prompt a fresh one.
|
||||
if (response?.status === 'unknown') {
|
||||
if (response?.status === TelegramConnectStatus.Unknown) {
|
||||
phase.value = 'expired';
|
||||
stopPolling();
|
||||
return;
|
||||
|
|
|
|||
8
resources/js/types/telegram-connect-status.ts
Normal file
8
resources/js/types/telegram-connect-status.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
export const TelegramConnectStatus = {
|
||||
Unknown: 'unknown',
|
||||
Pending: 'pending',
|
||||
Connected: 'connected',
|
||||
} as const;
|
||||
|
||||
export type TelegramConnectStatusValue =
|
||||
(typeof TelegramConnectStatus)[keyof typeof TelegramConnectStatus];
|
||||
Loading…
Reference in a new issue