11'use client' ;
22
3+ import type { AgentGroupDetail , AgentGroupMember } from '@lobechat/types' ;
34import { Text } from '@lobehub/ui' ;
45import { memo , useEffect } from 'react' ;
56import { useParams } from 'react-router-dom' ;
@@ -8,6 +9,7 @@ import useSWR from 'swr';
89import PageTitle from '@/components/PageTitle' ;
910import { lambdaClient } from '@/libs/trpc/client' ;
1011import { useAgentStore } from '@/store/agent' ;
12+ import { useAgentGroupStore } from '@/store/agentGroup' ;
1113
1214const Title = memo ( ( ) => {
1315 const { id } = useParams < { id : string } > ( ) ;
@@ -31,6 +33,53 @@ const Title = memo(() => {
3133 }
3234 } , [ data ?. agentId , data ?. agentMeta , dispatchAgentMap ] ) ;
3335
36+ // Set group meta to agentGroupStore for group avatar display
37+ useEffect ( ( ) => {
38+ if ( data ?. groupId && data . groupMeta ) {
39+ const members = data . groupMeta . members || [ ] ;
40+
41+ // Sync each member to agentStore for subagent avatar display
42+ for ( const member of members ) {
43+ dispatchAgentMap ( member . id , {
44+ avatar : member . avatar ?? undefined ,
45+ backgroundColor : member . backgroundColor ?? undefined ,
46+ title : member . title ?? undefined ,
47+ } ) ;
48+ }
49+
50+ // Build AgentGroupDetail for groupMap
51+ const groupDetail : AgentGroupDetail = {
52+ agents : members . map ( ( m ) => ( {
53+ avatar : m . avatar ,
54+ backgroundColor : m . backgroundColor ,
55+ id : m . id ,
56+ isSupervisor : false ,
57+ title : m . title ,
58+ } ) ) as AgentGroupMember [ ] ,
59+ avatar : data . groupMeta . avatar ,
60+ backgroundColor : data . groupMeta . backgroundColor ,
61+ createdAt : data . groupMeta . createdAt ? new Date ( data . groupMeta . createdAt ) : new Date ( ) ,
62+ id : data . groupId ,
63+ title : data . groupMeta . title ,
64+ updatedAt : data . groupMeta . updatedAt ? new Date ( data . groupMeta . updatedAt ) : new Date ( ) ,
65+ userId : data . groupMeta . userId || '' ,
66+ } ;
67+
68+ // Set activeGroupId and update groupMap
69+ useAgentGroupStore . setState (
70+ ( state ) => ( {
71+ activeGroupId : data . groupId ! ,
72+ groupMap : {
73+ ...state . groupMap ,
74+ [ data . groupId ! ] : groupDetail ,
75+ } ,
76+ } ) ,
77+ false ,
78+ 'syncSharedGroupMeta' ,
79+ ) ;
80+ }
81+ } , [ data ?. groupId , data ?. groupMeta , dispatchAgentMap ] ) ;
82+
3483 return (
3584 data ?. title && (
3685 < >
0 commit comments