From 72ab1dc8a082d3346c814153b7bb70774a43da18 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sat, 31 Jan 2026 00:41:48 -0800 Subject: [PATCH] add download context menu action for browser --- .../context-menu/actions/download-action.tsx | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/renderer/features/context-menu/actions/download-action.tsx b/src/renderer/features/context-menu/actions/download-action.tsx index 4ee7a7765..d21873997 100644 --- a/src/renderer/features/context-menu/actions/download-action.tsx +++ b/src/renderer/features/context-menu/actions/download-action.tsx @@ -5,7 +5,6 @@ import { useTranslation } from 'react-i18next'; import { api } from '/@/renderer/api'; import { useCurrentServer } from '/@/renderer/store'; import { ContextMenu } from '/@/shared/components/context-menu/context-menu'; -import { toast } from '/@/shared/components/toast/toast'; interface DownloadActionProps { ids: string[]; @@ -18,10 +17,6 @@ export const DownloadAction = ({ ids }: DownloadActionProps) => { const server = useCurrentServer(); const onSelect = useCallback(async () => { - if (!utils) { - return; - } - try { for (const id of ids) { const downloadUrl = api.controller.getDownloadUrl({ @@ -29,23 +24,16 @@ export const DownloadAction = ({ ids }: DownloadActionProps) => { query: { id }, }); - utils.download(downloadUrl); + if (isElectron()) { + utils?.download(downloadUrl); + } else { + window.open(downloadUrl, '_blank'); + } } - - toast.success({ - message: t('action.downloadStarted', { - count: ids.length, - postProcess: 'sentenceCase', - }), - }); } catch (error) { console.error('Failed to download items:', error); } - }, [ids, server, t]); - - if (!utils) { - return null; - } + }, [ids, server]); return ( 1} leftIcon="download" onSelect={onSelect}>