diff --git a/src/main/utils/ipc.ts b/src/main/utils/ipc.ts index fff75ec..53b2750 100644 --- a/src/main/utils/ipc.ts +++ b/src/main/utils/ipc.ts @@ -89,6 +89,7 @@ import { getImageDataURL } from './image' import { startMonitor } from '../resolve/trafficMonitor' import { closeFloatingWindow, showContextMenu, showFloatingWindow } from '../resolve/floatingWindow' import i18next from 'i18next' +import { addProfileUpdater } from '../core/profileUpdater' function ipcErrorWrapper( // eslint-disable-next-line @typescript-eslint/no-explicit-any fn: (...args: any[]) => Promise // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -163,6 +164,7 @@ export function registerIpcMainHandlers(): void { ipcMain.handle('changeCurrentProfile', (_e, id) => ipcErrorWrapper(changeCurrentProfile)(id)) ipcMain.handle('addProfileItem', (_e, item) => ipcErrorWrapper(addProfileItem)(item)) ipcMain.handle('removeProfileItem', (_e, id) => ipcErrorWrapper(removeProfileItem)(id)) + ipcMain.handle('addProfileUpdater', (_e, item) => ipcErrorWrapper(addProfileUpdater)(item)) ipcMain.handle('getOverrideConfig', (_e, force) => ipcErrorWrapper(getOverrideConfig)(force)) ipcMain.handle('setOverrideConfig', (_e, config) => ipcErrorWrapper(setOverrideConfig)(config)) ipcMain.handle('getOverrideItem', (_e, id) => ipcErrorWrapper(getOverrideItem)(id)) diff --git a/src/renderer/src/components/profiles/edit-info-modal.tsx b/src/renderer/src/components/profiles/edit-info-modal.tsx index f3050a1..650d0e5 100644 --- a/src/renderer/src/components/profiles/edit-info-modal.tsx +++ b/src/renderer/src/components/profiles/edit-info-modal.tsx @@ -16,7 +16,7 @@ import { import React, { useState } from 'react' import SettingItem from '../base/base-setting-item' import { useOverrideConfig } from '@renderer/hooks/use-override-config' -import { restartCore } from '@renderer/utils/ipc' +import { restartCore, addProfileUpdater } from '@renderer/utils/ipc' import { MdDeleteForever } from 'react-icons/md' import { FaPlus } from 'react-icons/fa6' import { useTranslation } from 'react-i18next' @@ -36,13 +36,15 @@ const EditInfoModal: React.FC = (props) => { const onSave = async (): Promise => { try { - await updateProfileItem({ + const updatedItem = { ...values, override: values.override?.filter( (i) => overrideItems.find((t) => t.id === i) && !overrideItems.find((t) => t.id === i)?.global ) - }) + }; + await updateProfileItem(updatedItem) + await addProfileUpdater(updatedItem) await restartCore() onClose() } catch (e) { diff --git a/src/renderer/src/utils/ipc.ts b/src/renderer/src/utils/ipc.ts index 1cb5899..4dc35b1 100644 --- a/src/renderer/src/utils/ipc.ts +++ b/src/renderer/src/utils/ipc.ts @@ -147,6 +147,10 @@ export async function updateProfileItem(item: IProfileItem): Promise { return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('updateProfileItem', item)) } +export async function addProfileUpdater(item: IProfileItem): Promise { + return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('addProfileUpdater', item)) +} + export async function getProfileStr(id: string): Promise { return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('getProfileStr', id)) }