who_need_help/assets/js/native_push_state.mjs

21 lines
679 B
JavaScript

const normalizedDeviceId = value => String(value || "").trim()
export const resolveNativePushState = ({
configured,
requested,
serverDeviceId,
activeDeviceIds = []
}) => {
const deviceId = normalizedDeviceId(serverDeviceId)
const activeIds = new Set([...activeDeviceIds].map(normalizedDeviceId).filter(Boolean))
const belongsToCurrentAccount = deviceId !== "" && activeIds.has(deviceId)
return {
configured: configured === true,
registered: configured === true && requested === true && belongsToCurrentAccount,
stale: configured === true && requested === true && deviceId !== "" &&
!belongsToCurrentAccount,
serverDeviceId: deviceId
}
}