Apply prettier formatting
This commit is contained in:
parent
a32f12c8f3
commit
7921a6cbf8
104 changed files with 12169 additions and 11047 deletions
|
@ -19,12 +19,12 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
import { UpdateCheckStatus, UpdateStatus } from "matrix-react-sdk/src/BasePlatform";
|
||||
import BaseEventIndexManager from 'matrix-react-sdk/src/indexing/BaseEventIndexManager';
|
||||
import dis from 'matrix-react-sdk/src/dispatcher/dispatcher';
|
||||
import { _t } from 'matrix-react-sdk/src/languageHandler';
|
||||
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';
|
||||
import BaseEventIndexManager from "matrix-react-sdk/src/indexing/BaseEventIndexManager";
|
||||
import dis from "matrix-react-sdk/src/dispatcher/dispatcher";
|
||||
import { _t } from "matrix-react-sdk/src/languageHandler";
|
||||
import SdkConfig from "matrix-react-sdk/src/SdkConfig";
|
||||
import { IConfigOptions } from "matrix-react-sdk/src/IConfigOptions";
|
||||
import * as rageshake from 'matrix-react-sdk/src/rageshake/rageshake';
|
||||
import * as rageshake from "matrix-react-sdk/src/rageshake/rageshake";
|
||||
import { MatrixClient } from "matrix-js-sdk/src/client";
|
||||
import { Room } from "matrix-js-sdk/src/models/room";
|
||||
import Modal from "matrix-react-sdk/src/Modal";
|
||||
|
@ -41,35 +41,35 @@ import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/G
|
|||
import { logger } from "matrix-js-sdk/src/logger";
|
||||
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
|
||||
|
||||
import VectorBasePlatform from './VectorBasePlatform';
|
||||
import VectorBasePlatform from "./VectorBasePlatform";
|
||||
import { SeshatIndexManager } from "./SeshatIndexManager";
|
||||
import { IPCManager } from "./IPCManager";
|
||||
|
||||
const isMac = navigator.platform.toUpperCase().includes('MAC');
|
||||
const isMac = navigator.platform.toUpperCase().includes("MAC");
|
||||
|
||||
function platformFriendlyName(): string {
|
||||
// used to use window.process but the same info is available here
|
||||
if (navigator.userAgent.includes('Macintosh')) {
|
||||
return 'macOS';
|
||||
} else if (navigator.userAgent.includes('FreeBSD')) {
|
||||
return 'FreeBSD';
|
||||
} else if (navigator.userAgent.includes('OpenBSD')) {
|
||||
return 'OpenBSD';
|
||||
} else if (navigator.userAgent.includes('SunOS')) {
|
||||
return 'SunOS';
|
||||
} else if (navigator.userAgent.includes('Windows')) {
|
||||
return 'Windows';
|
||||
} else if (navigator.userAgent.includes('Linux')) {
|
||||
return 'Linux';
|
||||
if (navigator.userAgent.includes("Macintosh")) {
|
||||
return "macOS";
|
||||
} else if (navigator.userAgent.includes("FreeBSD")) {
|
||||
return "FreeBSD";
|
||||
} else if (navigator.userAgent.includes("OpenBSD")) {
|
||||
return "OpenBSD";
|
||||
} else if (navigator.userAgent.includes("SunOS")) {
|
||||
return "SunOS";
|
||||
} else if (navigator.userAgent.includes("Windows")) {
|
||||
return "Windows";
|
||||
} else if (navigator.userAgent.includes("Linux")) {
|
||||
return "Linux";
|
||||
} else {
|
||||
return 'Unknown';
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
function onAction(payload: ActionPayload): void {
|
||||
// Whitelist payload actions, no point sending most across
|
||||
if (['call_state'].includes(payload.action)) {
|
||||
window.electron.send('app_onAction', payload);
|
||||
if (["call_state"].includes(payload.action)) {
|
||||
window.electron.send("app_onAction", payload);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
false if there is not
|
||||
or the error if one is encountered
|
||||
*/
|
||||
window.electron.on('check_updates', (event, status) => {
|
||||
window.electron.on("check_updates", (event, status) => {
|
||||
dis.dispatch<CheckUpdatesPayload>({
|
||||
action: Action.CheckUpdates,
|
||||
...getUpdateCheckStatus(status),
|
||||
|
@ -110,27 +110,27 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
});
|
||||
|
||||
// try to flush the rageshake logs to indexeddb before quit.
|
||||
window.electron.on('before-quit', function() {
|
||||
logger.log('element-desktop closing');
|
||||
window.electron.on("before-quit", function () {
|
||||
logger.log("element-desktop closing");
|
||||
rageshake.flush();
|
||||
});
|
||||
|
||||
window.electron.on('update-downloaded', this.onUpdateDownloaded);
|
||||
window.electron.on("update-downloaded", this.onUpdateDownloaded);
|
||||
|
||||
window.electron.on('preferences', () => {
|
||||
window.electron.on("preferences", () => {
|
||||
dis.fire(Action.ViewUserSettings);
|
||||
});
|
||||
|
||||
window.electron.on('userDownloadCompleted', (ev, { id, name }) => {
|
||||
window.electron.on("userDownloadCompleted", (ev, { id, name }) => {
|
||||
const key = `DOWNLOAD_TOAST_${id}`;
|
||||
|
||||
const onAccept = (): void => {
|
||||
window.electron.send('userDownloadAction', { id, open: true });
|
||||
window.electron.send("userDownloadAction", { id, open: true });
|
||||
ToastStore.sharedInstance().dismissToast(key);
|
||||
};
|
||||
|
||||
const onDismiss = (): void => {
|
||||
window.electron.send('userDownloadAction', { id });
|
||||
window.electron.send("userDownloadAction", { id });
|
||||
};
|
||||
|
||||
ToastStore.sharedInstance().addOrReplaceToast({
|
||||
|
@ -153,7 +153,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
}
|
||||
|
||||
public async getConfig(): Promise<IConfigOptions> {
|
||||
return this.ipc.call('getConfig');
|
||||
return this.ipc.call("getConfig");
|
||||
}
|
||||
|
||||
private onUpdateDownloaded = async (ev, { releaseNotes, releaseName }): Promise<void> => {
|
||||
|
@ -167,7 +167,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
};
|
||||
|
||||
public getHumanReadableName(): string {
|
||||
return 'Electron Platform'; // no translation required: only used for analytics
|
||||
return "Electron Platform"; // no translation required: only used for analytics
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -186,7 +186,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
if (this.notificationCount === count) return;
|
||||
super.setNotificationCount(count);
|
||||
|
||||
window.electron.send('setBadgeCount', count);
|
||||
window.electron.send("setBadgeCount", count);
|
||||
}
|
||||
|
||||
public supportsNotifications(): boolean {
|
||||
|
@ -210,29 +210,23 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
// maybe we should pass basic styling (italics, bold, underline) through from MD
|
||||
// we only have to strip out < and > as the spec doesn't include anything about things like &
|
||||
// so we shouldn't assume that all implementations will treat those properly. Very basic tag parsing is done.
|
||||
if (navigator.userAgent.includes('Linux')) {
|
||||
msg = msg.replace(/</g, '<').replace(/>/g, '>');
|
||||
if (navigator.userAgent.includes("Linux")) {
|
||||
msg = msg.replace(/</g, "<").replace(/>/g, ">");
|
||||
}
|
||||
|
||||
const notification = super.displayNotification(
|
||||
title,
|
||||
msg,
|
||||
avatarUrl,
|
||||
room,
|
||||
ev,
|
||||
);
|
||||
const notification = super.displayNotification(title, msg, avatarUrl, room, ev);
|
||||
|
||||
const handler = notification.onclick as Function;
|
||||
notification.onclick = (): void => {
|
||||
handler?.();
|
||||
this.ipc.call('focusWindow');
|
||||
this.ipc.call("focusWindow");
|
||||
};
|
||||
|
||||
return notification;
|
||||
}
|
||||
|
||||
public loudNotification(ev: MatrixEvent, room: Room): void {
|
||||
window.electron.send('loudNotification');
|
||||
window.electron.send("loudNotification");
|
||||
}
|
||||
|
||||
public needsUrlTooltips(): boolean {
|
||||
|
@ -240,7 +234,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
}
|
||||
|
||||
public async getAppVersion(): Promise<string> {
|
||||
return this.ipc.call('getAppVersion');
|
||||
return this.ipc.call("getAppVersion");
|
||||
}
|
||||
|
||||
public supportsSetting(settingName?: string): boolean {
|
||||
|
@ -262,32 +256,32 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
}
|
||||
|
||||
public async canSelfUpdate(): Promise<boolean> {
|
||||
const feedUrl = await this.ipc.call('getUpdateFeedUrl');
|
||||
const feedUrl = await this.ipc.call("getUpdateFeedUrl");
|
||||
return Boolean(feedUrl);
|
||||
}
|
||||
|
||||
public startUpdateCheck(): void {
|
||||
super.startUpdateCheck();
|
||||
window.electron.send('check_updates');
|
||||
window.electron.send("check_updates");
|
||||
}
|
||||
|
||||
public installUpdate(): void {
|
||||
// IPC to the main process to install the update, since quitAndInstall
|
||||
// doesn't fire the before-quit event so the main process needs to know
|
||||
// it should exit.
|
||||
window.electron.send('install_update');
|
||||
window.electron.send("install_update");
|
||||
}
|
||||
|
||||
public getDefaultDeviceDisplayName(): string {
|
||||
const brand = SdkConfig.get().brand;
|
||||
return _t('%(brand)s Desktop: %(platformName)s', {
|
||||
return _t("%(brand)s Desktop: %(platformName)s", {
|
||||
brand,
|
||||
platformName: platformFriendlyName(),
|
||||
});
|
||||
}
|
||||
|
||||
public requestNotificationPermission(): Promise<string> {
|
||||
return Promise.resolve('granted');
|
||||
return Promise.resolve("granted");
|
||||
}
|
||||
|
||||
public reload(): void {
|
||||
|
@ -299,33 +293,33 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
}
|
||||
|
||||
public async setLanguage(preferredLangs: string[]): Promise<any> {
|
||||
return this.ipc.call('setLanguage', preferredLangs);
|
||||
return this.ipc.call("setLanguage", preferredLangs);
|
||||
}
|
||||
|
||||
public setSpellCheckEnabled(enabled: boolean): void {
|
||||
this.ipc.call('setSpellCheckEnabled', enabled).catch(error => {
|
||||
this.ipc.call("setSpellCheckEnabled", enabled).catch((error) => {
|
||||
logger.log("Failed to send setSpellCheckEnabled IPC to Electron");
|
||||
logger.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
public async getSpellCheckEnabled(): Promise<boolean> {
|
||||
return this.ipc.call('getSpellCheckEnabled');
|
||||
return this.ipc.call("getSpellCheckEnabled");
|
||||
}
|
||||
|
||||
public setSpellCheckLanguages(preferredLangs: string[]): void {
|
||||
this.ipc.call('setSpellCheckLanguages', preferredLangs).catch(error => {
|
||||
this.ipc.call("setSpellCheckLanguages", preferredLangs).catch((error) => {
|
||||
logger.log("Failed to send setSpellCheckLanguages IPC to Electron");
|
||||
logger.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
public async getSpellCheckLanguages(): Promise<string[]> {
|
||||
return this.ipc.call('getSpellCheckLanguages');
|
||||
return this.ipc.call("getSpellCheckLanguages");
|
||||
}
|
||||
|
||||
public async getDesktopCapturerSources(options: GetSourcesOptions): Promise<Array<DesktopCapturerSource>> {
|
||||
return this.ipc.call('getDesktopCapturerSources', options);
|
||||
return this.ipc.call("getDesktopCapturerSources", options);
|
||||
}
|
||||
|
||||
public supportsDesktopCapturer(): boolean {
|
||||
|
@ -338,7 +332,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
}
|
||||
|
||||
public async getAvailableSpellCheckLanguages(): Promise<string[]> {
|
||||
return this.ipc.call('getAvailableSpellCheckLanguages');
|
||||
return this.ipc.call("getAvailableSpellCheckLanguages");
|
||||
}
|
||||
|
||||
public getSSOCallbackUrl(fragmentAfterLogin: string): URL {
|
||||
|
@ -372,7 +366,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
|
||||
public async getPickleKey(userId: string, deviceId: string): Promise<string | null> {
|
||||
try {
|
||||
return await this.ipc.call('getPickleKey', userId, deviceId);
|
||||
return await this.ipc.call("getPickleKey", userId, deviceId);
|
||||
} catch (e) {
|
||||
// if we can't connect to the password storage, assume there's no
|
||||
// pickle key
|
||||
|
@ -382,7 +376,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
|
||||
public async createPickleKey(userId: string, deviceId: string): Promise<string | null> {
|
||||
try {
|
||||
return await this.ipc.call('createPickleKey', userId, deviceId);
|
||||
return await this.ipc.call("createPickleKey", userId, deviceId);
|
||||
} catch (e) {
|
||||
// if we can't connect to the password storage, assume there's no
|
||||
// pickle key
|
||||
|
@ -392,7 +386,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
|||
|
||||
public async destroyPickleKey(userId: string, deviceId: string): Promise<void> {
|
||||
try {
|
||||
await this.ipc.call('destroyPickleKey', userId, deviceId);
|
||||
await this.ipc.call("destroyPickleKey", userId, deviceId);
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
import { defer, IDeferred } from 'matrix-js-sdk/src/utils';
|
||||
import { defer, IDeferred } from "matrix-js-sdk/src/utils";
|
||||
import { logger } from "matrix-js-sdk/src/logger";
|
||||
|
||||
import { ElectronChannel } from "../../@types/global";
|
||||
|
|
|
@ -24,7 +24,7 @@ export default class PWAPlatform extends WebPlatform {
|
|||
if (this.notificationCount === count) return;
|
||||
this.notificationCount = count;
|
||||
|
||||
navigator.setAppBadge(count).catch(e => {
|
||||
navigator.setAppBadge(count).catch((e) => {
|
||||
logger.error("Failed to update PWA app badge", e);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ import BaseEventIndexManager, {
|
|||
IEventAndProfile,
|
||||
IIndexStats,
|
||||
ISearchArgs,
|
||||
} from 'matrix-react-sdk/src/indexing/BaseEventIndexManager';
|
||||
} from "matrix-react-sdk/src/indexing/BaseEventIndexManager";
|
||||
import { IMatrixProfile, IEventWithRoomId as IMatrixEvent, IResultRoomEvents } from "matrix-js-sdk/src/@types/search";
|
||||
|
||||
import { IPCManager } from "./IPCManager";
|
||||
|
@ -28,35 +28,35 @@ export class SeshatIndexManager extends BaseEventIndexManager {
|
|||
private readonly ipc = new IPCManager("seshat", "seshatReply");
|
||||
|
||||
public async supportsEventIndexing(): Promise<boolean> {
|
||||
return this.ipc.call('supportsEventIndexing');
|
||||
return this.ipc.call("supportsEventIndexing");
|
||||
}
|
||||
|
||||
public async initEventIndex(userId: string, deviceId: string): Promise<void> {
|
||||
return this.ipc.call('initEventIndex', userId, deviceId);
|
||||
return this.ipc.call("initEventIndex", userId, deviceId);
|
||||
}
|
||||
|
||||
public async addEventToIndex(ev: IMatrixEvent, profile: IMatrixProfile): Promise<void> {
|
||||
return this.ipc.call('addEventToIndex', ev, profile);
|
||||
return this.ipc.call("addEventToIndex", ev, profile);
|
||||
}
|
||||
|
||||
public async deleteEvent(eventId: string): Promise<boolean> {
|
||||
return this.ipc.call('deleteEvent', eventId);
|
||||
return this.ipc.call("deleteEvent", eventId);
|
||||
}
|
||||
|
||||
public async isEventIndexEmpty(): Promise<boolean> {
|
||||
return this.ipc.call('isEventIndexEmpty');
|
||||
return this.ipc.call("isEventIndexEmpty");
|
||||
}
|
||||
|
||||
public async isRoomIndexed(roomId: string): Promise<boolean> {
|
||||
return this.ipc.call('isRoomIndexed', roomId);
|
||||
return this.ipc.call("isRoomIndexed", roomId);
|
||||
}
|
||||
|
||||
public async commitLiveEvents(): Promise<void> {
|
||||
return this.ipc.call('commitLiveEvents');
|
||||
return this.ipc.call("commitLiveEvents");
|
||||
}
|
||||
|
||||
public async searchEventIndex(searchConfig: ISearchArgs): Promise<IResultRoomEvents> {
|
||||
return this.ipc.call('searchEventIndex', searchConfig);
|
||||
return this.ipc.call("searchEventIndex", searchConfig);
|
||||
}
|
||||
|
||||
public async addHistoricEvents(
|
||||
|
@ -64,42 +64,42 @@ export class SeshatIndexManager extends BaseEventIndexManager {
|
|||
checkpoint: ICrawlerCheckpoint | null,
|
||||
oldCheckpoint: ICrawlerCheckpoint | null,
|
||||
): Promise<boolean> {
|
||||
return this.ipc.call('addHistoricEvents', events, checkpoint, oldCheckpoint);
|
||||
return this.ipc.call("addHistoricEvents", events, checkpoint, oldCheckpoint);
|
||||
}
|
||||
|
||||
public async addCrawlerCheckpoint(checkpoint: ICrawlerCheckpoint): Promise<void> {
|
||||
return this.ipc.call('addCrawlerCheckpoint', checkpoint);
|
||||
return this.ipc.call("addCrawlerCheckpoint", checkpoint);
|
||||
}
|
||||
|
||||
public async removeCrawlerCheckpoint(checkpoint: ICrawlerCheckpoint): Promise<void> {
|
||||
return this.ipc.call('removeCrawlerCheckpoint', checkpoint);
|
||||
return this.ipc.call("removeCrawlerCheckpoint", checkpoint);
|
||||
}
|
||||
|
||||
public async loadFileEvents(args): Promise<IEventAndProfile[]> {
|
||||
return this.ipc.call('loadFileEvents', args);
|
||||
return this.ipc.call("loadFileEvents", args);
|
||||
}
|
||||
|
||||
public async loadCheckpoints(): Promise<ICrawlerCheckpoint[]> {
|
||||
return this.ipc.call('loadCheckpoints');
|
||||
return this.ipc.call("loadCheckpoints");
|
||||
}
|
||||
|
||||
public async closeEventIndex(): Promise<void> {
|
||||
return this.ipc.call('closeEventIndex');
|
||||
return this.ipc.call("closeEventIndex");
|
||||
}
|
||||
|
||||
public async getStats(): Promise<IIndexStats> {
|
||||
return this.ipc.call('getStats');
|
||||
return this.ipc.call("getStats");
|
||||
}
|
||||
|
||||
public async getUserVersion(): Promise<number> {
|
||||
return this.ipc.call('getUserVersion');
|
||||
return this.ipc.call("getUserVersion");
|
||||
}
|
||||
|
||||
public async setUserVersion(version: number): Promise<void> {
|
||||
return this.ipc.call('setUserVersion', version);
|
||||
return this.ipc.call("setUserVersion", version);
|
||||
}
|
||||
|
||||
public async deleteEventIndex(): Promise<void> {
|
||||
return this.ipc.call('deleteEventIndex');
|
||||
return this.ipc.call("deleteEventIndex");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,8 +17,8 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
import BasePlatform from 'matrix-react-sdk/src/BasePlatform';
|
||||
import { _t } from 'matrix-react-sdk/src/languageHandler';
|
||||
import BasePlatform from "matrix-react-sdk/src/BasePlatform";
|
||||
import { _t } from "matrix-react-sdk/src/languageHandler";
|
||||
|
||||
import type { IConfigOptions } from "matrix-react-sdk/src/IConfigOptions";
|
||||
import { getVectorConfig } from "../getconfig";
|
||||
|
@ -35,7 +35,7 @@ export default abstract class VectorBasePlatform extends BasePlatform {
|
|||
}
|
||||
|
||||
public getHumanReadableName(): string {
|
||||
return 'Vector Base Platform'; // no translation required: only used for analytics
|
||||
return "Vector Base Platform"; // no translation required: only used for analytics
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -78,8 +78,7 @@ export default abstract class VectorBasePlatform extends BasePlatform {
|
|||
/**
|
||||
* Begin update polling, if applicable
|
||||
*/
|
||||
public startUpdater(): void {
|
||||
}
|
||||
public startUpdater(): void {}
|
||||
|
||||
/**
|
||||
* Get a sensible default display name for the
|
||||
|
|
|
@ -17,15 +17,15 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
import { UpdateCheckStatus, UpdateStatus } from "matrix-react-sdk/src/BasePlatform";
|
||||
import dis from 'matrix-react-sdk/src/dispatcher/dispatcher';
|
||||
import { _t } from 'matrix-react-sdk/src/languageHandler';
|
||||
import dis from "matrix-react-sdk/src/dispatcher/dispatcher";
|
||||
import { _t } from "matrix-react-sdk/src/languageHandler";
|
||||
import { hideToast as hideUpdateToast, showToast as showUpdateToast } from "matrix-react-sdk/src/toasts/UpdateToast";
|
||||
import { Action } from "matrix-react-sdk/src/dispatcher/actions";
|
||||
import { CheckUpdatesPayload } from 'matrix-react-sdk/src/dispatcher/payloads/CheckUpdatesPayload';
|
||||
import UAParser from 'ua-parser-js';
|
||||
import { CheckUpdatesPayload } from "matrix-react-sdk/src/dispatcher/payloads/CheckUpdatesPayload";
|
||||
import UAParser from "ua-parser-js";
|
||||
import { logger } from "matrix-js-sdk/src/logger";
|
||||
|
||||
import VectorBasePlatform from './VectorBasePlatform';
|
||||
import VectorBasePlatform from "./VectorBasePlatform";
|
||||
import { parseQs } from "../url_utils";
|
||||
|
||||
const POKE_RATE_MS = 10 * 60 * 1000; // 10 min
|
||||
|
@ -43,13 +43,13 @@ export default class WebPlatform extends VectorBasePlatform {
|
|||
public constructor() {
|
||||
super();
|
||||
// Register service worker if available on this platform
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.register('sw.js');
|
||||
if ("serviceWorker" in navigator) {
|
||||
navigator.serviceWorker.register("sw.js");
|
||||
}
|
||||
}
|
||||
|
||||
public getHumanReadableName(): string {
|
||||
return 'Web Platform'; // no translation required: only used for analytics
|
||||
return "Web Platform"; // no translation required: only used for analytics
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -65,7 +65,7 @@ export default class WebPlatform extends VectorBasePlatform {
|
|||
* to display notifications. Otherwise false.
|
||||
*/
|
||||
public maySendNotifications(): boolean {
|
||||
return window.Notification.permission === 'granted';
|
||||
return window.Notification.permission === "granted";
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -79,7 +79,7 @@ export default class WebPlatform extends VectorBasePlatform {
|
|||
// annoyingly, the latest spec says this returns a
|
||||
// promise, but this is only supported in Chrome 46
|
||||
// and Firefox 47, so adapt the callback API.
|
||||
return new Promise(function(resolve) {
|
||||
return new Promise(function (resolve) {
|
||||
window.Notification.requestPermission((result) => {
|
||||
resolve(result);
|
||||
});
|
||||
|
@ -142,30 +142,33 @@ export default class WebPlatform extends VectorBasePlatform {
|
|||
showUpdate: (currentVersion: string, mostRecentVersion: string) => void,
|
||||
showNoUpdate?: () => void,
|
||||
): Promise<UpdateStatus> => {
|
||||
return this.getMostRecentVersion().then((mostRecentVersion) => {
|
||||
const currentVersion = getNormalizedAppVersion(process.env.VERSION);
|
||||
return this.getMostRecentVersion().then(
|
||||
(mostRecentVersion) => {
|
||||
const currentVersion = getNormalizedAppVersion(process.env.VERSION);
|
||||
|
||||
if (currentVersion !== mostRecentVersion) {
|
||||
if (this.shouldShowUpdate(mostRecentVersion)) {
|
||||
console.log("Update available to " + mostRecentVersion + ", will notify user");
|
||||
showUpdate(currentVersion, mostRecentVersion);
|
||||
if (currentVersion !== mostRecentVersion) {
|
||||
if (this.shouldShowUpdate(mostRecentVersion)) {
|
||||
console.log("Update available to " + mostRecentVersion + ", will notify user");
|
||||
showUpdate(currentVersion, mostRecentVersion);
|
||||
} else {
|
||||
console.log("Update available to " + mostRecentVersion + " but won't be shown");
|
||||
}
|
||||
return { status: UpdateCheckStatus.Ready };
|
||||
} else {
|
||||
console.log("Update available to " + mostRecentVersion + " but won't be shown");
|
||||
console.log("No update available, already on " + mostRecentVersion);
|
||||
showNoUpdate?.();
|
||||
}
|
||||
return { status: UpdateCheckStatus.Ready };
|
||||
} else {
|
||||
console.log("No update available, already on " + mostRecentVersion);
|
||||
showNoUpdate?.();
|
||||
}
|
||||
|
||||
return { status: UpdateCheckStatus.NotAvailable };
|
||||
}, (err) => {
|
||||
logger.error("Failed to poll for update", err);
|
||||
return {
|
||||
status: UpdateCheckStatus.Error,
|
||||
detail: err.message || err.status ? err.status.toString() : 'Unknown Error',
|
||||
};
|
||||
});
|
||||
return { status: UpdateCheckStatus.NotAvailable };
|
||||
},
|
||||
(err) => {
|
||||
logger.error("Failed to poll for update", err);
|
||||
return {
|
||||
status: UpdateCheckStatus.Error,
|
||||
detail: err.message || err.status ? err.status.toString() : "Unknown Error",
|
||||
};
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
public startUpdateCheck(): void {
|
||||
|
@ -197,7 +200,7 @@ export default class WebPlatform extends VectorBasePlatform {
|
|||
let osName = ua.getOS().name || "unknown OS";
|
||||
// Stylise the value from the parser to match Apple's current branding.
|
||||
if (osName === "Mac OS") osName = "macOS";
|
||||
return _t('%(appName)s: %(browserName)s on %(osName)s', {
|
||||
return _t("%(appName)s: %(browserName)s on %(osName)s", {
|
||||
appName,
|
||||
browserName,
|
||||
osName,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue