Refactor AI chat: streaming, tool calls, UI polish
All checks were successful
CI / check (pull_request) Successful in 3m25s
All checks were successful
CI / check (pull_request) Successful in 3m25s
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
import type { DingTalkConfigFormValues } from './integration-config-form';
|
||||
|
||||
export interface DingTalkSavedConfig {
|
||||
agentId: string;
|
||||
corpId: string;
|
||||
}
|
||||
|
||||
interface DingTalkConfigCache {
|
||||
loaded: boolean;
|
||||
config: DingTalkSavedConfig | null;
|
||||
verified: boolean | null;
|
||||
formValues: Partial<DingTalkConfigFormValues>;
|
||||
dirty: boolean;
|
||||
}
|
||||
|
||||
const cache: DingTalkConfigCache = {
|
||||
loaded: false,
|
||||
config: null,
|
||||
verified: null,
|
||||
formValues: {},
|
||||
dirty: false,
|
||||
};
|
||||
|
||||
export function readDingTalkConfigCache(): DingTalkConfigCache {
|
||||
return {
|
||||
...cache,
|
||||
config: cache.config ? { ...cache.config } : null,
|
||||
formValues: { ...cache.formValues },
|
||||
};
|
||||
}
|
||||
|
||||
export function cacheDingTalkDraft(values: Partial<DingTalkConfigFormValues>): void {
|
||||
cache.formValues = { ...values };
|
||||
cache.dirty = true;
|
||||
}
|
||||
|
||||
export function cacheDingTalkServerSnapshot(
|
||||
config: DingTalkSavedConfig | null,
|
||||
verified: boolean | null,
|
||||
): void {
|
||||
cache.loaded = true;
|
||||
cache.config = config ? { ...config } : null;
|
||||
cache.verified = verified;
|
||||
if (!cache.dirty) {
|
||||
cache.formValues = config ? { ...config, appSecret: undefined } : {};
|
||||
}
|
||||
}
|
||||
|
||||
export function commitDingTalkConfig(config: DingTalkSavedConfig): void {
|
||||
cache.loaded = true;
|
||||
cache.config = { ...config };
|
||||
cache.formValues = { ...config, appSecret: undefined };
|
||||
cache.dirty = false;
|
||||
}
|
||||
|
||||
export function resetDingTalkConfigCache(): void {
|
||||
cache.loaded = false;
|
||||
cache.config = null;
|
||||
cache.verified = null;
|
||||
cache.formValues = {};
|
||||
cache.dirty = false;
|
||||
}
|
||||
Reference in New Issue
Block a user