Files
boursecu_admin/src/utils/customerPresence.ts
T

19 lines
746 B
TypeScript
Raw Normal View History

2026-07-22 18:12:45 +03:30
/** هم‌تراز با CustomerPresenceService::ONLINE_THRESHOLD_SECONDS روی سرور */
export const CUSTOMER_ONLINE_THRESHOLD_MS = 2 * 60 * 1000
export type CustomerPresenceKind = 'online' | 'offline' | 'never'
export function getCustomerPresenceKind(
lastSeenAt: string | Date | null | undefined
): CustomerPresenceKind {
if (!lastSeenAt) return 'never'
const t = lastSeenAt instanceof Date ? lastSeenAt.getTime() : new Date(lastSeenAt).getTime()
if (!Number.isFinite(t)) return 'never'
if (Date.now() - t < CUSTOMER_ONLINE_THRESHOLD_MS) return 'online'
return 'offline'
}
export function isCustomerOnline(lastSeenAt: string | Date | null | undefined): boolean {
return getCustomerPresenceKind(lastSeenAt) === 'online'
}