diff --git a/resources/js/components/accounts/TelegramConnectDialog.vue b/resources/js/components/accounts/TelegramConnectDialog.vue index de946207..0f875f63 100644 --- a/resources/js/components/accounts/TelegramConnectDialog.vue +++ b/resources/js/components/accounts/TelegramConnectDialog.vue @@ -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('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, ConnectResponse>({}); -const httpStatus = useHttp, { status: ConnectStatus }>( - {}, -); +const httpStatus = useHttp< + Record, + { status: TelegramConnectStatusValue } +>({}); let pollTimer: ReturnType | 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; diff --git a/resources/js/types/telegram-connect-status.ts b/resources/js/types/telegram-connect-status.ts new file mode 100644 index 00000000..4a380801 --- /dev/null +++ b/resources/js/types/telegram-connect-status.ts @@ -0,0 +1,8 @@ +export const TelegramConnectStatus = { + Unknown: 'unknown', + Pending: 'pending', + Connected: 'connected', +} as const; + +export type TelegramConnectStatusValue = + (typeof TelegramConnectStatus)[keyof typeof TelegramConnectStatus];