add comment to update Firebase in service worker

This commit is contained in:
or-else
2022-02-28 15:42:32 -08:00
parent d106f6382a
commit aa498a7d1f
9 changed files with 6183 additions and 58 deletions
-3
View File
@@ -33,9 +33,6 @@
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react-dom@17/umd/react-dom.development.js"></script> <script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react-dom@17/umd/react-dom.development.js"></script>
<!-- React-Intl for translations --> <!-- React-Intl for translations -->
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react-intl@5/react-intl.iife.js"></script> <script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react-intl@5/react-intl.iife.js"></script>
<!-- Firebase for push notifications -->
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/firebase@9/firebase-app.js"></script>
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/firebase@9/firebase-messaging.js"></script>
</head> </head>
<body> <body>
-2
View File
@@ -25,8 +25,6 @@
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react@17.0.2/umd/react.production.min.js"></script> <script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react@17.0.2/umd/react.production.min.js"></script>
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react-dom@17.0.2/umd/react-dom.production.min.js"></script> <script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react-dom@17.0.2/umd/react-dom.production.min.js"></script>
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react-intl@5.20.7/react-intl.iife.min.js"></script> <script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/react-intl@5.20.7/react-intl.iife.min.js"></script>
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/firebase@9.6.7/firebase-app.js"></script>
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/firebase@9.6.7/firebase-messaging.js"></script>
</head> </head>
<body> <body>
<noscript><div id="noscript-message"><div id="noscript-title">Javascript support is required.</div> <noscript><div id="noscript-message"><div id="noscript-title">Javascript support is required.</div>
+1
View File
@@ -1,4 +1,5 @@
// Must be located at the root. // Must be located at the root.
// FIXME: update Firebase version.
importScripts('https://cdn.jsdelivr.net/npm/firebase@8.10.1/firebase-app.js'); importScripts('https://cdn.jsdelivr.net/npm/firebase@8.10.1/firebase-app.js');
importScripts('https://cdn.jsdelivr.net/npm/firebase@8.10.1/firebase-messaging.js'); importScripts('https://cdn.jsdelivr.net/npm/firebase@8.10.1/firebase-messaging.js');
importScripts('firebase-init.js'); importScripts('firebase-init.js');
+7 -11
View File
@@ -164,9 +164,11 @@ class TinodeWeb extends React.Component {
// "On" is the default, so saving the "off" state. // "On" is the default, so saving the "off" state.
messageSounds: !settings.messageSoundsOff, messageSounds: !settings.messageSoundsOff,
incognitoMode: false, incognitoMode: false,
// Persistent request to enable alerts.
desktopAlerts: persist && !!settings.desktopAlerts, desktopAlerts: persist && !!settings.desktopAlerts,
// Enable / disable checkbox.
desktopAlertsEnabled: (isSecureConnection() || isLocalHost()) && desktopAlertsEnabled: (isSecureConnection() || isLocalHost()) &&
(typeof firebase != 'undefined') && (typeof navigator != 'undefined') && (typeof firebaseInitApp != 'undefined') && (typeof navigator != 'undefined') &&
(typeof FIREBASE_INIT != 'undefined'), (typeof FIREBASE_INIT != 'undefined'),
firebaseToken: persist ? LocalStorageUtil.getObject('firebase-token') : null, firebaseToken: persist ? LocalStorageUtil.getObject('firebase-token') : null,
@@ -257,11 +259,7 @@ class TinodeWeb extends React.Component {
if (this.state.desktopAlertsEnabled) { if (this.state.desktopAlertsEnabled) {
this.initFCMessaging().then(() => { this.initFCMessaging().then(() => {
if (this.state.desktopAlerts) { if (this.state.desktopAlerts) {
if (!this.state.firebaseToken) { this.tinode.setDeviceToken(this.state.firebaseToken);
this.toggleFCMToken(true);
} else {
this.tinode.setDeviceToken(this.state.firebaseToken);
}
} }
}).catch(() => { }).catch(() => {
// do nothing: handled earlier. // do nothing: handled earlier.
@@ -330,7 +328,8 @@ class TinodeWeb extends React.Component {
const onError = (msg, err) => { const onError = (msg, err) => {
console.error(msg, err); console.error(msg, err);
this.handleError(formatMessage(messages.push_init_failed), 'err'); this.handleError(formatMessage(messages.push_init_failed), 'err');
this.setState({desktopAlertsEnabled: false}); this.setState({desktopAlertsEnabled: false, firebaseToken: null});
LocalStorageUtil.updateObject('settings', {desktopAlerts: false});
} }
try { try {
@@ -1141,10 +1140,7 @@ class TinodeWeb extends React.Component {
if (enabled) { if (enabled) {
this.setState({desktopAlerts: null}); this.setState({desktopAlerts: null});
if (!this.state.firebaseToken) { if (!this.state.firebaseToken) {
this.initFCMessaging().catch(() => { this.initFCMessaging();
this.setState({desktopAlerts: false, firebaseToken: null});
LocalStorageUtil.updateObject('settings', {desktopAlerts: false});
});
} else { } else {
this.setState({desktopAlerts: true}); this.setState({desktopAlerts: true});
if (LocalStorageUtil.getObject('keep-logged-in')) { if (LocalStorageUtil.getObject('keep-logged-in')) {
+6170 -35
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -4
View File
@@ -52,8 +52,8 @@ module.exports = (env, argv) => {
] ]
}, },
performance: { performance: {
maxEntrypointSize: 294912, maxEntrypointSize: 320000,
maxAssetSize: 294912 maxAssetSize: 320000
}, },
plugins: [ plugins: [
new CopyPlugin({ new CopyPlugin({
@@ -66,8 +66,6 @@ module.exports = (env, argv) => {
'react': 'React', 'react': 'React',
'react-dom': 'ReactDOM', 'react-dom': 'ReactDOM',
'react-intl': 'ReactIntl', 'react-intl': 'ReactIntl',
'firebase/app': 'firebase',
'firebase/messaging': ['firebase', 'messaging'],
'tinode-sdk': 'Tinode', 'tinode-sdk': 'Tinode',
}, },
}; };