fix alert blocking process

This commit is contained in:
pompurin404 2024-08-17 22:33:26 +08:00
parent 5b7958f2c7
commit 0ee6e144ed
No known key found for this signature in database
4 changed files with 25 additions and 7 deletions

View File

@ -1,4 +1,4 @@
import { app, ipcMain, safeStorage } from 'electron' import { app, dialog, ipcMain, safeStorage } from 'electron'
import { import {
mihomoChangeProxy, mihomoChangeProxy,
mihomoCloseAllConnections, mihomoCloseAllConnections,
@ -141,5 +141,8 @@ export function registerIpcMainHandlers(): void {
ipcMain.handle('webdavBackup', ipcErrorWrapper(webdavBackup)) ipcMain.handle('webdavBackup', ipcErrorWrapper(webdavBackup))
ipcMain.handle('webdavRestore', (_e, filename) => ipcErrorWrapper(webdavRestore)(filename)) ipcMain.handle('webdavRestore', (_e, filename) => ipcErrorWrapper(webdavRestore)(filename))
ipcMain.handle('listWebdavBackups', ipcErrorWrapper(listWebdavBackups)) ipcMain.handle('listWebdavBackups', ipcErrorWrapper(listWebdavBackups))
ipcMain.handle('alert', (_e, msg) => {
dialog.showErrorBox('Mihomo Party', msg)
})
ipcMain.handle('quitApp', () => app.quit()) ipcMain.handle('quitApp', () => app.quit())
} }

View File

@ -46,9 +46,13 @@ const EditFileModal: React.FC<Props> = (props) => {
<Button <Button
color="primary" color="primary"
onPress={async () => { onPress={async () => {
await setOverride(id, language === 'javascript' ? 'js' : 'yaml', currData) try {
await restartCore() await setOverride(id, language === 'javascript' ? 'js' : 'yaml', currData)
onClose() await restartCore()
onClose()
} catch (e) {
alert(e)
}
}} }}
> >

View File

@ -27,9 +27,13 @@ const EditInfoModal: React.FC<Props> = (props) => {
const [values, setValues] = useState(item) const [values, setValues] = useState(item)
const onSave = async (): Promise<void> => { const onSave = async (): Promise<void> => {
await updateProfileItem(values) try {
await restartCore() await updateProfileItem(values)
onClose() await restartCore()
onClose()
} catch (e) {
alert(e)
}
} }
return ( return (

View File

@ -268,3 +268,10 @@ export async function listWebdavBackups(): Promise<string[]> {
export async function quitApp(): Promise<void> { export async function quitApp(): Promise<void> {
return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('quitApp')) return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('quitApp'))
} }
async function alert<T>(msg: T): Promise<void> {
const msgStr = typeof msg === 'string' ? msg : JSON.stringify(msg)
return await window.electron.ipcRenderer.invoke('alert', msgStr)
}
window.alert = alert