diff options
Diffstat (limited to 'gui/src/renderer')
| -rw-r--r-- | gui/src/renderer/components/LinuxSplitTunnelingSettings.tsx | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/gui/src/renderer/components/LinuxSplitTunnelingSettings.tsx b/gui/src/renderer/components/LinuxSplitTunnelingSettings.tsx index 58ef92d084..6a87a73a5a 100644 --- a/gui/src/renderer/components/LinuxSplitTunnelingSettings.tsx +++ b/gui/src/renderer/components/LinuxSplitTunnelingSettings.tsx @@ -107,6 +107,7 @@ export default function LinuxSplitTunnelingSettings() { const [applications, setApplications] = useState<ILinuxSplitTunnelingApplication[]>(); const [applicationListHeight, setApplicationListHeight] = useState<number>(); const [browsing, setBrowsing] = useState(false); + const [showBrowseFailureDialog, setShowBrowseFailureDialog] = useState(false); const applicationListRef = useRef() as React.RefObject<HTMLDivElement>; @@ -122,11 +123,13 @@ export default function LinuxSplitTunnelingSettings() { try { await launchExcludedApplication(file.filePaths[0]); } catch (e) { - // TODO: Show user that app couldn't be launched + setShowBrowseFailureDialog(true); } } }, []); + const hideBrowseFailureDialog = useCallback(() => setShowBrowseFailureDialog(false), []); + useEffect(() => { consumePromise(getSplitTunnelingApplications().then(setApplications)); }, []); @@ -200,6 +203,19 @@ export default function LinuxSplitTunnelingSettings() { </NavigationContainer> </StyledContainer> </Layout> + {showBrowseFailureDialog && ( + <ModalAlert + type={ModalAlertType.warning} + iconColor={colors.red} + message={messages.pgettext('split-tunneling-view', 'Failed to launch application')} + buttons={[ + <AppButton.BlueButton key="close" onClick={hideBrowseFailureDialog}> + {messages.gettext('Close')} + </AppButton.BlueButton>, + ]} + close={hideBrowseFailureDialog} + /> + )} </ModalContainer> </> ); |
