From 87527d7b166f4627f9e7f5a2e0714883582776a7 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 29 Jun 2020 11:41:18 +0100 Subject: [PATCH] Show expiring toast on completed downloads Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/vector/platform/ElectronPlatform.tsx | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/vector/platform/ElectronPlatform.tsx b/src/vector/platform/ElectronPlatform.tsx index be1b5838..c356e0b0 100644 --- a/src/vector/platform/ElectronPlatform.tsx +++ b/src/vector/platform/ElectronPlatform.tsx @@ -45,6 +45,8 @@ import {Action} from "matrix-react-sdk/src/dispatcher/actions"; import {ActionPayload} from "matrix-react-sdk/src/dispatcher/payloads"; import {showToast as showUpdateToast} from "matrix-react-sdk/src/toasts/UpdateToast"; import {CheckUpdatesPayload} from "matrix-react-sdk/src/dispatcher/payloads/CheckUpdatesPayload"; +import ToastStore from "matrix-react-sdk/src/stores/ToastStore"; +import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/GenericExpiringToast"; const ipcRenderer = window.ipcRenderer; const isMac = navigator.platform.toUpperCase().includes('MAC'); @@ -247,6 +249,26 @@ export default class ElectronPlatform extends VectorBasePlatform { dis.fire(Action.ViewUserSettings); }); + ipcRenderer.on('userDownloadCompleted', (ev, {path, name}) => { + const onAccept = () => { + ipcRenderer.send('userDownloadOpen', {path}); + }; + + ToastStore.sharedInstance().addOrReplaceToast({ + key: `DOWNLOAD_TOAST_${path}`, + title: _t("Download Completed"), + props: { + description: name, + acceptLabel: _t("Open"), + onAccept, + dismissLabel: _t("Dismiss"), + numSeconds: 10, + }, + component: GenericExpiringToast, + priority: 99, + }); + }); + // register OS-specific shortcuts if (isMac) { registerShortcut(Categories.NAVIGATION, {