From e6003463ac240dce491c1e6f230f312c4d65926c Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 8 Dec 2025 13:02:20 +0800 Subject: [PATCH] feat: enhance update dialog functionality and state management - Added ability to ignore updates in the UpdateDialogPopup, updating the state accordingly. - Updated UpdateAppButton to conditionally render based on the ignore state. - Refactored runtime state to include an ignore flag for better update management. - Minor UI adjustments in UpdateAppButton for improved user experience. --- src/main/services/agents/BaseService.ts | 2 +- .../src/components/Popups/UpdateDialogPopup.tsx | 11 +++++++++-- .../src/pages/home/components/UpdateAppButton.tsx | 6 +++++- src/renderer/src/services/AssistantService.ts | 3 +-- src/renderer/src/store/runtime.ts | 4 +++- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/main/services/agents/BaseService.ts b/src/main/services/agents/BaseService.ts index 78bf72a952..461fdab96d 100644 --- a/src/main/services/agents/BaseService.ts +++ b/src/main/services/agents/BaseService.ts @@ -78,7 +78,7 @@ export abstract class BaseService { * Get database instance * Automatically waits for initialization to complete */ - protected async getDatabase() { + public async getDatabase() { const dbManager = await DatabaseManager.getInstance() return dbManager.getDatabase() } diff --git a/src/renderer/src/components/Popups/UpdateDialogPopup.tsx b/src/renderer/src/components/Popups/UpdateDialogPopup.tsx index 29afcc0d24..593c882bf5 100644 --- a/src/renderer/src/components/Popups/UpdateDialogPopup.tsx +++ b/src/renderer/src/components/Popups/UpdateDialogPopup.tsx @@ -1,6 +1,7 @@ import { loggerService } from '@logger' import { TopView } from '@renderer/components/TopView' -import { handleSaveData } from '@renderer/store' +import { handleSaveData, useAppDispatch } from '@renderer/store' +import { setUpdateState } from '@renderer/store/runtime' import { Button, Modal } from 'antd' import type { ReleaseNoteInfo, UpdateInfo } from 'builder-util-runtime' import { useEffect, useState } from 'react' @@ -22,6 +23,7 @@ const PopupContainer: React.FC = ({ releaseInfo, resolve }) => { const { t } = useTranslation() const [open, setOpen] = useState(true) const [isInstalling, setIsInstalling] = useState(false) + const dispatch = useAppDispatch() useEffect(() => { if (releaseInfo) { @@ -50,6 +52,11 @@ const PopupContainer: React.FC = ({ releaseInfo, resolve }) => { resolve({}) } + const onIgnore = () => { + dispatch(setUpdateState({ ignore: true })) + setOpen(false) + } + UpdateDialogPopup.hide = onCancel const releaseNotes = releaseInfo?.releaseNotes @@ -69,7 +76,7 @@ const PopupContainer: React.FC = ({ releaseInfo, resolve }) => { centered width={720} footer={[ - ,