From b254c0c94d769f8e700ad3cdc8c96e932b73791c Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sun, 9 Aug 2026 11:19:17 +0100 Subject: [PATCH] Enhance AppUpdateProvider with improved duplicate installation handling - Updated the state management for duplicate installations to include specific paths, enhancing clarity for users. - Modified modal titles to include icons for better visual representation of update statuses. - Adjusted modal properties for improved user experience during duplicate installation prompts. --- .../Dashboard/context/AppUpdateContext.jsx | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/components/Dashboard/context/AppUpdateContext.jsx b/src/components/Dashboard/context/AppUpdateContext.jsx index a49bc18..7925c39 100644 --- a/src/components/Dashboard/context/AppUpdateContext.jsx +++ b/src/components/Dashboard/context/AppUpdateContext.jsx @@ -16,6 +16,7 @@ import { ElectronContext } from './ElectronContext' import NewAppUpdate from '../Management/AppUpdates/NewAppUpdate' import AppUpdateProgress from '../Management/AppUpdates/AppUpdateProgress' import SoftwareUpdateIcon from '../../Icons/SoftwareUpdateIcon' +import ExclamationOctogonIcon from '../../Icons/ExclamationOctagonIcon' const { Text } = Typography @@ -144,8 +145,11 @@ export const AppUpdateProvider = ({ children }) => { const [installingUpdate, setInstallingUpdate] = useState(null) const [updateProgress, setUpdateProgress] = useState(null) const [completedUpdate, setCompletedUpdate] = useState(null) - const [duplicateInstall, setDuplicateInstall] = useState(null) - const [duplicatePromptOpen, setDuplicatePromptOpen] = useState(false) + const [duplicateInstall, setDuplicateInstall] = useState({ + duplicatePath: 'C:\\Program Files\\Farm Control', + originalPath: 'C:\\Program Files\\Farm Control' + }) + const [duplicatePromptOpen, setDuplicatePromptOpen] = useState(true) const [removingDuplicate, setRemovingDuplicate] = useState(false) const [duplicateRemovalResult, setDuplicateRemovalResult] = useState(null) const runningCheckRef = useRef(null) @@ -459,7 +463,12 @@ export const AppUpdateProvider = ({ children }) => { + + Software Update + + } open={noUpdateOpen} okText='OK' style={{ maxWidth: 430 }} @@ -546,11 +555,16 @@ export const AppUpdateProvider = ({ children }) => { + + Duplicate Installation Found + + } open={Boolean(duplicatePromptOpen && duplicateInstall)} - style={{ maxWidth: 480 }} + width={!removingDuplicate && !duplicateRemovalResult ? 560 : 430} centered - closable={!removingDuplicate} + closable={false} maskClosable={false} onCancel={removingDuplicate ? undefined : closeDuplicatePrompt} footer={ @@ -599,10 +613,10 @@ export const AppUpdateProvider = ({ children }) => { Farm Control is now installed in your user applications folder, - but an older copy is still installed at: + but an older copy is still installed at:{' '} + {duplicateInstall?.duplicatePath}.{' '} + Do you want to remove the duplicate installation? - {duplicateInstall?.duplicatePath} - Do you want to remove the duplicate installation? )}