import React, { useCallback, useRef, useState } from 'react' import { View, Text, TextInput, FlatList, StyleSheet, TouchableOpacity, SafeAreaView, ActivityIndicator, } from 'react-native' import { useNavigation, useFocusEffect } from '@react-navigation/native' import type { NativeStackNavigationProp } from '@react-navigation/native-stack' import { ImSDK } from '@xuqm/rn-sdk' import type { ImGroup } from '@xuqm/rn-sdk' import type { RootStackParams } from '../../navigation/types' type Nav = NativeStackNavigationProp function parseMemberIds(memberIds: string): string[] { try { return JSON.parse(memberIds || '[]') } catch { return memberIds ? memberIds.split(',').filter(Boolean) : [] } } function GroupRow({ group, onPress }: { group: ImGroup; onPress(): void }) { const letter = (group.name || 'G').charAt(0).toUpperCase() return ( {letter} {group.name} {parseMemberIds(group.memberIds).length} 人 ) } export default function GroupListScreen() { const navigation = useNavigation