mirror of
				https://github.com/zulip/zulip-desktop.git
				synced 2025-11-03 21:43:18 +00:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					588d32fd22 | ||
| 
						 | 
					1c471fe624 | ||
| 
						 | 
					52486d687d | ||
| 
						 | 
					73441d791c | ||
| 
						 | 
					1bb6423721 | ||
| 
						 | 
					d6775d64a3 | ||
| 
						 | 
					e1326eae91 | ||
| 
						 | 
					b93955b28f | ||
| 
						 | 
					e3452bda22 | ||
| 
						 | 
					0aab691b44 | 
@@ -1,7 +1,6 @@
 | 
			
		||||
import {shell} from "electron/common";
 | 
			
		||||
import {app, dialog, session} from "electron/main";
 | 
			
		||||
import process from "node:process";
 | 
			
		||||
import util from "node:util";
 | 
			
		||||
 | 
			
		||||
import log from "electron-log";
 | 
			
		||||
import type {UpdateDownloadedEvent, UpdateInfo} from "electron-updater";
 | 
			
		||||
@@ -11,7 +10,11 @@ import * as ConfigUtil from "../common/config-util";
 | 
			
		||||
 | 
			
		||||
import {linuxUpdateNotification} from "./linuxupdater"; // Required only in case of linux
 | 
			
		||||
 | 
			
		||||
const sleep = util.promisify(setTimeout);
 | 
			
		||||
let quitting = false;
 | 
			
		||||
 | 
			
		||||
