chore: sync local workspace changes
This commit is contained in:
83
src/app/main/notificationIdentity.js
Normal file
83
src/app/main/notificationIdentity.js
Normal file
@@ -0,0 +1,83 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY = exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY = void 0;
|
||||
exports.buildScopedPwaNotificationTargetId = buildScopedPwaNotificationTargetId;
|
||||
exports.getSavedNotificationDeviceId = getSavedNotificationDeviceId;
|
||||
exports.getSavedPwaNotificationToken = getSavedPwaNotificationToken;
|
||||
exports.setSavedPwaNotificationToken = setSavedPwaNotificationToken;
|
||||
exports.clearNotificationIdentity = clearNotificationIdentity;
|
||||
exports.getAutomationNotificationPreferenceTarget = getAutomationNotificationPreferenceTarget;
|
||||
var clientIdentity_1 = require("./clientIdentity");
|
||||
exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY = 'work-server.notification.device-id';
|
||||
exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY = 'work-server.notification.pwa-token';
|
||||
function buildScopedPwaNotificationTargetId(token, clientId) {
|
||||
return [token.trim(), clientId.trim()].filter(Boolean).join('::client::');
|
||||
}
|
||||
function getSavedNotificationDeviceId() {
|
||||
if (typeof window === 'undefined') {
|
||||
return '';
|
||||
}
|
||||
var clientId = (0, clientIdentity_1.getOrCreateClientId)();
|
||||
if (clientId) {
|
||||
window.localStorage.setItem(exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY, clientId);
|
||||
return clientId;
|
||||
}
|
||||
var saved = window.localStorage.getItem(exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY);
|
||||
if (saved) {
|
||||
return saved;
|
||||
}
|
||||
var generated = "web-".concat(Date.now());
|
||||
window.localStorage.setItem(exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY, generated);
|
||||
return generated;
|
||||
}
|
||||
function getSavedPwaNotificationToken() {
|
||||
var _a, _b;
|
||||
if (typeof window === 'undefined') {
|
||||
return '';
|
||||
}
|
||||
return (_b = (_a = window.localStorage.getItem(exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY)) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '';
|
||||
}
|
||||
function setSavedPwaNotificationToken(token) {
|
||||
var _a;
|
||||
if (typeof window === 'undefined') {
|
||||
return;
|
||||
}
|
||||
var normalizedToken = (_a = token === null || token === void 0 ? void 0 : token.trim()) !== null && _a !== void 0 ? _a : '';
|
||||
if (normalizedToken) {
|
||||
window.localStorage.setItem(exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY, normalizedToken);
|
||||
}
|
||||
else {
|
||||
window.localStorage.removeItem(exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY);
|
||||
}
|
||||
}
|
||||
function clearNotificationIdentity() {
|
||||
if (typeof window === 'undefined') {
|
||||
return;
|
||||
}
|
||||
window.localStorage.removeItem(exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY);
|
||||
window.localStorage.removeItem(exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY);
|
||||
(0, clientIdentity_1.clearClientId)();
|
||||
}
|
||||
function getAutomationNotificationPreferenceTarget() {
|
||||
var pwaToken = getSavedPwaNotificationToken();
|
||||
var clientId = getSavedNotificationDeviceId();
|
||||
if (pwaToken && clientId) {
|
||||
return {
|
||||
targetKind: 'ios-token-client',
|
||||
targetId: buildScopedPwaNotificationTargetId(pwaToken, clientId),
|
||||
};
|
||||
}
|
||||
if (pwaToken) {
|
||||
return {
|
||||
targetKind: 'ios-token',
|
||||
targetId: pwaToken,
|
||||
};
|
||||
}
|
||||
if (!clientId) {
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
targetKind: 'client',
|
||||
targetId: clientId,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user