diff --git a/easytier-gui/src/composables/backend.ts b/easytier-gui/src/composables/backend.ts index 11cf55f0..31024b9c 100644 --- a/easytier-gui/src/composables/backend.ts +++ b/easytier-gui/src/composables/backend.ts @@ -1,5 +1,5 @@ import { invoke } from '@tauri-apps/api/core' -import { Api, type NetworkTypes } from 'easytier-frontend-lib' +import { Api, NetworkTypes } from 'easytier-frontend-lib' import { GetNetworkMetasResponse } from 'node_modules/easytier-frontend-lib/dist/modules/api' @@ -17,15 +17,16 @@ interface ServiceOptions { export type ServiceStatus = "Running" | "Stopped" | "NotInstalled" export async function parseNetworkConfig(cfg: NetworkConfig) { - return invoke('parse_network_config', { cfg }) + return invoke('parse_network_config', { cfg: NetworkTypes.toBackendNetworkConfig(cfg) }) } export async function generateNetworkConfig(tomlConfig: string) { - return invoke('generate_network_config', { tomlConfig }) + const config = await invoke('generate_network_config', { tomlConfig }) + return NetworkTypes.normalizeNetworkConfig(config) } export async function runNetworkInstance(cfg: NetworkConfig, save: boolean) { - return invoke('run_network_instance', { cfg, save }) + return invoke('run_network_instance', { cfg: NetworkTypes.toBackendNetworkConfig(cfg), save }) } export async function collectNetworkInfo(instanceId: string) { @@ -57,20 +58,24 @@ export async function updateNetworkConfigState(instanceId: string, disabled: boo } export async function saveNetworkConfig(cfg: NetworkConfig) { - return await invoke('save_network_config', { cfg }) + return await invoke('save_network_config', { cfg: NetworkTypes.toBackendNetworkConfig(cfg) }) } export async function validateConfig(cfg: NetworkConfig) { - return await invoke('validate_config', { cfg }) + return await invoke('validate_config', { cfg: NetworkTypes.toBackendNetworkConfig(cfg) }) } export async function getConfig(instanceId: string) { - return await invoke('get_config', { instanceId }) + const config = await invoke('get_config', { instanceId }) + return NetworkTypes.normalizeNetworkConfig(config) } export async function sendConfigs(enabledNetworks: string[]) { - let networkList: NetworkConfig[] = JSON.parse(localStorage.getItem('networkList') || '[]'); - return await invoke('load_configs', { configs: networkList, enabledNetworks }) + const networkList: NetworkConfig[] = JSON.parse(localStorage.getItem('networkList') || '[]'); + return await invoke('load_configs', { + configs: networkList.map((config) => NetworkTypes.toBackendNetworkConfig(NetworkTypes.normalizeNetworkConfig(config))), + enabledNetworks + }) } export async function getNetworkMetas(instanceIds: string[]) { diff --git a/easytier-gui/src/composables/event.ts b/easytier-gui/src/composables/event.ts index e4c45655..7d1df1d9 100644 --- a/easytier-gui/src/composables/event.ts +++ b/easytier-gui/src/composables/event.ts @@ -14,7 +14,7 @@ const EVENTS = Object.freeze({ function onSaveConfigs(event: Event) { console.log(`Received event '${EVENTS.SAVE_CONFIGS}': ${event.payload}`); - localStorage.setItem('networkList', JSON.stringify(event.payload)); + localStorage.setItem('networkList', JSON.stringify(event.payload.map((config) => NetworkTypes.normalizeNetworkConfig(config)))); } async function onPreRunNetworkInstance(event: Event) { diff --git a/easytier-web/frontend-lib/src/components/Config.vue b/easytier-web/frontend-lib/src/components/Config.vue index 8b13a30c..1e3f4fcb 100644 --- a/easytier-web/frontend-lib/src/components/Config.vue +++ b/easytier-web/frontend-lib/src/components/Config.vue @@ -1,17 +1,16 @@