@adminide-stack/yantra-mobile 12.0.108-alpha.0 → 12.0.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"NewGroupScreen.js","sources":["../../../src/features/messaging/NewGroupScreen.tsx"],"sourcesContent":["/**\n * \"New group\", WhatsApp-style: name the group and pick members from your Yantra contacts, then\n * create. The creator becomes the admin (server-side); on success the caller opens the new chat.\n */\nimport * as React from 'react';\nimport { ActivityIndicator, FlatList, Pressable, StyleSheet, Text, TextInput, View } from 'react-native';\nimport { SafeAreaView } from 'react-native-safe-area-context';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { Avatar, EmptyState, InlineBanner, type ChatTheme } from './ChatComponents';\nimport { TapRow } from './TapRow';\n\nexport interface GroupCandidate {\n userId: string;\n displayName: string;\n imageUri?: string | null;\n}\n\n/** WhatsApp caps a group at 1024 members; the picker enforces the same so create can't fail late. */\nexport const GROUP_MEMBER_LIMIT = 1024;\n\nexport function NewGroupScreen({\n candidates,\n theme,\n busy,\n mode = 'create',\n onCancel,\n onCreate,\n}: {\n candidates: GroupCandidate[];\n theme: ChatTheme;\n busy?: boolean;\n /** 'create' names a new group; 'add' adds members to an existing one (no name step). */\n mode?: 'create' | 'add';\n onCancel: () => void;\n /** Create the group (or add members); resolves a channel id / truthy, or null on failure. */\n onCreate: (name: string, memberIds: string[]) => Promise<string | null>;\n}) {\n const adding = mode === 'add';\n const [name, setName] = React.useState('');\n const [picked, setPicked] = React.useState<string[]>([]);\n const [query, setQuery] = React.useState('');\n const [creating, setCreating] = React.useState(false);\n const [error, setError] = React.useState<string | null>(null);\n\n const rows = React.useMemo(() => {\n const q = query.trim().toLowerCase();\n const seen = new Set<string>();\n return candidates.filter((c) => {\n if (!c.userId || seen.has(c.userId)) return false;\n seen.add(c.userId);\n return !q || c.displayName.toLowerCase().includes(q);\n });\n }, [candidates, query]);\n\n const toggle = (id: string) => {\n setError(null);\n setPicked((prev) => {\n if (prev.includes(id)) return prev.filter((p) => p !== id);\n if (prev.length >= GROUP_MEMBER_LIMIT) {\n setError(`A group can have up to ${GROUP_MEMBER_LIMIT} members.`);\n return prev;\n }\n return [...prev, id];\n });\n };\n\n const canCreate = (adding || name.trim().length > 0) && picked.length > 0 && !creating && !busy;\n\n const create = async () => {\n if (!canCreate) return;\n setCreating(true);\n setError(null);\n try {\n const id = await onCreate(name.trim(), picked);\n if (!id) setError(adding ? 'Could not add members. Please try again.' : 'Could not create the group. Please try again.');\n } finally {\n setCreating(false);\n }\n };\n\n return (\n <View style={[styles.fill, { backgroundColor: theme.bg }]} testID=\"chat-new-group\">\n <SafeAreaView edges={['top']} style={{ backgroundColor: theme.headerBg }}>\n <View style={[styles.header, { borderBottomColor: theme.border, flexDirection: 'row' }]}>\n <Pressable onPress={onCancel} hitSlop={10} accessibilityRole=\"button\" style={styles.headerSide}>\n <Text style={{ color: theme.accent, fontSize: 17 }}>Cancel</Text>\n </Pressable>\n <Text style={[styles.title, { color: theme.text }]}>{adding ? 'Add members' : 'New group'}</Text>\n <Pressable\n onPress={create}\n disabled={!canCreate}\n hitSlop={10}\n accessibilityRole=\"button\"\n accessibilityLabel={adding ? 'Add members' : 'Create group'}\n style={[styles.headerSide, styles.headerRight]}\n testID=\"chat-new-group-create\"\n >\n {creating ? (\n <ActivityIndicator size=\"small\" color={theme.accent} />\n ) : (\n <Text style={{ color: canCreate ? theme.accent : theme.textMuted, fontSize: 17, fontWeight: '600' }}>\n {adding ? 'Add' : 'Create'}\n </Text>\n )}\n </Pressable>\n </View>\n </SafeAreaView>\n <InlineBanner message={error} theme={theme} onDismiss={() => setError(null)} />\n {adding ? null : (\n <View style={[styles.nameRow, { backgroundColor: theme.surface, flexDirection: 'row' }]}>\n <MaterialCommunityIcons name=\"account-group\" size={22} color={theme.textMuted} />\n <TextInput\n value={name}\n onChangeText={(t) => setName(t.slice(0, 100))}\n placeholder=\"Group name\"\n placeholderTextColor={theme.textMuted}\n style={[styles.nameInput, { color: theme.text }]}\n testID=\"chat-new-group-name\"\n />\n </View>\n )}\n <View style={[styles.search, { backgroundColor: theme.surface, flexDirection: 'row' }]}>\n <MaterialCommunityIcons name=\"magnify\" size={20} color={theme.textMuted} />\n <TextInput\n value={query}\n onChangeText={setQuery}\n placeholder=\"Search contacts\"\n placeholderTextColor={theme.textMuted}\n style={[styles.searchInput, { color: theme.text }]}\n testID=\"chat-new-group-search\"\n />\n </View>\n <Text style={[styles.count, { color: theme.textMuted }]}>\n {picked.length ? `${picked.length} selected` : 'Add members'}\n </Text>\n <FlatList\n data={rows}\n keyExtractor={(c) => c.userId}\n keyboardShouldPersistTaps=\"handled\"\n ListEmptyComponent={\n <EmptyState\n icon=\"account-group-outline\"\n title=\"No contacts yet\"\n detail=\"People on Yantra Chat appear here. Invite friends from a new chat.\"\n theme={theme}\n />\n }\n renderItem={({ item }) => {\n const on = picked.includes(item.userId);\n return (\n <TapRow\n onPress={() => toggle(item.userId)}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: on }}\n accessibilityLabel={item.displayName}\n pressedColor={theme.surface}\n testID={`chat-new-group-${item.userId}`}\n >\n <View style={[styles.row, { flexDirection: 'row' }]}>\n <View\n style={[\n styles.check,\n on\n ? { backgroundColor: theme.accent, borderColor: theme.accent }\n : { borderColor: theme.textMuted },\n ]}\n >\n {on ? <MaterialCommunityIcons name=\"check\" size={16} color={theme.onAccent} /> : null}\n </View>\n <Avatar name={item.displayName} uri={item.imageUri} theme={theme} size={44} variant=\"initials\" />\n <Text numberOfLines={1} style={[styles.rowTitle, { color: theme.text }]}>\n {item.displayName}\n </Text>\n </View>\n </TapRow>\n );\n }}\n />\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n fill: { flex: 1 },\n header: {\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 12,\n minHeight: 52,\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n headerSide: { width: 72 },\n headerRight: { alignItems: 'flex-end' },\n title: { fontSize: 17, fontWeight: '600' },\n nameRow: { alignItems: 'center', margin: 12, marginBottom: 6, paddingHorizontal: 12, height: 48, borderRadius: 10 },\n nameInput: { flex: 1, marginLeft: 10, fontSize: 17, paddingVertical: 0 },\n search: {\n alignItems: 'center',\n marginHorizontal: 12,\n marginBottom: 4,\n borderRadius: 10,\n paddingHorizontal: 10,\n height: 36,\n },\n searchInput: { flex: 1, marginLeft: 8, fontSize: 16, paddingVertical: 0 },\n count: { fontSize: 12, fontWeight: '600', marginHorizontal: 18, marginTop: 8, marginBottom: 2, textTransform: 'uppercase' },\n row: { alignItems: 'center', paddingHorizontal: 16, paddingVertical: 8 },\n check: {\n width: 22,\n height: 22,\n borderRadius: 11,\n borderWidth: 1.5,\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: 14,\n },\n rowTitle: { flex: 1, fontSize: 17, marginLeft: 12 },\n});\n"],"names":[],"mappings":"wXAiBO,MAAM,kBAAqB,GAAA;AAC3B,SAAS,cAAe,CAAA;AAAA,EAC7B,UAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAO,GAAA,QAAA;AAAA,EACP,QAAA;AAAA,EACA;AACF,CASG,EAAA;AACD,EAAA,MAAM,SAAS,IAAS,KAAA,KAAA;AACxB,EAAA,MAAM,CAAC,IAAM,EAAA,OAAO,CAAI,GAAA,KAAA,CAAM,SAAS,EAAE,CAAA;AACzC,EAAA,MAAM,CAAC,MAAQ,EAAA,SAAS,IAAI,KAAM,CAAA,QAAA,CAAmB,EAAE,CAAA;AACvD,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,KAAA,CAAM,SAAS,EAAE,CAAA;AAC3C,EAAA,MAAM,CAAC,QAAU,EAAA,WAAW,CAAI,GAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AACpD,EAAA,MAAM,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,KAAA,CAAM,SAAwB,IAAI,CAAA;AAC5D,EAAM,MAAA,IAAA,GAAO,KAAM,CAAA,OAAA,CAAQ,MAAM;AAC/B,IAAA,MAAM,CAAI,GAAA,KAAA,CAAM,IAAK,EAAA,CAAE,WAAY,EAAA;AACnC,IAAM,MAAA,IAAA,uBAAW,GAAY,EAAA;AAC7B,IAAO,OAAA,UAAA,CAAW,OAAO,CAAK,CAAA,KAAA;AAC5B,MAAI,IAAA,CAAC,EAAE,MAAU,IAAA,IAAA,CAAK,IAAI,CAAE,CAAA,MAAM,GAAU,OAAA,KAAA;AAC5C,MAAK,IAAA,CAAA,GAAA,CAAI,EAAE,MAAM,CAAA;AACjB,MAAA,OAAO,CAAC,CAAK,IAAA,CAAA,CAAE,YAAY,WAAY,EAAA,CAAE,SAAS,CAAC,CAAA;AAAA,KACpD,CAAA;AAAA,GACA,EAAA,CAAC,UAAY,EAAA,KAAK,CAAC,CAAA;AACtB,EAAM,MAAA,MAAA,GAAS,CAAC,EAAe,KAAA;AAC7B,IAAA,QAAA,CAAS,IAAI,CAAA;AACb,IAAA,SAAA,CAAU,CAAQ,IAAA,KAAA;AAChB,MAAI,IAAA,IAAA,CAAK,SAAS,EAAE,CAAA,SAAU,IAAK,CAAA,MAAA,CAAO,CAAK,CAAA,KAAA,CAAA,KAAM,EAAE,CAAA;AACvD,MAAI,IAAA,IAAA,CAAK,UAAU,kBAAoB,EAAA;AACrC,QAAS,QAAA,CAAA,CAAA,uBAAA,EAA0B,kBAAkB,CAAW,SAAA,CAAA,CAAA;AAChE,QAAO,OAAA,IAAA;AAAA;AAET,MAAO,OAAA,CAAC,GAAG,IAAA,EAAM,EAAE,CAAA;AAAA,KACpB,CAAA;AAAA,GACH;AACA,EAAA,MAAM,SAAa,GAAA,CAAA,MAAA,IAAU,IAAK,CAAA,IAAA,EAAO,CAAA,MAAA,GAAS,CAAM,KAAA,MAAA,CAAO,MAAS,GAAA,CAAA,IAAK,CAAC,QAAA,IAAY,CAAC,IAAA;AAC3F,EAAA,MAAM,SAAS,YAAY;AACzB,IAAA,IAAI,CAAC,SAAW,EAAA;AAChB,IAAA,WAAA,CAAY,IAAI,CAAA;AAChB,IAAA,QAAA,CAAS,IAAI,CAAA;AACb,IAAI,IAAA;AACF,MAAA,MAAM,KAAK,MAAM,QAAA,CAAS,IAAK,CAAA,IAAA,IAAQ,MAAM,CAAA;AAC7C,MAAA,IAAI,CAAC,EAAA,EAAa,QAAA,CAAA,MAAA,GAAS,6CAA6C,+CAA+C,CAAA;AAAA,KACvH,SAAA;AACA,MAAA,WAAA,CAAY,KAAK,CAAA;AAAA;AACnB,GACF;AACA,EAAA,uBAAQ,IAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA,CAAC,OAAO,IAAM,EAAA;AAAA,IAChC,iBAAiB,KAAM,CAAA;AAAA,GACxB,CAAG,EAAA,MAAA,EAAO,gBACD,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,KAAA,EAAO,CAAC,KAAK,GAAG,KAAO,EAAA;AAAA,MAC3C,iBAAiB,KAAM,CAAA;AAAA,OAEb,QAAC,kBAAA,IAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA,CAAC,OAAO,MAAQ,EAAA;AAAA,MACrC,mBAAmB,KAAM,CAAA,MAAA;AAAA,MACzB,aAAe,EAAA;AAAA,KAChB,CACa,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,SAAU,EAAA,EAAA,OAAA,EAAS,QAAU,EAAA,OAAA,EAAS,EAAI,EAAA,iBAAA,EAAkB,QAAS,EAAA,KAAA,EAAO,MAAO,CAAA,UAAA,EAChF,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA;AAAA,QACzB,OAAO,KAAM,CAAA,MAAA;AAAA,QACb,QAAU,EAAA;AAAA,OACZ,EAAG,oBAAM,CACC,EAAA,CAAA;AAAA,sBACC,GAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA,CAAC,OAAO,KAAO,EAAA;AAAA,QACtC,OAAO,KAAM,CAAA;AAAA,OACd,CAAA,EAAI,QAAS,EAAA,MAAA,GAAA,aAAA,GAAgB,WAAY,EAAA,CAAA;AAAA,sBAC7B,GAAA,CAAA,SAAA,EAAA,EAAU,OAAS,EAAA,MAAA,EAAQ,UAAU,CAAC,SAAA,EAAW,OAAS,EAAA,EAAA,EAAI,mBAAkB,QAAS,EAAA,kBAAA,EAAoB,MAAS,GAAA,aAAA,GAAgB,gBAAgB,KAAO,EAAA,CAAC,MAAO,CAAA,UAAA,EAAY,OAAO,WAAW,CAAA,EAAG,MAAO,EAAA,uBAAA,EACzM,qCAAY,GAAA,CAAA,iBAAA,EAAA,EAAkB,IAAK,EAAA,OAAA,EAAQ,OAAO,KAAM,CAAA,MAAA,EAAQ,CAAK,mBAAA,GAAA,CAAC,QAAK,KAAO,EAAA;AAAA,QAC/F,KAAO,EAAA,SAAA,GAAY,KAAM,CAAA,MAAA,GAAS,KAAM,CAAA,SAAA;AAAA,QACxC,QAAU,EAAA,EAAA;AAAA,QACV,UAAY,EAAA;AAAA,OAES,EAAA,QAAA,EAAA,MAAA,GAAS,KAAQ,GAAA,QAAA,EACtB,CACR,EAAA;AAAA,KAAA,EACJ,CACJ,EAAA,CAAA;AAAA,oBACA,GAAA,CAAC,gBAAa,OAAS,EAAA,KAAA,EAAO,OAAc,SAAW,EAAA,MAAM,QAAS,CAAA,IAAI,CAAG,EAAA,CAAA;AAAA,IAC5E,SAAS,IAAO,mBAAA,IAAA,CAAC,QAAK,KAAO,EAAA,CAAC,OAAO,OAAS,EAAA;AAAA,MACrD,iBAAiB,KAAM,CAAA,OAAA;AAAA,MACvB,aAAe,EAAA;AAAA,KAChB,CACe,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,0BAAuB,IAAK,EAAA,eAAA,EAAgB,MAAM,EAAI,EAAA,KAAA,EAAO,MAAM,SAAW,EAAA,CAAA;AAAA,sBAC/E,GAAA,CAAC,aAAU,KAAO,EAAA,IAAA,EAAM,cAAc,CAAK,CAAA,KAAA,OAAA,CAAQ,EAAE,KAAM,CAAA,CAAA,EAAG,GAAG,CAAC,CAAA,EAAG,aAAY,YAAa,EAAA,oBAAA,EAAsB,MAAM,SAAW,EAAA,KAAA,EAAO,CAAC,MAAA,CAAO,SAAW,EAAA;AAAA,QAC3K,OAAO,KAAM,CAAA;AAAA,OACd,CAAG,EAAA,MAAA,EAAO,qBAAsB,EAAA;AAAA,KACvB,EAAA,CAAA;AAAA,oBACH,IAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA,CAAC,OAAO,MAAQ,EAAA;AAAA,MACnC,iBAAiB,KAAM,CAAA,OAAA;AAAA,MACvB,aAAe,EAAA;AAAA,KAChB,CACW,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,0BAAuB,IAAK,EAAA,SAAA,EAAU,MAAM,EAAI,EAAA,KAAA,EAAO,MAAM,SAAW,EAAA,CAAA;AAAA,sBACxE,GAAA,CAAA,SAAA,EAAA,EAAU,KAAO,EAAA,KAAA,EAAO,cAAc,QAAU,EAAA,WAAA,EAAY,iBAAkB,EAAA,oBAAA,EAAsB,KAAM,CAAA,SAAA,EAAW,KAAO,EAAA,CAAC,OAAO,WAAa,EAAA;AAAA,QAC1J,OAAO,KAAM,CAAA;AAAA,OACd,CAAG,EAAA,MAAA,EAAO,uBAAwB,EAAA;AAAA,KAC7B,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,IAAA,EAAA,EAAK,KAAO,EAAA,CAAC,OAAO,KAAO,EAAA;AAAA,MAClC,OAAO,KAAM,CAAA;AAAA,KACd,GACY,QAAO,EAAA,MAAA,CAAA,MAAA,GAAS,GAAG,MAAO,CAAA,MAAM,cAAc,aACnD,EAAA,CAAA;AAAA,oBACA,GAAA,CAAC,YAAS,IAAM,EAAA,IAAA,EAAM,cAAc,CAAK,CAAA,KAAA,CAAA,CAAE,MAAQ,EAAA,yBAAA,EAA0B,SAAU,EAAA,kBAAA,sBAAqB,UAAW,EAAA,EAAA,IAAA,EAAK,yBAAwB,KAAM,EAAA,iBAAA,EAAkB,QAAO,oEAAqE,EAAA,KAAA,EAAc,CAAI,EAAA,UAAA,EAAY,CAAC;AAAA,MAC7R;AAAA,KACI,KAAA;AACJ,MAAA,MAAM,EAAK,GAAA,MAAA,CAAO,QAAS,CAAA,IAAA,CAAK,MAAM,CAAA;AACtC,MAAO,uBAAA,GAAA,CAAC,MAAO,EAAA,EAAA,OAAA,EAAS,MAAM,MAAA,CAAO,KAAK,MAAM,CAAA,EAAG,iBAAkB,EAAA,UAAA,EAAW,kBAAoB,EAAA;AAAA,QAClG,OAAS,EAAA;AAAA,SACR,kBAAoB,EAAA,IAAA,CAAK,WAAa,EAAA,YAAA,EAAc,MAAM,OAAS,EAAA,MAAA,EAAQ,CAAkB,eAAA,EAAA,IAAA,CAAK,MAAM,CACrF,CAAA,EAAA,QAAA,kBAAA,IAAA,CAAC,QAAK,KAAO,EAAA,CAAC,OAAO,GAAK,EAAA;AAAA,QAC5C,aAAe,EAAA;AAAA,OAChB,CACuB,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAO,CAAC,MAAA,CAAO,OAAO,EAAK,GAAA;AAAA,UACrD,iBAAiB,KAAM,CAAA,MAAA;AAAA,UACvB,aAAa,KAAM,CAAA;AAAA,SACjB,GAAA;AAAA,UACF,aAAa,KAAM,CAAA;AAAA,SACpB,CAAA,EAC0B,QAAK,EAAA,EAAA,mBAAA,GAAA,CAAC,sBAAuB,EAAA,EAAA,IAAA,EAAK,OAAQ,EAAA,IAAA,EAAM,EAAI,EAAA,KAAA,EAAO,KAAM,CAAA,QAAA,EAAU,IAAK,IACrF,EAAA,CAAA;AAAA,wBACC,GAAA,CAAA,MAAA,EAAA,EAAO,IAAM,EAAA,IAAA,CAAK,WAAa,EAAA,GAAA,EAAK,IAAK,CAAA,QAAA,EAAU,KAAc,EAAA,IAAA,EAAM,EAAI,EAAA,OAAA,EAAQ,UAAW,EAAA,CAAA;AAAA,4BAC9F,IAAK,EAAA,EAAA,aAAA,EAAe,GAAG,KAAO,EAAA,CAAC,OAAO,QAAU,EAAA;AAAA,UACrE,OAAO,KAAM,CAAA;AAAA,SACd,CAC0B,EAAA,QAAA,EAAA,IAAA,CAAK,WACV,EAAA;AAAA,OAAA,EACJ,CACJ,EAAA,CAAA;AAAA,KACjB,EAAA;AAAA,GACC,EAAA,CAAA;AACR;AACA,MAAM,MAAA,GAAS,WAAW,MAAO,CAAA;AAAA,EAC/B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA;AAAA,GACR;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,UAAY,EAAA,QAAA;AAAA,IACZ,cAAgB,EAAA,eAAA;AAAA,IAChB,iBAAmB,EAAA,EAAA;AAAA,IACnB,SAAW,EAAA,EAAA;AAAA,IACX,mBAAmB,UAAW,CAAA;AAAA,GAChC;AAAA,EACA,UAAY,EAAA;AAAA,IACV,KAAO,EAAA;AAAA,GACT;AAAA,EACA,WAAa,EAAA;AAAA,IACX,UAAY,EAAA;AAAA,GACd;AAAA,EACA,KAAO,EAAA;AAAA,IACL,QAAU,EAAA,EAAA;AAAA,IACV,UAAY,EAAA;AAAA,GACd;AAAA,EACA,OAAS,EAAA;AAAA,IACP,UAAY,EAAA,QAAA;AAAA,IACZ,MAAQ,EAAA,EAAA;AAAA,IACR,YAAc,EAAA,CAAA;AAAA,IACd,iBAAmB,EAAA,EAAA;AAAA,IACnB,MAAQ,EAAA,EAAA;AAAA,IACR,YAAc,EAAA;AAAA,GAChB;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,CAAA;AAAA,IACN,UAAY,EAAA,EAAA;AAAA,IACZ,QAAU,EAAA,EAAA;AAAA,IACV,eAAiB,EAAA;AAAA,GACnB;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,UAAY,EAAA,QAAA;AAAA,IACZ,gBAAkB,EAAA,EAAA;AAAA,IAClB,YAAc,EAAA,CAAA;AAAA,IACd,YAAc,EAAA,EAAA;AAAA,IACd,iBAAmB,EAAA,EAAA;AAAA,IACnB,MAAQ,EAAA;AAAA,GACV;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,CAAA;AAAA,IACN,UAAY,EAAA,CAAA;AAAA,IACZ,QAAU,EAAA,EAAA;AAAA,IACV,eAAiB,EAAA;AAAA,GACnB;AAAA,EACA,KAAO,EAAA;AAAA,IACL,QAAU,EAAA,EAAA;AAAA,IACV,UAAY,EAAA,KAAA;AAAA,IACZ,gBAAkB,EAAA,EAAA;AAAA,IAClB,SAAW,EAAA,CAAA;AAAA,IACX,YAAc,EAAA,CAAA;AAAA,IACd,aAAe,EAAA;AAAA,GACjB;AAAA,EACA,GAAK,EAAA;AAAA,IACH,UAAY,EAAA,QAAA;AAAA,IACZ,iBAAmB,EAAA,EAAA;AAAA,IACnB,eAAiB,EAAA;AAAA,GACnB;AAAA,EACA,KAAO,EAAA;AAAA,IACL,KAAO,EAAA,EAAA;AAAA,IACP,MAAQ,EAAA,EAAA;AAAA,IACR,YAAc,EAAA,EAAA;AAAA,IACd,WAAa,EAAA,GAAA;AAAA,IACb,UAAY,EAAA,QAAA;AAAA,IACZ,cAAgB,EAAA,QAAA;AAAA,IAChB,WAAa,EAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,CAAA;AAAA,IACN,QAAU,EAAA,EAAA;AAAA,IACV,UAAY,EAAA;AAAA;AAEhB,CAAC,CAAA"}
1
+ {"version":3,"file":"NewGroupScreen.js","sources":["../../../src/features/messaging/NewGroupScreen.tsx"],"sourcesContent":["/**\n * \"New group\", WhatsApp-style: name the group and pick members from your Yantra contacts, then\n * create. The creator becomes the admin (server-side); on success the caller opens the new chat.\n */\nimport * as React from 'react';\nimport { ActivityIndicator, FlatList, Pressable, StyleSheet, Text, TextInput, View } from 'react-native';\nimport { SafeAreaView } from 'react-native-safe-area-context';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { Avatar, EmptyState, InlineBanner, type ChatTheme } from './ChatComponents';\nimport { TapRow } from './TapRow';\n\nexport interface GroupCandidate {\n userId: string;\n displayName: string;\n imageUri?: string | null;\n}\n\n/** WhatsApp caps a group at 1024 members; the picker enforces the same so create can't fail late. */\nexport const GROUP_MEMBER_LIMIT = 1024;\n\nexport function NewGroupScreen({\n candidates,\n theme,\n busy,\n mode = 'create',\n onCancel,\n onCreate,\n}: {\n candidates: GroupCandidate[];\n theme: ChatTheme;\n busy?: boolean;\n /** 'create' names a new group; 'add' adds members to an existing one (no name step). */\n mode?: 'create' | 'add';\n onCancel: () => void;\n /** Create the group (or add members); resolves a channel id / truthy, or null on failure. */\n onCreate: (name: string, memberIds: string[]) => Promise<string | null>;\n}) {\n const adding = mode === 'add';\n const [name, setName] = React.useState('');\n const [picked, setPicked] = React.useState<string[]>([]);\n const [query, setQuery] = React.useState('');\n const [creating, setCreating] = React.useState(false);\n const [error, setError] = React.useState<string | null>(null);\n\n const rows = React.useMemo(() => {\n const q = query.trim().toLowerCase();\n const seen = new Set<string>();\n return candidates.filter((c) => {\n if (!c.userId || seen.has(c.userId)) return false;\n seen.add(c.userId);\n return !q || c.displayName.toLowerCase().includes(q);\n });\n }, [candidates, query]);\n\n const toggle = (id: string) => {\n setError(null);\n setPicked((prev) => {\n if (prev.includes(id)) return prev.filter((p) => p !== id);\n if (prev.length >= GROUP_MEMBER_LIMIT) {\n setError(`A group can have up to ${GROUP_MEMBER_LIMIT} members.`);\n return prev;\n }\n return [...prev, id];\n });\n };\n\n const canCreate = (adding || name.trim().length > 0) && picked.length > 0 && !creating && !busy;\n\n const create = async () => {\n if (!canCreate) return;\n setCreating(true);\n setError(null);\n try {\n const id = await onCreate(name.trim(), picked);\n if (!id)\n setError(\n adding\n ? 'Could not add members. Please try again.'\n : 'Could not create the group. Please try again.',\n );\n } finally {\n setCreating(false);\n }\n };\n\n return (\n <View style={[styles.fill, { backgroundColor: theme.bg }]} testID=\"chat-new-group\">\n <SafeAreaView edges={['top']} style={{ backgroundColor: theme.headerBg }}>\n <View style={[styles.header, { borderBottomColor: theme.border, flexDirection: 'row' }]}>\n <Pressable onPress={onCancel} hitSlop={10} accessibilityRole=\"button\" style={styles.headerSide}>\n <Text style={{ color: theme.accent, fontSize: 17 }}>Cancel</Text>\n </Pressable>\n <Text style={[styles.title, { color: theme.text }]}>{adding ? 'Add members' : 'New group'}</Text>\n <Pressable\n onPress={create}\n disabled={!canCreate}\n hitSlop={10}\n accessibilityRole=\"button\"\n accessibilityLabel={adding ? 'Add members' : 'Create group'}\n style={[styles.headerSide, styles.headerRight]}\n testID=\"chat-new-group-create\"\n >\n {creating ? (\n <ActivityIndicator size=\"small\" color={theme.accent} />\n ) : (\n <Text\n style={{\n color: canCreate ? theme.accent : theme.textMuted,\n fontSize: 17,\n fontWeight: '600',\n }}\n >\n {adding ? 'Add' : 'Create'}\n </Text>\n )}\n </Pressable>\n </View>\n </SafeAreaView>\n <InlineBanner message={error} theme={theme} onDismiss={() => setError(null)} />\n {adding ? null : (\n <View style={[styles.nameRow, { backgroundColor: theme.surface, flexDirection: 'row' }]}>\n <MaterialCommunityIcons name=\"account-group\" size={22} color={theme.textMuted} />\n <TextInput\n value={name}\n onChangeText={(t) => setName(t.slice(0, 100))}\n placeholder=\"Group name\"\n placeholderTextColor={theme.textMuted}\n style={[styles.nameInput, { color: theme.text }]}\n testID=\"chat-new-group-name\"\n />\n </View>\n )}\n <View style={[styles.search, { backgroundColor: theme.surface, flexDirection: 'row' }]}>\n <MaterialCommunityIcons name=\"magnify\" size={20} color={theme.textMuted} />\n <TextInput\n value={query}\n onChangeText={setQuery}\n placeholder=\"Search contacts\"\n placeholderTextColor={theme.textMuted}\n style={[styles.searchInput, { color: theme.text }]}\n testID=\"chat-new-group-search\"\n />\n </View>\n <Text style={[styles.count, { color: theme.textMuted }]}>\n {picked.length ? `${picked.length} selected` : 'Add members'}\n </Text>\n <FlatList\n data={rows}\n keyExtractor={(c) => c.userId}\n keyboardShouldPersistTaps=\"handled\"\n ListEmptyComponent={\n <EmptyState\n icon=\"account-group-outline\"\n title=\"No contacts yet\"\n detail=\"People on Yantra Chat appear here. Invite friends from a new chat.\"\n theme={theme}\n />\n }\n renderItem={({ item }) => {\n const on = picked.includes(item.userId);\n return (\n <TapRow\n onPress={() => toggle(item.userId)}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: on }}\n accessibilityLabel={item.displayName}\n pressedColor={theme.surface}\n testID={`chat-new-group-${item.userId}`}\n >\n <View style={[styles.row, { flexDirection: 'row' }]}>\n <View\n style={[\n styles.check,\n on\n ? { backgroundColor: theme.accent, borderColor: theme.accent }\n : { borderColor: theme.textMuted },\n ]}\n >\n {on ? (\n <MaterialCommunityIcons name=\"check\" size={16} color={theme.onAccent} />\n ) : null}\n </View>\n <Avatar\n name={item.displayName}\n uri={item.imageUri}\n theme={theme}\n size={44}\n variant=\"initials\"\n />\n <Text numberOfLines={1} style={[styles.rowTitle, { color: theme.text }]}>\n {item.displayName}\n </Text>\n </View>\n </TapRow>\n );\n }}\n />\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n fill: { flex: 1 },\n header: {\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 12,\n minHeight: 52,\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n headerSide: { width: 72 },\n headerRight: { alignItems: 'flex-end' },\n title: { fontSize: 17, fontWeight: '600' },\n nameRow: { alignItems: 'center', margin: 12, marginBottom: 6, paddingHorizontal: 12, height: 48, borderRadius: 10 },\n nameInput: { flex: 1, marginLeft: 10, fontSize: 17, paddingVertical: 0 },\n search: {\n alignItems: 'center',\n marginHorizontal: 12,\n marginBottom: 4,\n borderRadius: 10,\n paddingHorizontal: 10,\n height: 36,\n },\n searchInput: { flex: 1, marginLeft: 8, fontSize: 16, paddingVertical: 0 },\n count: {\n fontSize: 12,\n fontWeight: '600',\n marginHorizontal: 18,\n marginTop: 8,\n marginBottom: 2,\n textTransform: 'uppercase',\n },\n row: { alignItems: 'center', paddingHorizontal: 16, paddingVertical: 8 },\n check: {\n width: 22,\n height: 22,\n borderRadius: 11,\n borderWidth: 1.5,\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: 14,\n },\n rowTitle: { flex: 1, fontSize: 17, marginLeft: 12 },\n});\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminide-stack/yantra-mobile",
3
- "version": "12.0.108-alpha.0",
3
+ "version": "12.0.108",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -27,7 +27,7 @@
27
27
  "uuid": "^9.0.0"
28
28
  },
29
29
  "devDependencies": {
30
- "common": "12.0.108-alpha.0",
30
+ "common": "^12.0.108",
31
31
  "libphonenumber-js": "^1.13.3"
32
32
  },
33
33
  "peerDependencies": {
@@ -45,7 +45,7 @@
45
45
  "@messenger-box/platform-mobile": "*",
46
46
  "@react-native-async-storage/async-storage": "*",
47
47
  "@react-navigation/native": "*",
48
- "common": "12.0.107-alpha.0",
48
+ "common": "12.0.105",
49
49
  "expo-constants": "*",
50
50
  "expo-secure-store": "*",
51
51
  "expo-web-browser": "*",
@@ -65,5 +65,5 @@
65
65
  "typescript": {
66
66
  "definition": "lib/index.d.ts"
67
67
  },
68
- "gitHead": "c28331e35aee57a205d2ff4bd80a780291e3e99a"
68
+ "gitHead": "5d65a3b4598fec3ac23c8a55d3d2eda113292ce3"
69
69
  }