export function shouldQuitForUpdate(): boolean {
 | 
			
		||||
  return quitting;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export async function appUpdater(updateFromMenu = false): Promise<void> {
 | 
			
		||||
  // Don't initiate auto-updates in development
 | 
			
		||||
@@ -104,10 +107,8 @@ Current Version: ${app.getVersion()}`,
 | 
			
		||||
      detail: "It will be installed the next time you restart the application",
 | 
			
		||||
    });
 | 
			
		||||
    if (response === 0) {
 | 
			
		||||
      await sleep(1000);
 | 
			
		||||
      quitting = true;
 | 
			
		||||
      autoUpdater.quitAndInstall();
 | 
			
		||||
      // Force app to quit. This is just a workaround, ideally autoUpdater.quitAndInstall() should relaunch the app.
 | 
			
		||||
      app.quit();
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
  // Init for updates
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ import * as ConfigUtil from "../common/config-util";
 | 
			
		||||
import type {RendererMessage} from "../common/typed-ipc";
 | 
			
		||||
import type {MenuProps} from "../common/types";
 | 
			
		||||
 | 
			
		||||
import {appUpdater} from "./autoupdater";
 | 
			
		||||
import {appUpdater, shouldQuitForUpdate} from "./autoupdater";
 | 
			
		||||
import * as BadgeSettings from "./badge-settings";
 | 
			
		||||
import handleExternalLink from "./handle-external-link";
 | 
			
		||||
import * as AppMenu from "./menu";
 | 
			
		||||
@@ -91,7 +91,7 @@ function createMainWindow(): BrowserWindow {
 | 
			
		||||
      app.quit();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!isQuitting) {
 | 
			
		||||
    if (!isQuitting && !shouldQuitForUpdate()) {
 | 
			
		||||
      event.preventDefault();
 | 
			
		||||
 | 
			
		||||
      if (process.platform === "darwin") {
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ import {getConfigItem} from "../common/config-util";
 | 
			
		||||
 | 
			
		||||
export const sentryInit = (): void => {
 | 
			
		||||
  Sentry.init({
 | 
			
		||||
    dsn: "https://628dc2f2864243a08ead72e63f94c7b1@sentry.io/204668",
 | 
			
		||||
    dsn: "https://628dc2f2864243a08ead72e63f94c7b1@o48127.ingest.sentry.io/204668",
 | 
			
		||||
 | 
			
		||||
    // Don't report errors in development or if disabled by the user.
 | 
			
		||||
    beforeSend: (event) =>
 | 
			
		||||
 
 | 
			
		||||
@@ -59,13 +59,8 @@ export default class ServerTab extends Tab {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  updateBadge(count: number): void {
 | 
			
		||||
    if (count > 0) {
 | 
			
		||||
      const formattedCount = count > 999 ? "1K+" : count.toString();
 | 
			
		||||
      this.$badge.textContent = formattedCount;
 | 
			
		||||
      this.$badge.classList.add("active");
 | 
			
		||||
    } else {
 | 
			
		||||
      this.$badge.classList.remove("active");
 | 
			
		||||
    }
 | 
			
		||||
    this.$badge.textContent = count > 999 ? "1K+" : count.toString();
 | 
			
		||||
    this.$badge.classList.toggle("active", count > 0);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  generateShortcutText(): string {
 | 
			
		||||
 
 | 
			
		||||
@@ -206,11 +206,7 @@ export default class WebView {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // To show or hide the loading indicator in the the active tab
 | 
			
		||||
    if (this.loading) {
 | 
			
		||||
      this.$webviewsContainer.remove("loaded");
 | 
			
		||||
    } else {
 | 
			
		||||
      this.$webviewsContainer.add("loaded");
 | 
			
		||||
    }
 | 
			
		||||
    this.$webviewsContainer.toggle("loaded", !this.loading);
 | 
			
		||||
 | 
			
		||||
    this.$el.classList.add("active");
 | 
			
		||||
    this.focus();
 | 
			
		||||
@@ -293,11 +289,7 @@ export default class WebView {
 | 
			
		||||
    const $backButton = document.querySelector(
 | 
			
		||||
      "#actions-container #back-action",
 | 
			
		||||
    )!;
 | 
			
		||||
    if (this.getWebContents().canGoBack()) {
 | 
			
		||||
      $backButton.classList.remove("disable");
 | 
			
		||||
    } else {
 | 
			
		||||
      $backButton.classList.add("disable");
 | 
			
		||||
    }
 | 
			
		||||
    $backButton.classList.toggle("disable", !this.getWebContents().canGoBack());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  forward(): void {
 | 
			
		||||
 
 | 
			
		||||
@@ -699,13 +699,8 @@ export class ServerManagerView {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  showLoading(loading: boolean): void {
 | 
			
		||||
    if (!loading) {
 | 
			
		||||
      this.$reloadButton.removeAttribute("style");
 | 
			
		||||
      this.$loadingIndicator.style.display = "none";
 | 
			
		||||
    } else if (loading) {
 | 
			
		||||
      this.$reloadButton.style.display = "none";
 | 
			
		||||
      this.$loadingIndicator.removeAttribute("style");
 | 
			
		||||
    }
 | 
			
		||||
    this.$reloadButton.classList.toggle("hidden", loading);
 | 
			
		||||
    this.$loadingIndicator.classList.toggle("hidden", !loading);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async destroyTab(name: string, index: number): Promise<void> {
 | 
			
		||||
@@ -772,11 +767,7 @@ export class ServerManagerView {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  toggleSidebar(show: boolean): void {
 | 
			
		||||
    if (show) {
 | 
			
		||||
      this.$sidebar.classList.remove("sidebar-hide");
 | 
			
		||||
    } else {
 | 
			
		||||
      this.$sidebar.classList.add("sidebar-hide");
 | 
			
		||||
    }
 | 
			
		||||
    this.$sidebar.classList.toggle("sidebar-hide", !show);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Toggles the dnd button icon.
 | 
			
		||||
 
 | 
			
		||||
@@ -58,10 +58,9 @@ export function initFindAccounts(props: FindAccountsProps): void {
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  $serverUrlField.addEventListener("input", () => {
 | 
			
		||||
    if ($serverUrlField.value) {
 | 
			
		||||
      $serverUrlField.classList.remove("invalid-input-value");
 | 
			
		||||
    } else {
 | 
			
		||||
      $serverUrlField.classList.add("invalid-input-value");
 | 
			
		||||
    }
 | 
			
		||||
    $serverUrlField.classList.toggle(
 | 
			
		||||
      "invalid-input-value",
 | 
			
		||||
      $serverUrlField.value === "",
 | 
			
		||||
    );
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -83,11 +83,7 @@ export function initNetworkSection({$root}: NetworkSectionProps): void {
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  function toggleManualProxySettings(option: boolean): void {
 | 
			
		||||
    if (option) {
 | 
			
		||||
      $manualProxyBlock.classList.remove("hidden");
 | 
			
		||||
    } else {
 | 
			
		||||
      $manualProxyBlock.classList.add("hidden");
 | 
			
		||||
    }
 | 
			
		||||
    $manualProxyBlock.classList.toggle("hidden", !option);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function updateProxyOption(): void {
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@
 | 
			
		||||
            <i class="material-icons md-48">notifications</i>
 | 
			
		||||
            <span id="dnd-tooltip" style="display: none">Do Not Disturb</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="action-button" id="reload-action">
 | 
			
		||||
          <div class="action-button hidden" id="reload-action">
 | 
			
		||||
            <i class="material-icons md-48">refresh</i>
 | 
			
		||||
            <span id="reload-tooltip" style="display: none">Reload</span>
 | 
			
		||||
          </div>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								changelog.md
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								changelog.md
									
									
									
									
									
								
							@@ -2,6 +2,29 @@
 | 
			
		||||
 | 
			
		||||
All notable changes to the Zulip desktop app are documented in this file.
 | 
			
		||||
 | 
			
		||||
### v5.9.3 --2022-04-28
 | 
			
		||||
 | 
			
		||||
**Fixes**:
 | 
			
		||||
 | 
			
		||||
- Fixed a bug in the automatic updater that would sometimes close the application instead of updating it.
 | 
			
		||||
  (As with most updater fixes, this fix will take effect when updating _from_ 5.9.3. If you're having trouble updating _to_ 5.9.3, a workaround is to click **Install Later** rather than **Install and Relaunch**, then **Quit** from the menu bar and re-open the application manually.)
 | 
			
		||||
 | 
			
		||||
**Dependencies**:
 | 
			
		||||
 | 
			
		||||
- Upgraded all dependencies, including Electron 18.2.0.
 | 
			
		||||
 | 
			
		||||
### v5.9.2 --2022-04-20
 | 
			
		||||
 | 
			
		||||
**Dependencies**:
 | 
			
		||||
 | 
			
		||||
- Upgraded all dependencies, including Electron 18.1.0. This fixes an upstream Electron bug that crashed the application when accessibility tools such as screen readers and grammar assistants are in use.
 | 
			
		||||
 | 
			
		||||
### v5.9.1 --2022-04-08
 | 
			
		||||
 | 
			
		||||
**Dependencies**:
 | 
			
		||||
 | 
			
		||||
- Upgraded all dependencies, including Electron 18.0.3.
 | 
			
		||||
 | 
			
		||||
### v5.9.0 --2022-04-01
 | 
			
		||||
 | 
			
		||||
**Fixes**:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1104
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1104
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "zulip",
 | 
			
		||||
  "productName": "Zulip",
 | 
			
		||||
  "version": "5.9.0",
 | 
			
		||||
  "version": "5.9.3",
 | 
			
		||||
  "main": "./app/main",
 | 
			
		||||
  "description": "Zulip Desktop App",
 | 
			
		||||
  "license": "Apache-2.0",
 | 
			
		||||
@@ -146,14 +146,14 @@
 | 
			
		||||
    "InstantMessaging"
 | 
			
		||||
  ],
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@electron/remote": "github:andersk/electron-remote#2.0.6-fixes",
 | 
			
		||||
    "@electron/remote": "^2.0.8",
 | 
			
		||||
    "@sentry/electron": "^3.0.3",
 | 
			
		||||
    "@yaireo/tagify": "^4.5.0",
 | 
			
		||||
    "adm-zip": "^0.5.5",
 | 
			
		||||
    "auto-launch": "^5.0.5",
 | 
			
		||||
    "backoff": "^2.5.0",
 | 
			
		||||
    "electron-log": "^4.3.5",
 | 
			
		||||
    "electron-updater": "^4.6.5",
 | 
			
		||||
    "electron-updater": "^5.0.1",
 | 
			
		||||
    "electron-window-state": "^5.0.3",
 | 
			
		||||
    "escape-goat": "^3.0.0",
 | 
			
		||||
    "get-stream": "^6.0.1",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user