From f1ac585d724a440898cc1c14c80cf8531f462c2c Mon Sep 17 00:00:00 2001 From: tyanxie <494966054@qq.com> Date: Sat, 8 Aug 2026 09:47:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(notification):=20=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E6=B7=BB=E5=8A=A0=E5=BD=93=E5=89=8D=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E5=AF=B9=E5=BA=94=E7=9A=84=20logo=20=E5=9B=BE?= =?UTF-8?q?=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/web/src/hooks/useLogoSrc.ts | 7 +++++++ src/web/src/hooks/useTaskNotifier.ts | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/web/src/hooks/useLogoSrc.ts b/src/web/src/hooks/useLogoSrc.ts index 56b6536..4413145 100644 --- a/src/web/src/hooks/useLogoSrc.ts +++ b/src/web/src/hooks/useLogoSrc.ts @@ -1,6 +1,7 @@ import { useBackground, useResolvedTheme, + useSettings, type Background, } from "../stores/useSettings"; @@ -20,3 +21,9 @@ export function useLogoSrc() { const theme = useResolvedTheme(); return getLogoSrc(background, theme); } + +/** 非 React 上下文中获取当前 logo 路径(快照式,无订阅) */ +export function getCurrentLogoSrc(): string { + const { background, resolvedTheme } = useSettings.getState(); + return getLogoSrc(background, resolvedTheme); +} diff --git a/src/web/src/hooks/useTaskNotifier.ts b/src/web/src/hooks/useTaskNotifier.ts index 9cb3c81..8e57388 100644 --- a/src/web/src/hooks/useTaskNotifier.ts +++ b/src/web/src/hooks/useTaskNotifier.ts @@ -9,6 +9,7 @@ import i18next from "i18next"; import { useWebSocket } from "../stores/useWebSocket"; import { useInstances } from "../stores/useInstances"; import { useSettings } from "../stores/useSettings"; +import { getCurrentLogoSrc } from "./useLogoSrc"; import type { InstanceId, InstanceStatus, @@ -105,6 +106,7 @@ function showCompletionNotification( // 导致同一实例连续完成任务时后续通知不可见。 const notification = new Notification("Paimon", { body: i18next.t("notification.taskComplete", { name: dirName }), + icon: getCurrentLogoSrc(), }); // 点击通知:聚焦窗口并导航到对应实例