diff --git a/ui/src/ui/app-channels.ts b/ui/src/ui/app-channels.ts index eb05e83e81b..6101ade8817 100644 --- a/ui/src/ui/app-channels.ts +++ b/ui/src/ui/app-channels.ts @@ -25,12 +25,18 @@ export async function handleWhatsAppLogout(host: OpenClawApp) { } export async function handleChannelConfigSave(host: OpenClawApp) { + host.channelsError = null; await saveConfig(host); + const saveError = host.lastError; await loadConfig(host); await loadChannels(host, true); + if (saveError) { + host.channelsError = saveError; + } } export async function handleChannelConfigReload(host: OpenClawApp) { + host.channelsError = null; await loadConfig(host); await loadChannels(host, true); } diff --git a/ui/src/ui/views/channels.config.ts b/ui/src/ui/views/channels.config.ts index 3037568992c..421534bc976 100644 --- a/ui/src/ui/views/channels.config.ts +++ b/ui/src/ui/views/channels.config.ts @@ -1,4 +1,4 @@ -import { html } from "lit"; +import { html, nothing } from "lit"; import type { ConfigUiHints } from "../types.ts"; import { formatChannelExtraValue, resolveChannelConfigValue } from "./channel-config-extras.ts"; import type { ChannelsProps } from "./channels.types.ts"; @@ -118,6 +118,7 @@ export function renderChannelConfigForm(props: ChannelConfigFormProps) { export function renderChannelConfigSection(params: { channelId: string; props: ChannelsProps }) { const { channelId, props } = params; const disabled = props.configSaving || props.configSchemaLoading; + const hasError = Boolean(props.lastError); return html`