21 lines
679 B
JavaScript
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
|
|
}
|
|
}
|