Skip to content

Commit 454b6df

Browse files
authored
✨ Add sync message feedback in ToolConfigModa
✨ Add sync message feedback in ToolConfigModa
2 parents 4d79d44 + baf9bdb commit 454b6df

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

frontend/app/[locale]/agents/components/agentConfig/tool/ToolConfigModal.tsx

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,8 @@ export default function ToolConfigModal({
579579
// Reset when currentAgentId changes (i.e., when switching agents)
580580
const hasTriggeredInitialRefetch = useRef(false);
581581
const prevAgentIdRef = useRef<number | undefined>(undefined);
582+
// Track if sync message has been shown when KB selector opens
583+
const hasShownSyncMessageRef = useRef(false);
582584

583585
// Reset refetch flag when switching agents and invalidate cache to force fresh fetch
584586
useEffect(() => {
@@ -624,6 +626,43 @@ export default function ToolConfigModal({
624626
difyConfig,
625627
]);
626628

629+
// Show sync message when knowledge base selector modal opens
630+
// This provides immediate feedback on sync status to the user
631+
useEffect(() => {
632+
// Only trigger when KB selector opens and tool requires KB selection
633+
if (kbSelectorVisible && toolRequiresKbSelection && !hasShownSyncMessageRef.current) {
634+
// Mark as shown to avoid duplicate messages
635+
hasShownSyncMessageRef.current = true;
636+
637+
// Trigger sync and show message based on result
638+
refetchKnowledgeBases()
639+
.then((result) => {
640+
if (result.isError || result.error) {
641+
log.error("Failed to sync knowledge bases:", result.error);
642+
// Clear knowledge base list on sync failure
643+
clearKnowledgeBases();
644+
message.error(t("knowledgeBase.message.syncError"));
645+
} else {
646+
// Show success message after sync completes
647+
message.success(t("knowledgeBase.message.syncSuccess"));
648+
}
649+
})
650+
.catch((error) => {
651+
log.error("Failed to sync knowledge bases:", error);
652+
// Clear knowledge base list on sync failure
653+
clearKnowledgeBases();
654+
message.error(t("knowledgeBase.message.syncError"));
655+
});
656+
}
657+
}, [kbSelectorVisible, toolRequiresKbSelection, refetchKnowledgeBases, clearKnowledgeBases, t]);
658+
659+
// Reset sync message flag when KB selector closes
660+
useEffect(() => {
661+
if (!kbSelectorVisible) {
662+
hasShownSyncMessageRef.current = false;
663+
}
664+
}, [kbSelectorVisible]);
665+
627666
// Watch all form values and sync to currentParams
628667
const formValues = Form.useWatch([], form);
629668
useEffect(() => {

0 commit comments

Comments
 (0)