@@ -59,6 +59,7 @@ export default function PlayerGroups({ groups, searchQuery }: { groups: GroupDat
5959
6060
6161 const loadPlayerGroups = async ( player : Player ) => {
62+ if ( ! player . citizenid ) return
6263 setLoading ( true )
6364 try {
6465 const cid = player . citizenid
@@ -90,11 +91,16 @@ export default function PlayerGroups({ groups, searchQuery }: { groups: GroupDat
9091 const handleSave = async ( ) => {
9192 if ( ! activePlayer ?. citizenid ) return
9293 setLoading ( true )
93- const response : any = await sendNui ( 'mri_Qadmin:server:UpdateCharacterGroups' , { citizenid : activePlayer . citizenid , groups : Array . from ( selectedGroups ) } )
94- if ( response ?. status === 'ok' ) {
95- await loadPlayerGroups ( activePlayer )
94+ try {
95+ const response : any = await sendNui ( 'mri_Qadmin:server:UpdateCharacterGroups' , { citizenid : activePlayer . citizenid , groups : Array . from ( selectedGroups ) } )
96+ if ( response ?. status === 'ok' ) {
97+ await loadPlayerGroups ( activePlayer )
98+ }
99+ } catch ( e ) {
100+ console . error ( 'UpdateCharacterGroups failed' , e )
101+ } finally {
102+ setLoading ( false )
96103 }
97- setLoading ( false )
98104 }
99105
100106 return (
@@ -109,9 +115,9 @@ export default function PlayerGroups({ groups, searchQuery }: { groups: GroupDat
109115 </ div >
110116 ) : (
111117 < div className = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4" >
112- { playersList . map ( ( p ) => (
113- < div
114- key = { p . citizenid || p . id }
118+ { playersList . map ( ( p , i ) => (
119+ < div
120+ key = { p . citizenid || p . id || `player- ${ i } ` }
115121 onClick = { ( ) => loadPlayerGroups ( p ) }
116122 className = "bg-card border border-border/50 rounded-xl p-4 flex items-center gap-4 cursor-pointer hover:border-primary/50 hover:bg-primary/5 transition-all group shadow-sm hover:shadow-md"
117123 >
0 commit comments