Prefill IM channel runtime config

This commit is contained in:
taohe
2026-06-11 17:02:02 +08:00
parent 4f56437030
commit dae7c7870e
6 changed files with 198 additions and 9 deletions
@@ -57,6 +57,10 @@ export function ChannelRuntimeConfigDialog({
() => provider?.credential_fields ?? [],
[provider?.credential_fields],
);
const credentialValues = useMemo<ChannelRuntimeConfigValues>(
() => provider?.credential_values ?? {},
[provider?.credential_values],
);
useEffect(() => {
if (!open || !provider) {
@@ -64,11 +68,14 @@ export function ChannelRuntimeConfigDialog({
return;
}
setValues(
Object.fromEntries(fields.map((field) => [field.name, ""])) as
| ChannelRuntimeConfigValues
| {},
Object.fromEntries(
fields.map((field) => [
field.name,
credentialValues[field.name] ?? "",
]),
) as ChannelRuntimeConfigValues,
);
}, [fields, open, provider]);
}, [credentialValues, fields, open, provider]);
if (!provider) {
return null;
+3 -2
View File
@@ -7,6 +7,8 @@ export interface ChannelCredentialField {
required: boolean;
}
export type ChannelRuntimeConfigValues = Record<string, string>;
export interface ChannelProvider {
provider: ChannelProviderId;
display_name: string;
@@ -17,6 +19,7 @@ export interface ChannelProvider {
auth_mode: string;
connection_status: string;
credential_fields: ChannelCredentialField[];
credential_values?: ChannelRuntimeConfigValues;
}
export interface ChannelProvidersResponse {
@@ -48,5 +51,3 @@ export interface ChannelConnectResponse {
instruction: string;
expires_in: number;
}
export type ChannelRuntimeConfigValues = Record<string, string>;