@planningcenter/chat-react-native 4.0.1-qa-staging.2 → 4.0.1-rc.1

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.
Files changed (85) hide show
  1. package/build/components/conversation/message.d.ts +2 -3
  2. package/build/components/conversation/message.d.ts.map +1 -1
  3. package/build/components/conversation/message.js +22 -23
  4. package/build/components/conversation/message.js.map +1 -1
  5. package/build/components/conversation/message_read_receipts.d.ts +4 -2
  6. package/build/components/conversation/message_read_receipts.d.ts.map +1 -1
  7. package/build/components/conversation/message_read_receipts.js +3 -2
  8. package/build/components/conversation/message_read_receipts.js.map +1 -1
  9. package/build/components/conversation/reply_shadow_message.d.ts +1 -2
  10. package/build/components/conversation/reply_shadow_message.d.ts.map +1 -1
  11. package/build/components/conversation/reply_shadow_message.js +46 -47
  12. package/build/components/conversation/reply_shadow_message.js.map +1 -1
  13. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  14. package/build/hooks/use_conversation_messages.js +28 -40
  15. package/build/hooks/use_conversation_messages.js.map +1 -1
  16. package/build/hooks/use_conversation_messages_jolt_events.d.ts.map +1 -1
  17. package/build/hooks/use_conversation_messages_jolt_events.js +1 -6
  18. package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
  19. package/build/hooks/use_message_create_or_update.d.ts +4 -99
  20. package/build/hooks/use_message_create_or_update.d.ts.map +1 -1
  21. package/build/hooks/use_message_create_or_update.js +6 -47
  22. package/build/hooks/use_message_create_or_update.js.map +1 -1
  23. package/build/screens/conversation_new/components/groups_form.js +80 -71
  24. package/build/screens/conversation_new/components/groups_form.js.map +1 -1
  25. package/build/screens/conversation_screen.d.ts.map +1 -1
  26. package/build/screens/conversation_screen.js +365 -184
  27. package/build/screens/conversation_screen.js.map +1 -1
  28. package/build/types/resources/message.d.ts +0 -2
  29. package/build/types/resources/message.d.ts.map +1 -1
  30. package/build/types/resources/message.js.map +1 -1
  31. package/build/utils/cache/messages_cache.d.ts +0 -1
  32. package/build/utils/cache/messages_cache.d.ts.map +1 -1
  33. package/build/utils/cache/messages_cache.js +7 -14
  34. package/build/utils/cache/messages_cache.js.map +1 -1
  35. package/build/utils/cache/optimistically_create_message.d.ts +1 -2
  36. package/build/utils/cache/optimistically_create_message.d.ts.map +1 -1
  37. package/build/utils/cache/optimistically_create_message.js +2 -4
  38. package/build/utils/cache/optimistically_create_message.js.map +1 -1
  39. package/build/utils/client/transform_response.d.ts.map +1 -1
  40. package/build/utils/client/transform_response.js +5 -9
  41. package/build/utils/client/transform_response.js.map +1 -1
  42. package/build/utils/group_messages.d.ts +0 -1
  43. package/build/utils/group_messages.d.ts.map +1 -1
  44. package/build/utils/group_messages.js +1 -10
  45. package/build/utils/group_messages.js.map +1 -1
  46. package/build/utils/jolt/transform_message_event_data_to_message_resource.d.ts.map +1 -1
  47. package/build/utils/jolt/transform_message_event_data_to_message_resource.js +0 -1
  48. package/build/utils/jolt/transform_message_event_data_to_message_resource.js.map +1 -1
  49. package/build/utils/request/messages_data_options.d.ts.map +1 -1
  50. package/build/utils/request/messages_data_options.js +2 -2
  51. package/build/utils/request/messages_data_options.js.map +1 -1
  52. package/package.json +3 -3
  53. package/src/components/conversation/message.tsx +18 -15
  54. package/src/components/conversation/message_read_receipts.tsx +5 -3
  55. package/src/components/conversation/reply_shadow_message.tsx +7 -9
  56. package/src/hooks/use_conversation_messages.ts +1 -5
  57. package/src/hooks/use_conversation_messages_jolt_events.ts +0 -7
  58. package/src/hooks/use_message_create_or_update.ts +16 -29
  59. package/src/screens/conversation_new/components/groups_form.tsx +7 -2
  60. package/src/screens/conversation_screen.tsx +104 -11
  61. package/src/types/resources/message.ts +0 -2
  62. package/src/utils/__tests__/group_messages.test.ts +0 -48
  63. package/src/utils/cache/messages_cache.ts +11 -27
  64. package/src/utils/cache/optimistically_create_message.ts +0 -3
  65. package/src/utils/client/transform_response.ts +5 -7
  66. package/src/utils/group_messages.ts +1 -18
  67. package/src/utils/jolt/transform_message_event_data_to_message_resource.ts +0 -1
  68. package/src/utils/request/messages_data_options.ts +1 -2
  69. package/build/components/conversation/message_list.d.ts +0 -21
  70. package/build/components/conversation/message_list.d.ts.map +0 -1
  71. package/build/components/conversation/message_list.js +0 -273
  72. package/build/components/conversation/message_list.js.map +0 -1
  73. package/build/utils/replace_equal_by_id.d.ts +0 -6
  74. package/build/utils/replace_equal_by_id.d.ts.map +0 -1
  75. package/build/utils/replace_equal_by_id.js +0 -41
  76. package/build/utils/replace_equal_by_id.js.map +0 -1
  77. package/src/components/conversation/__tests__/message_list.test.tsx +0 -271
  78. package/src/components/conversation/__tests__/reply_shadow_message.test.tsx +0 -119
  79. package/src/components/conversation/message_list.tsx +0 -157
  80. package/src/hooks/__tests__/use_message_create_or_update.test.tsx +0 -110
  81. package/src/utils/__tests__/replace_equal_by_id.test.ts +0 -73
  82. package/src/utils/cache/__tests__/messages_cache.test.ts +0 -89
  83. package/src/utils/cache/__tests__/messages_cache_reply_roots.test.ts +0 -70
  84. package/src/utils/client/__tests__/transform_response.test.ts +0 -62
  85. package/src/utils/replace_equal_by_id.ts +0 -42
@@ -1 +1 @@
1
- {"version":3,"file":"use_message_create_or_update.js","names":["useMutation","chatQueryClient","deleteRecordInPagesData","Haptic","updateOrCreateRecordInPagesData","updateRecordInPagesData","isNewMessage","mergeMessageUpdate","optimisticallyCreateMessage","optimisticallyUpdateMessage","startMessageCreationTracking","getMessagesQueryKey","getMessagesRequestArgs","useApiClient","useCurrentPerson","useMessageCreateOrUpdate","t0","$","_c","conversationId","message","replyRootId","messageId","id","t1","isEditing","apiClient","currentPerson","t2","t3","text","attachments","idempotentKey","requestParams","conversation_id","fieldsWithValueJoined","Object","fromEntries","entries","data","fields","map","_temp","attributes","reply_root","idempotent_key","type","chat","patch","url","post","t4","text_0","attachments_0","idempotentKey_0","optimisticMessage","optimisticMessage_0","t5","error","variables","context","optimisticMessage_1","notificationError","queryKey","reply_root_id","setQueryData","data_0","record","processRecord","_next","prev","pending","result","variables_0","context_0","optimisticMessage_2","updatedMessage","queryKey_0","data_1","data_2","_temp2","t6","mutationFn","onMutate","onError","onSuccess","mutation","t7","variables_1","insecureUUID","resolveVariables","mutate","mutateAsync","variables_2","options","variables_3","options_0","t8","current","k","v","join","replace","Math","floor","random","toString"],"sources":["../../src/hooks/use_message_create_or_update.ts"],"sourcesContent":["import { InfiniteData, useMutation } from '@tanstack/react-query'\nimport { chatQueryClient } from '../contexts/api_provider'\nimport { ApiCollection, ApiResource, MessageResource } from '../types'\nimport { DenormalizedAttachmentResourceForCreate } from '../types/resources/denormalized_attachment_resource_for_create'\nimport {\n deleteRecordInPagesData,\n Haptic,\n updateOrCreateRecordInPagesData,\n updateRecordInPagesData,\n} from '../utils'\nimport { isNewMessage, mergeMessageUpdate } from '../utils/cache/messages_cache'\nimport { optimisticallyCreateMessage } from '../utils/cache/optimistically_create_message'\nimport { optimisticallyUpdateMessage } from '../utils/cache/optimistically_update_message'\nimport { startMessageCreationTracking } from '../utils/performance_tracking'\nimport { getMessagesQueryKey, getMessagesRequestArgs } from '../utils/request/get_messages'\nimport { useApiClient } from './use_api_client'\nimport { useCurrentPerson } from './use_current_person'\n\ninterface Props {\n conversationId: number\n message?: MessageResource\n replyRootId?: string | null\n}\n\ninterface MessageMutationVariables {\n text: string\n attachments?: DenormalizedAttachmentResourceForCreate[]\n idempotentKey?: string\n}\n\ntype ResolvedMessageMutationVariables = MessageMutationVariables & { idempotentKey: string }\n\nexport function useMessageCreateOrUpdate({ conversationId, message, replyRootId }: Props) {\n const messageId = message?.id || null\n const isEditing = !isNewMessage(message)\n const apiClient = useApiClient()\n const currentPerson = useCurrentPerson()\n\n const mutation = useMutation({\n mutationFn: ({ text, attachments, idempotentKey }: ResolvedMessageMutationVariables) => {\n const requestParams = getMessagesRequestArgs({ conversation_id: conversationId })\n const fieldsWithValueJoined = Object.fromEntries(\n Object.entries(requestParams.data.fields).map(([k, v]) => [k, v.join(',')])\n )\n let attributes: any = {\n text,\n ...(attachments ? { attachments } : {}),\n ...(!isEditing && replyRootId ? { reply_root: { id: replyRootId } } : {}),\n }\n if (!isEditing) {\n attributes.idempotent_key = idempotentKey\n startMessageCreationTracking(idempotentKey)\n }\n const data = {\n ...requestParams.data,\n data: {\n type: 'Message',\n attributes,\n },\n fields: fieldsWithValueJoined,\n }\n\n if (isEditing) {\n return apiClient.chat.patch<ApiResource<MessageResource>>({\n url: `/me/conversations/${conversationId}/messages/${messageId}`,\n data,\n })\n } else {\n return apiClient.chat.post<ApiResource<MessageResource>>({\n url: `/me/conversations/${conversationId}/messages`,\n data,\n })\n }\n },\n onMutate: async ({ text, attachments, idempotentKey }: ResolvedMessageMutationVariables) => {\n if (message && isEditing) {\n const optimisticMessage = optimisticallyUpdateMessage({\n conversationId,\n message,\n text,\n replyRootId,\n })\n\n return { message: optimisticMessage }\n }\n\n const optimisticMessage = optimisticallyCreateMessage({\n conversationId,\n message,\n text,\n attachments,\n currentPerson,\n replyRootId,\n idempotentKey,\n })\n\n return { message: optimisticMessage }\n },\n onError: (error, variables, context) => {\n const { message: optimisticMessage } = context || {}\n Haptic.notificationError()\n\n // Add error to the optimistic message from the cache on error\n if (optimisticMessage) {\n const queryKey = getMessagesQueryKey({\n conversation_id: conversationId,\n reply_root_id: replyRootId,\n })\n chatQueryClient.setQueryData(\n queryKey,\n (data: InfiniteData<ApiCollection<MessageResource>> | undefined) =>\n updateRecordInPagesData({\n data,\n record: optimisticMessage,\n processRecord: (_next, prev) => ({\n ...prev,\n error: error.message || 'Failed to send message',\n pending: false, // Mark as no longer pending\n }),\n })\n )\n }\n },\n onSuccess: (result: ApiResource<MessageResource>, variables, context) => {\n const { message: optimisticMessage } = context || {}\n const updatedMessage = result.data\n type QueryData = InfiniteData<ApiCollection<MessageResource>>\n const queryKey = getMessagesQueryKey({\n conversation_id: conversationId,\n reply_root_id: replyRootId,\n })\n\n // First remove the optimistic message if it exists\n if (optimisticMessage) {\n chatQueryClient.setQueryData<QueryData>(queryKey, data =>\n deleteRecordInPagesData({\n data,\n record: optimisticMessage,\n })\n )\n }\n\n // Then add the real message\n chatQueryClient.setQueryData<QueryData>(queryKey, data =>\n updateOrCreateRecordInPagesData({\n data,\n record: updatedMessage,\n processRecord: (record, current) => mergeMessageUpdate(record, current),\n })\n )\n },\n })\n\n const resolveVariables = (\n variables: MessageMutationVariables\n ): ResolvedMessageMutationVariables => ({\n ...variables,\n idempotentKey: variables.idempotentKey ?? message?.idempotentKey ?? insecureUUID(),\n })\n\n const mutate = (\n variables: MessageMutationVariables,\n options?: Parameters<typeof mutation.mutate>[1]\n ) => mutation.mutate(resolveVariables(variables), options)\n\n const mutateAsync = (\n variables: MessageMutationVariables,\n options?: Parameters<typeof mutation.mutateAsync>[1]\n ) => mutation.mutateAsync(resolveVariables(variables), options)\n\n return { ...mutation, mutate, mutateAsync }\n}\n\n/**\n * Generate a random UUID (v4) for idempotent keys.\n * Uses Math.random, which is not cryptographically secure.\n * An actual crypto library requires native dependencies.\n * This is OK for now since idempotent keys are not security-sensitive\n * or need to be guaranteed unique.\n * They are short lived and we use it in combination with the message's creator_id so\n * their impact is scoped only the current user.\n */\nfunction insecureUUID(): string {\n return 'xxxxxxxx-xxxx-4xxx-Nxxx-xxxxxxxxxxxx'\n .replace(/x/g, () => Math.floor(Math.random() * 16).toString(16))\n .replace(/N/g, () => (Math.floor(Math.random() * 4) + 8).toString(16))\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"use_message_create_or_update.js","names":["useMutation","chatQueryClient","deleteRecordInPagesData","Haptic","updateOrCreateRecordInPagesData","updateRecordInPagesData","isNewMessage","mergeMessageUpdate","optimisticallyCreateMessage","optimisticallyUpdateMessage","startMessageCreationTracking","getMessagesQueryKey","getMessagesRequestArgs","useApiClient","useCurrentPerson","useMessageCreateOrUpdate","t0","$","_c","conversationId","message","replyRootId","messageId","id","t1","isEditing","apiClient","currentPerson","t2","t3","text","attachments","requestParams","conversation_id","fieldsWithValueJoined","Object","fromEntries","entries","data","fields","map","_temp","attributes","reply_root","idempotentKey","insecureUUID","idempotent_key","type","chat","patch","url","post","t4","text_0","attachments_0","optimisticMessage","optimisticMessage_0","t5","error","variables","context","optimisticMessage_1","notificationError","queryKey","reply_root_id","setQueryData","data_0","record","processRecord","_next","prev","pending","result","variables_0","context_0","optimisticMessage_2","updatedMessage","queryKey_0","data_1","data_2","_temp2","t6","mutationFn","onMutate","onError","onSuccess","mutation","current","k","v","join","replace","Math","floor","random","toString"],"sources":["../../src/hooks/use_message_create_or_update.ts"],"sourcesContent":["import { InfiniteData, useMutation } from '@tanstack/react-query'\nimport { chatQueryClient } from '../contexts/api_provider'\nimport { ApiCollection, ApiResource, MessageResource } from '../types'\nimport { DenormalizedAttachmentResourceForCreate } from '../types/resources/denormalized_attachment_resource_for_create'\nimport {\n deleteRecordInPagesData,\n Haptic,\n updateOrCreateRecordInPagesData,\n updateRecordInPagesData,\n} from '../utils'\nimport { isNewMessage, mergeMessageUpdate } from '../utils/cache/messages_cache'\nimport { optimisticallyCreateMessage } from '../utils/cache/optimistically_create_message'\nimport { optimisticallyUpdateMessage } from '../utils/cache/optimistically_update_message'\nimport { startMessageCreationTracking } from '../utils/performance_tracking'\nimport { getMessagesQueryKey, getMessagesRequestArgs } from '../utils/request/get_messages'\nimport { useApiClient } from './use_api_client'\nimport { useCurrentPerson } from './use_current_person'\n\ninterface Props {\n conversationId: number\n message?: MessageResource\n replyRootId?: string | null\n}\n\nexport function useMessageCreateOrUpdate({ conversationId, message, replyRootId }: Props) {\n const messageId = message?.id || null\n const isEditing = !isNewMessage(message)\n const apiClient = useApiClient()\n const currentPerson = useCurrentPerson()\n\n const mutation = useMutation({\n mutationFn: ({\n text,\n attachments,\n }: {\n text: string\n attachments?: DenormalizedAttachmentResourceForCreate[]\n }) => {\n const requestParams = getMessagesRequestArgs({ conversation_id: conversationId })\n const fieldsWithValueJoined = Object.fromEntries(\n Object.entries(requestParams.data.fields).map(([k, v]) => [k, v.join(',')])\n )\n let attributes: any = {\n text,\n ...(attachments ? { attachments } : {}),\n ...(!isEditing && replyRootId ? { reply_root: { id: replyRootId } } : {}),\n }\n if (!isEditing) {\n const idempotentKey = insecureUUID()\n attributes.idempotent_key = idempotentKey\n startMessageCreationTracking(idempotentKey)\n }\n const data = {\n ...requestParams.data,\n data: {\n type: 'Message',\n attributes,\n },\n fields: fieldsWithValueJoined,\n }\n\n if (isEditing) {\n return apiClient.chat.patch<ApiResource<MessageResource>>({\n url: `/me/conversations/${conversationId}/messages/${messageId}`,\n data,\n })\n } else {\n return apiClient.chat.post<ApiResource<MessageResource>>({\n url: `/me/conversations/${conversationId}/messages`,\n data,\n })\n }\n },\n onMutate: async ({\n text,\n attachments,\n }: {\n text: string\n attachments?: DenormalizedAttachmentResourceForCreate[]\n }) => {\n if (message && isEditing) {\n const optimisticMessage = optimisticallyUpdateMessage({\n conversationId,\n message,\n text,\n replyRootId,\n })\n\n return { message: optimisticMessage }\n }\n\n const optimisticMessage = optimisticallyCreateMessage({\n conversationId,\n message,\n text,\n attachments,\n currentPerson,\n replyRootId,\n })\n\n return { message: optimisticMessage }\n },\n onError: (error, variables, context) => {\n const { message: optimisticMessage } = context || {}\n Haptic.notificationError()\n\n // Add error to the optimistic message from the cache on error\n if (optimisticMessage) {\n const queryKey = getMessagesQueryKey({\n conversation_id: conversationId,\n reply_root_id: replyRootId,\n })\n chatQueryClient.setQueryData(\n queryKey,\n (data: InfiniteData<ApiCollection<MessageResource>> | undefined) =>\n updateRecordInPagesData({\n data,\n record: optimisticMessage,\n processRecord: (_next, prev) => ({\n ...prev,\n error: error.message || 'Failed to send message',\n pending: false, // Mark as no longer pending\n }),\n })\n )\n }\n },\n onSuccess: (result: ApiResource<MessageResource>, variables, context) => {\n const { message: optimisticMessage } = context || {}\n const updatedMessage = result.data\n type QueryData = InfiniteData<ApiCollection<MessageResource>>\n const queryKey = getMessagesQueryKey({\n conversation_id: conversationId,\n reply_root_id: replyRootId,\n })\n\n // First remove the optimistic message if it exists\n if (optimisticMessage) {\n chatQueryClient.setQueryData<QueryData>(queryKey, data =>\n deleteRecordInPagesData({\n data,\n record: optimisticMessage,\n })\n )\n }\n\n // Then add the real message\n chatQueryClient.setQueryData<QueryData>(queryKey, data =>\n updateOrCreateRecordInPagesData({\n data,\n record: updatedMessage,\n processRecord: (record, current) => mergeMessageUpdate(record, current),\n })\n )\n },\n })\n\n return mutation\n}\n\n/**\n * Generate a random UUID (v4) for idempotent keys.\n * Uses Math.random, which is not cryptographically secure.\n * An actual crypto library requires native dependencies.\n * This is OK for now since idempotent keys are not security-sensitive\n * or need to be guaranteed unique.\n * They are short lived and we use it in combination with the message's creator_id so\n * their impact is scoped only the current user.\n */\nfunction insecureUUID(): string {\n return 'xxxxxxxx-xxxx-4xxx-Nxxx-xxxxxxxxxxxx'\n .replace(/x/g, () => Math.floor(Math.random() * 16).toString(16))\n .replace(/N/g, () => (Math.floor(Math.random() * 4) + 8).toString(16))\n}\n"],"mappings":";AAAA,SAAuBA,WAAW,QAAQ,uBAAuB;AACjE,SAASC,eAAe,QAAQ,0BAA0B;AAG1D,SACEC,uBAAuB,EACvBC,MAAM,EACNC,+BAA+B,EAC/BC,uBAAuB,QAClB,UAAU;AACjB,SAASC,YAAY,EAAEC,kBAAkB,QAAQ,+BAA+B;AAChF,SAASC,2BAA2B,QAAQ,8CAA8C;AAC1F,SAASC,2BAA2B,QAAQ,8CAA8C;AAC1F,SAASC,4BAA4B,QAAQ,+BAA+B;AAC5E,SAASC,mBAAmB,EAAEC,sBAAsB,QAAQ,+BAA+B;AAC3F,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,gBAAgB,QAAQ,sBAAsB;AAQvD,OAAO,SAAAC,yBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAkC;IAAAC,cAAA;IAAAC,OAAA;IAAAC;EAAA,IAAAL,EAA+C;EACtF,MAAAM,SAAA,GAAkBF,OAAO,EAAAG,EAAY,IAAnB,IAAmB;EAAA,IAAAC,EAAA;EAAA,IAAAP,CAAA,QAAAG,OAAA;IAClBI,EAAA,GAAAlB,YAAY,CAACc,OAAO,CAAC;IAAAH,CAAA,MAAAG,OAAA;IAAAH,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAAxC,MAAAQ,SAAA,GAAkB,CAACD,EAAqB;EACxC,MAAAE,SAAA,GAAkBb,YAAY,CAAC,CAAC;EAChC,MAAAc,aAAA,GAAsBb,gBAAgB,CAAC,CAAC;EAAA,IAAAc,EAAA;EAAA,IAAAX,CAAA,QAAAS,SAAA,IAAAT,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAQ,SAAA,IAAAR,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAI,WAAA;IAG1BO,EAAA,GAAAC,EAAA;MAAC;QAAAC,IAAA;QAAAC;MAAA,IAAAF,EAMZ;MACC,MAAAG,aAAA,GAAsBpB,sBAAsB,CAAC;QAAAqB,eAAA,EAAmBd;MAAe,CAAC,CAAC;MACjF,MAAAe,qBAAA,GAA8BC,MAAM,CAAAC,WAAY,CAC9CD,MAAM,CAAAE,OAAQ,CAACL,aAAa,CAAAM,IAAK,CAAAC,MAAO,CAAC,CAAAC,GAAI,CAACC,KAA4B,CAC5E,CAAC;MACD,MAAAC,UAAA,GAAsB;QAAAZ,IAAA;QAAA,IAEhBC,WAAW,GAAX;UAAAA;QAAiC,CAAC,GAAlC,CAAiC,CAAC;QAAA,IAClC,CAACN,SAAwB,IAAzBJ,WAAoE,GAApE;UAAAsB,UAAA,EAA0C;YAAApB,EAAA,EAAMF;UAAY;QAAO,CAAC,GAApE,CAAmE,CAAC;MAC1E,CAAC;MACD,IAAI,CAACI,SAAS;QACZ,MAAAmB,aAAA,GAAsBC,YAAY,CAAC,CAAC;QACpCH,UAAU,CAAAI,cAAA,GAAkBF,aAAH;QACzBlC,4BAA4B,CAACkC,aAAa,CAAC;MAAA;MAE7C,MAAAN,IAAA,GAAa;QAAA,GACRN,aAAa,CAAAM,IAAK;QAAAA,IAAA,EACf;UAAAS,IAAA,EACE,SAAS;UAAAL;QAEjB,CAAC;QAAAH,MAAA,EACOL;MACV,CAAC;MAED,IAAIT,SAAS;QAAA,OACJC,SAAS,CAAAsB,IAAK,CAAAC,KAAM,CAA+B;UAAAC,GAAA,EACnD,qBAAqB/B,cAAc,aAAaG,SAAS,EAAE;UAAAgB;QAElE,CAAC,CAAC;MAAA;QAAA,OAEKZ,SAAS,CAAAsB,IAAK,CAAAG,IAAK,CAA+B;UAAAD,GAAA,EAClD,qBAAqB/B,cAAc,WAAW;UAAAmB;QAErD,CAAC,CAAC;MAAA;IACH,CACF;IAAArB,CAAA,MAAAS,SAAA;IAAAT,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAQ,SAAA;IAAAR,CAAA,MAAAK,SAAA;IAAAL,CAAA,MAAAI,WAAA;IAAAJ,CAAA,MAAAW,EAAA;EAAA;IAAAA,EAAA,GAAAX,CAAA;EAAA;EAAA,IAAAY,EAAA;EAAA,IAAAZ,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAU,aAAA,IAAAV,CAAA,SAAAQ,SAAA,IAAAR,CAAA,SAAAG,OAAA,IAAAH,CAAA,SAAAI,WAAA;IACSQ,EAAA,SAAAuB,EAAA;MAAO;QAAAtB,IAAA,EAAAuB,MAAA;QAAAtB,WAAA,EAAAuB;MAAA,IAAAF,EAMhB;MACC,IAAIhC,OAAoB,IAApBK,SAAoB;QACtB,MAAA8B,iBAAA,GAA0B9C,2BAA2B,CAAC;UAAAU,cAAA;UAAAC,OAAA;UAAAU,IAAA,EAGpDA,MAAI;UAAAT;QAEN,CAAC,CAAC;QAAA,OAEK;UAAAD,OAAA,EAAWmC;QAAkB,CAAC;MAAA;MAGvC,MAAAC,mBAAA,GAA0BhD,2BAA2B,CAAC;QAAAW,cAAA;QAAAC,OAAA;QAAAU,IAAA,EAGpDA,MAAI;QAAAC,WAAA,EACJA,aAAW;QAAAJ,aAAA;QAAAN;MAGb,CAAC,CAAC;MAAA,OAEK;QAAAD,OAAA,EAAWmC;MAAkB,CAAC;IAAA,CACtC;IAAAtC,CAAA,MAAAE,cAAA;IAAAF,CAAA,MAAAU,aAAA;IAAAV,CAAA,OAAAQ,SAAA;IAAAR,CAAA,OAAAG,OAAA;IAAAH,CAAA,OAAAI,WAAA;IAAAJ,CAAA,OAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAA,IAAAmC,EAAA;EAAA,IAAAK,EAAA;EAAA,IAAAxC,CAAA,SAAAE,cAAA,IAAAF,CAAA,SAAAI,WAAA;IACQ+B,EAAA,GAAAA,CAAAM,KAAA,EAAAC,SAAA,EAAAC,OAAA;MACP;QAAAxC,OAAA,EAAAyC;MAAA,IAAuCD,OAAa,IAAb,CAAY,CAAC;MACpDzD,MAAM,CAAA2D,iBAAkB,CAAC,CAAC;MAG1B,IAAIP,mBAAiB;QACnB,MAAAQ,QAAA,GAAiBpD,mBAAmB,CAAC;UAAAsB,eAAA,EAClBd,cAAc;UAAA6C,aAAA,EAChB3C;QACjB,CAAC,CAAC;QACFpB,eAAe,CAAAgE,YAAa,CAC1BF,QAAQ,EACRG,MAAA,IACE7D,uBAAuB,CAAC;UAAAiC,IAAA,EACtBA,MAAI;UAAA6B,MAAA,EACIZ,mBAAiB;UAAAa,aAAA,EACVA,CAAAC,KAAA,EAAAC,IAAA,MAAkB;YAAA,GAC5BA,IAAI;YAAAZ,KAAA,EACAA,KAAK,CAAAtC,OAAoC,IAAzC,wBAAyC;YAAAmD,OAAA,EACvC;UACX,CAAC;QACH,CAAC,CACL,CAAC;MAAA;IACF,CACF;IACUd,EAAA,GAAAA,CAAAe,MAAA,EAAAC,WAAA,EAAAC,SAAA;MACT;QAAAtD,OAAA,EAAAuD;MAAA,IAAuCD,SAAa,IAAb,CAAY,CAAC;MACpD,MAAAE,cAAA,GAAuBJ,MAAM,CAAAlC,IAAK;MAElC,MAAAuC,UAAA,GAAiBlE,mBAAmB,CAAC;QAAAsB,eAAA,EAClBd,cAAc;QAAA6C,aAAA,EAChB3C;MACjB,CAAC,CAAC;MAGF,IAAIkC,mBAAiB;QACnBtD,eAAe,CAAAgE,YAAa,CAAYF,UAAQ,EAAEe,MAAA,IAChD5E,uBAAuB,CAAC;UAAAoC,IAAA,EACtBA,MAAI;UAAA6B,MAAA,EACIZ;QACV,CAAC,CACH,CAAC;MAAA;MAIHtD,eAAe,CAAAgE,YAAa,CAAYF,UAAQ,EAAEgB,MAAA,IAChD3E,+BAA+B,CAAC;QAAAkC,IAAA,EAC9BA,MAAI;QAAA6B,MAAA,EACIS,cAAc;QAAAR,aAAA,EACPY;MACjB,CAAC,CACH,CAAC;IAAA,CACF;IAAA/D,CAAA,OAAAE,cAAA;IAAAF,CAAA,OAAAI,WAAA;IAAAJ,CAAA,OAAAmC,EAAA;IAAAnC,CAAA,OAAAwC,EAAA;EAAA;IAAAL,EAAA,GAAAnC,CAAA;IAAAwC,EAAA,GAAAxC,CAAA;EAAA;EAAA,IAAAgE,EAAA;EAAA,IAAAhE,CAAA,SAAAW,EAAA,IAAAX,CAAA,SAAAY,EAAA,IAAAZ,CAAA,SAAAmC,EAAA,IAAAnC,CAAA,SAAAwC,EAAA;IA5H0BwB,EAAA;MAAAC,UAAA,EACftD,EAyCX;MAAAuD,QAAA,EACStD,EA4BT;MAAAuD,OAAA,EACQhC,EAwBR;MAAAiC,SAAA,EACU5B;IA4Bb,CAAC;IAAAxC,CAAA,OAAAW,EAAA;IAAAX,CAAA,OAAAY,EAAA;IAAAZ,CAAA,OAAAmC,EAAA;IAAAnC,CAAA,OAAAwC,EAAA;IAAAxC,CAAA,OAAAgE,EAAA;EAAA;IAAAA,EAAA,GAAAhE,CAAA;EAAA;EA7HD,MAAAqE,QAAA,GAAiBtF,WAAW,CAACiF,EA6H5B,CAAC;EAAA,OAEKK,QAAQ;AAAA;;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhJO,SAAAN,OAAAb,MAAA,EAAAoB,OAAA;EAAA,OA+HuChF,kBAAkB,CAAC4D,MAAM,EAAEoB,OAAO,CAAC;AAAA;AA/H1E,SAAA9C,MAAAzB,EAAA;EAgBgD,OAAAwE,CAAA,EAAAC,CAAA,IAAAzE,EAAM;EAAA,OAAK,CAACwE,CAAC,EAAEC,CAAC,CAAAC,IAAK,CAAC,GAAG,CAAC,CAAC;AAAA;AAiIlF,SAAS7C,YAAYA,CAAA,EAAW;EAC9B,OAAO,sCAAsC,CAC1C8C,OAAO,CAAC,IAAI,EAAE,MAAMC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAChEJ,OAAO,CAAC,IAAI,EAAE,MAAM,CAACC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAEC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1E","ignoreList":[]}
@@ -290,7 +290,7 @@ export const GroupsForm = t0 => {
290
290
  return t17;
291
291
  };
292
292
  function FormContent(t0) {
293
- const $ = _c(56);
293
+ const $ = _c(58);
294
294
  const {
295
295
  group,
296
296
  title,
@@ -396,67 +396,72 @@ function FormContent(t0) {
396
396
  t7 = $[15];
397
397
  }
398
398
  let t8;
399
- if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
400
- t8 = /*#__PURE__*/_jsx(Heading, {
399
+ if ($[16] !== styles.required) {
400
+ t8 = /*#__PURE__*/_jsxs(Heading, {
401
401
  variant: "h3",
402
- children: "Title"
402
+ children: ["Title ", /*#__PURE__*/_jsx(Text, {
403
+ style: styles.required,
404
+ children: "*"
405
+ })]
403
406
  });
404
- $[16] = t8;
407
+ $[16] = styles.required;
408
+ $[17] = t8;
405
409
  } else {
406
- t8 = $[16];
410
+ t8 = $[17];
407
411
  }
408
412
  let t9;
409
- if ($[17] !== setTitle || $[18] !== styles.titleInput || $[19] !== title) {
413
+ if ($[18] !== setTitle || $[19] !== styles.titleInput || $[20] !== title) {
410
414
  t9 = /*#__PURE__*/_jsx(AutoFocusAwareTextInput, {
411
- placeholder: "Topic of conversation (required)",
415
+ placeholder: "Topic of conversation",
412
416
  value: title,
413
417
  onChangeText: setTitle,
414
418
  style: styles.titleInput,
415
419
  autoFocus: true,
416
420
  inputRef: inputRef
417
421
  });
418
- $[17] = setTitle;
419
- $[18] = styles.titleInput;
420
- $[19] = title;
421
- $[20] = t9;
422
+ $[18] = setTitle;
423
+ $[19] = styles.titleInput;
424
+ $[20] = title;
425
+ $[21] = t9;
422
426
  } else {
423
- t9 = $[20];
427
+ t9 = $[21];
424
428
  }
425
429
  let t10;
426
- if ($[21] !== styles.titleSection || $[22] !== t9) {
430
+ if ($[22] !== styles.titleSection || $[23] !== t8 || $[24] !== t9) {
427
431
  t10 = /*#__PURE__*/_jsxs(Pressable, {
428
432
  style: styles.titleSection,
429
433
  onPress: handleTitleSectionPress,
430
434
  children: [t8, t9]
431
435
  });
432
- $[21] = styles.titleSection;
433
- $[22] = t9;
434
- $[23] = t10;
436
+ $[22] = styles.titleSection;
437
+ $[23] = t8;
438
+ $[24] = t9;
439
+ $[25] = t10;
435
440
  } else {
436
- t10 = $[23];
441
+ t10 = $[25];
437
442
  }
438
443
  let t11;
439
- if ($[24] === Symbol.for("react.memo_cache_sentinel")) {
444
+ if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
440
445
  t11 = /*#__PURE__*/_jsx(Divider, {});
441
- $[24] = t11;
446
+ $[26] = t11;
442
447
  } else {
443
- t11 = $[24];
448
+ t11 = $[26];
444
449
  }
445
450
  let t12;
446
- if ($[25] !== avatarSelection || $[26] !== customAvatarsEnabled) {
451
+ if ($[27] !== avatarSelection || $[28] !== customAvatarsEnabled) {
447
452
  t12 = customAvatarsEnabled && /*#__PURE__*/_jsxs(_Fragment, {
448
453
  children: [/*#__PURE__*/_jsx(AvatarSelectionRow, {
449
454
  avatarSelection: avatarSelection
450
455
  }), /*#__PURE__*/_jsx(Divider, {})]
451
456
  });
452
- $[25] = avatarSelection;
453
- $[26] = customAvatarsEnabled;
454
- $[27] = t12;
457
+ $[27] = avatarSelection;
458
+ $[28] = customAvatarsEnabled;
459
+ $[29] = t12;
455
460
  } else {
456
- t12 = $[27];
461
+ t12 = $[29];
457
462
  }
458
463
  let t13;
459
- if ($[28] !== genderFetching || $[29] !== genderFilterAvailable || $[30] !== genderFilterEnabled || $[31] !== genderValue || $[32] !== onGenderToggle) {
464
+ if ($[30] !== genderFetching || $[31] !== genderFilterAvailable || $[32] !== genderFilterEnabled || $[33] !== genderValue || $[34] !== onGenderToggle) {
460
465
  t13 = genderFilterAvailable && /*#__PURE__*/_jsxs(_Fragment, {
461
466
  children: [/*#__PURE__*/_jsx(GenderFilterToggle, {
462
467
  genderValue: genderValue,
@@ -465,93 +470,93 @@ function FormContent(t0) {
465
470
  onToggle: onGenderToggle
466
471
  }), /*#__PURE__*/_jsx(Divider, {})]
467
472
  });
468
- $[28] = genderFetching;
469
- $[29] = genderFilterAvailable;
470
- $[30] = genderFilterEnabled;
471
- $[31] = genderValue;
472
- $[32] = onGenderToggle;
473
- $[33] = t13;
473
+ $[30] = genderFetching;
474
+ $[31] = genderFilterAvailable;
475
+ $[32] = genderFilterEnabled;
476
+ $[33] = genderValue;
477
+ $[34] = onGenderToggle;
478
+ $[35] = t13;
474
479
  } else {
475
- t13 = $[33];
480
+ t13 = $[35];
476
481
  }
477
482
  let t14;
478
- if ($[34] !== memberHeaderLabel) {
483
+ if ($[36] !== memberHeaderLabel) {
479
484
  t14 = /*#__PURE__*/_jsx(Heading, {
480
485
  variant: "h3",
481
486
  children: memberHeaderLabel
482
487
  });
483
- $[34] = memberHeaderLabel;
484
- $[35] = t14;
488
+ $[36] = memberHeaderLabel;
489
+ $[37] = t14;
485
490
  } else {
486
- t14 = $[35];
491
+ t14 = $[37];
487
492
  }
488
493
  let t15;
489
- if ($[36] !== childMembers || $[37] !== hasChildren || $[38] !== isLeader || $[39] !== styles.banner) {
494
+ if ($[38] !== childMembers || $[39] !== hasChildren || $[40] !== isLeader || $[41] !== styles.banner) {
490
495
  t15 = hasChildren && /*#__PURE__*/_jsx(ChildNotice, {
491
496
  childMembers: childMembers,
492
497
  showMembers: isLeader,
493
498
  style: styles.banner
494
499
  });
495
- $[36] = childMembers;
496
- $[37] = hasChildren;
497
- $[38] = isLeader;
498
- $[39] = styles.banner;
499
- $[40] = t15;
500
+ $[38] = childMembers;
501
+ $[39] = hasChildren;
502
+ $[40] = isLeader;
503
+ $[41] = styles.banner;
504
+ $[42] = t15;
500
505
  } else {
501
- t15 = $[40];
506
+ t15 = $[42];
502
507
  }
503
508
  let t16;
504
- if ($[41] !== showMemberError || $[42] !== styles.banner) {
509
+ if ($[43] !== showMemberError || $[44] !== styles.banner) {
505
510
  t16 = showMemberError && /*#__PURE__*/_jsx(Banner, {
506
511
  appearance: "error",
507
512
  description: "There was an issue loading group members, please refresh and try again.",
508
513
  style: styles.banner
509
514
  });
510
- $[41] = showMemberError;
511
- $[42] = styles.banner;
512
- $[43] = t16;
515
+ $[43] = showMemberError;
516
+ $[44] = styles.banner;
517
+ $[45] = t16;
513
518
  } else {
514
- t16 = $[43];
519
+ t16 = $[45];
515
520
  }
516
521
  let t17;
517
- if ($[44] !== styles.memberSection || $[45] !== t14 || $[46] !== t15 || $[47] !== t16) {
522
+ if ($[46] !== styles.memberSection || $[47] !== t14 || $[48] !== t15 || $[49] !== t16) {
518
523
  t17 = /*#__PURE__*/_jsxs(View, {
519
524
  style: styles.memberSection,
520
525
  children: [t14, t15, t16]
521
526
  });
522
- $[44] = styles.memberSection;
523
- $[45] = t14;
524
- $[46] = t15;
525
- $[47] = t16;
526
- $[48] = t17;
527
+ $[46] = styles.memberSection;
528
+ $[47] = t14;
529
+ $[48] = t15;
530
+ $[49] = t16;
531
+ $[50] = t17;
527
532
  } else {
528
- t17 = $[48];
533
+ t17 = $[50];
529
534
  }
530
535
  let t18;
531
- if ($[49] !== styles.formContent || $[50] !== t10 || $[51] !== t12 || $[52] !== t13 || $[53] !== t17 || $[54] !== t6) {
536
+ if ($[51] !== styles.formContent || $[52] !== t10 || $[53] !== t12 || $[54] !== t13 || $[55] !== t17 || $[56] !== t6) {
532
537
  t18 = /*#__PURE__*/_jsxs(View, {
533
538
  style: styles.formContent,
534
539
  children: [t6, t7, t10, t11, t12, t13, t17]
535
540
  });
536
- $[49] = styles.formContent;
537
- $[50] = t10;
538
- $[51] = t12;
539
- $[52] = t13;
540
- $[53] = t17;
541
- $[54] = t6;
542
- $[55] = t18;
541
+ $[51] = styles.formContent;
542
+ $[52] = t10;
543
+ $[53] = t12;
544
+ $[54] = t13;
545
+ $[55] = t17;
546
+ $[56] = t6;
547
+ $[57] = t18;
543
548
  } else {
544
- t18 = $[55];
549
+ t18 = $[57];
545
550
  }
546
551
  return t18;
547
552
  }
548
553
  const useStyles = () => {
549
- const $ = _c(2);
554
+ const $ = _c(3);
550
555
  const {
551
556
  colors
552
557
  } = useTheme();
553
558
  let t0;
554
- if ($[0] !== colors.textColorDefaultPrimary) {
559
+ if ($[0] !== colors.statusErrorText || $[1] !== colors.textColorDefaultPrimary) {
555
560
  t0 = StyleSheet.create({
556
561
  formContent: {
557
562
  paddingBottom: 16,
@@ -581,6 +586,9 @@ const useStyles = () => {
581
586
  fontSize: 18,
582
587
  color: colors.textColorDefaultPrimary
583
588
  },
589
+ required: {
590
+ color: colors.statusErrorText
591
+ },
584
592
  memberSection: {
585
593
  padding: 16,
586
594
  paddingBottom: 0
@@ -589,10 +597,11 @@ const useStyles = () => {
589
597
  marginTop: 16
590
598
  }
591
599
  });
592
- $[0] = colors.textColorDefaultPrimary;
593
- $[1] = t0;
600
+ $[0] = colors.statusErrorText;
601
+ $[1] = colors.textColorDefaultPrimary;
602
+ $[2] = t0;
594
603
  } else {
595
- t0 = $[1];
604
+ t0 = $[2];
596
605
  }
597
606
  return t0;
598
607
  };
@@ -1 +1 @@
1
- {"version":3,"file":"groups_form.js","names":["StackActions","useNavigation","React","useCallback","useMemo","useRef","useState","Platform","Pressable","StyleSheet","View","Banner","ChildNotice","Heading","Text","ActionButton","KeyboardView","AutoFocusAwareTextInput","useApiClient","useCurrentPerson","useSuspenseGet","useTheme","useGroupChatConversationPayload","useGroupMembersForNewConversation","useGroupsConversationCreate","patchConversationAvatar","useConversationValidate","availableFeatures","useFeatures","useMyGender","useUploadClient","pluralize","genderDisplayLabel","Haptic","AvatarSelectionRow","Divider","FormList","GenderFilterToggle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GroupsForm","t0","$","_c","groupId","chat_group_graph_id","avatarSelection","navigation","apiClient","uploadClient","title","setTitle","genderFilterEnabled","setGenderFilterEnabled","featureEnabled","t1","custom_conversation_avatars","customAvatarsEnabled","t2","conversation_safety_lock","safetyLockEnabled","isFeatureEnabled","genderFilterAvailable","genderId","genderValue","isFetching","genderFetching","t3","t4","Symbol","for","fields","Group","t5","url","data","app","group","activeGenderId","activeGenderValue","t6","enabled","payload","isLoading","isLoadingPayload","t7","warnings","validationPending","t8","id","gender","groupMemberships","t9","name","displayLabel","defaultTitle","shouldAutoPopulateTitle","shouldClearAutoPopulatedTitle","handleGenderToggle","t10","conversationId","dispatch","popTo","conversation_id","notificationSuccess","kind","handleCreateSuccess","t11","onSuccess","mutate","handleSave","isPending","t12","FormContent","filteredMemberCount","adultMembers","length","t13","fetchNextPage","isFetchingNextPage","memberData","loadingMore","onEndReached","t14","t15","t16","disabled","onPress","infoText","t17","children","onGenderToggle","styles","useStyles","inputRef","currentPerson","membershipsCount","m","find","myGroupsMembership","isLeader","role","childMembers","hasChildren","displayCount","memberHeaderLabel","showMemberError","isError","current","focus","handleTitleSectionPress","variant","groupName","style","toSection","titleInput","placeholder","autoFocus","titleSection","banner","appearance","description","memberSection","t18","formContent","colors","textColorDefaultPrimary","create","paddingBottom","flex","padding","flexDirection","gap","fontSize","select","ios","android","color","marginTop"],"sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport React, { useCallback, useMemo, useRef, useState } from 'react'\nimport { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native'\nimport { Banner, ChildNotice, Heading, Text } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { KeyboardView } from '../../../components/display/keyboard_view'\nimport { AutoFocusAwareTextInput } from '../../../components/display/text_input'\nimport { useApiClient, useCurrentPerson, useSuspenseGet, useTheme } from '../../../hooks'\nimport { useGroupChatConversationPayload } from '../../../hooks/groups/use_group_chat_conversation_payload'\nimport {\n GroupMembersForNewConversationResult,\n useGroupMembersForNewConversation,\n} from '../../../hooks/groups/use_group_members_for_new_conversation'\nimport { useGroupsConversationCreate } from '../../../hooks/groups/use_groups_conversation_create'\nimport {\n type AvatarUpdatePayload,\n patchConversationAvatar,\n} from '../../../hooks/use_conversation_avatar_update'\nimport { useConversationValidate } from '../../../hooks/use_conversation_validate'\nimport { availableFeatures, useFeatures } from '../../../hooks/use_features'\nimport { useMyGender } from '../../../hooks/use_my_gender'\nimport { useUploadClient } from '../../../hooks/use_upload_client'\nimport { GroupsGroupResource } from '../../../types'\nimport { GraphId } from '../../../types/resources/group_resource'\nimport { pluralize } from '../../../utils'\nimport { genderDisplayLabel } from '../../../utils/gender_display_label'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { AvatarSelectionRow } from './avatar_selection_row'\nimport { Divider, FormList } from './form_list'\nimport { GenderFilterToggle } from './gender_filter_toggle'\n\ntype GroupsFormProps = {\n groupId: number\n chat_group_graph_id?: GraphId\n avatarSelection?: AvatarUpdatePayload\n}\n\nexport const GroupsForm = ({ groupId, chat_group_graph_id, avatarSelection }: GroupsFormProps) => {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const uploadClient = useUploadClient()\n const [title, setTitle] = useState('')\n const [genderFilterEnabled, setGenderFilterEnabled] = useState(false)\n const { featureEnabled } = useFeatures()\n const customAvatarsEnabled = featureEnabled(availableFeatures.custom_conversation_avatars)\n const safetyLockEnabled = featureEnabled(availableFeatures.conversation_safety_lock)\n const {\n isFeatureEnabled: genderFilterAvailable,\n genderId,\n genderValue,\n isFetching: genderFetching,\n } = useMyGender()\n const { data: group } = useSuspenseGet<GroupsGroupResource>({\n url: `/me/groups/${groupId}`,\n data: {\n fields: {\n Group: [],\n },\n },\n app: 'groups',\n })\n\n const activeGenderId = genderFilterEnabled ? genderId : null\n const activeGenderValue = genderFilterEnabled ? genderValue : null\n\n const { payload, isLoading: isLoadingPayload } = useGroupChatConversationPayload({\n groupId,\n enabled: safetyLockEnabled,\n })\n\n const { warnings, validationPending } = useConversationValidate({\n payload,\n isLoadingPayload,\n genderId: activeGenderId,\n enabled: safetyLockEnabled,\n })\n\n const groupMemberships = useGroupMembersForNewConversation({\n id: groupId,\n gender: activeGenderValue,\n })\n\n const handleGenderToggle = (enabled: boolean) => {\n const displayLabel = genderValue ? genderDisplayLabel(genderValue) : ''\n const defaultTitle = `${group.name} (${displayLabel})`\n const shouldAutoPopulateTitle = enabled && genderValue && title === ''\n const shouldClearAutoPopulatedTitle = !enabled && title === defaultTitle\n\n setGenderFilterEnabled(enabled)\n\n if (shouldAutoPopulateTitle) {\n setTitle(defaultTitle)\n } else if (shouldClearAutoPopulatedTitle) {\n setTitle('')\n }\n }\n\n const handleCreateSuccess = useCallback(\n (conversationId: number) => {\n navigation.dispatch(\n StackActions.popTo('Conversation', {\n conversation_id: conversationId,\n chat_group_graph_id,\n })\n )\n Haptic.notificationSuccess()\n\n if (avatarSelection && avatarSelection.kind !== 'clear') {\n patchConversationAvatar(apiClient, uploadClient, conversationId, avatarSelection)\n }\n },\n [apiClient, avatarSelection, chat_group_graph_id, navigation, uploadClient]\n )\n\n const { mutate: handleSave, isPending } = useGroupsConversationCreate({\n groupId,\n title,\n genderId: activeGenderId,\n onSuccess: handleCreateSuccess,\n })\n\n return (\n <KeyboardView>\n <FormList\n memberData={groupMemberships.adultMembers}\n loadingMore={groupMemberships.isFetchingNextPage}\n onEndReached={groupMemberships.fetchNextPage}\n FormContent={\n <FormContent\n group={group}\n title={title}\n setTitle={setTitle}\n genderFilterAvailable={genderFilterAvailable}\n genderFilterEnabled={genderFilterEnabled}\n genderValue={genderValue}\n genderFetching={genderFetching}\n onGenderToggle={handleGenderToggle}\n groupMemberships={groupMemberships}\n filteredMemberCount={groupMemberships.adultMembers.length}\n avatarSelection={avatarSelection}\n customAvatarsEnabled={customAvatarsEnabled}\n />\n }\n />\n <ActionButton\n disabled={!title || isPending || validationPending || warnings.length > 0}\n title=\"Start Conversation\"\n onPress={() => handleSave()}\n infoText=\"Conversation will be automatically updated if any members are added or removed from this group.\"\n warnings={warnings}\n />\n </KeyboardView>\n )\n}\n\ninterface FormContentProps {\n group: GroupsGroupResource\n title: string\n setTitle: (title: string) => void\n genderFilterAvailable: boolean\n genderFilterEnabled: boolean\n genderValue: string | null\n genderFetching: boolean\n onGenderToggle: (enabled: boolean) => void\n groupMemberships: GroupMembersForNewConversationResult\n filteredMemberCount: number\n avatarSelection?: AvatarUpdatePayload\n customAvatarsEnabled: boolean\n}\n\nfunction FormContent({\n group,\n title,\n setTitle,\n genderFilterAvailable,\n genderFilterEnabled,\n genderValue,\n genderFetching,\n onGenderToggle,\n groupMemberships,\n filteredMemberCount,\n avatarSelection,\n customAvatarsEnabled,\n}: FormContentProps) {\n const styles = useStyles()\n const inputRef = useRef<TextInput>(null)\n const currentPerson = useCurrentPerson()\n const { name, membershipsCount } = group\n\n const myGroupsMembership = useMemo(\n () => groupMemberships.data.find(m => m.id === currentPerson.id),\n [groupMemberships.data, currentPerson.id]\n )\n const isLeader = myGroupsMembership?.role === 'leader'\n\n const childMembers = groupMemberships.childMembers\n const hasChildren = childMembers.length > 0\n const displayCount = genderFilterEnabled ? filteredMemberCount : membershipsCount\n const memberHeaderLabel = `${pluralize(displayCount, 'member')} selected`\n\n const showMemberError = groupMemberships.isError\n\n const handleTitleSectionPress = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <Heading variant=\"h3\">To:</Heading>\n <Text style={styles.groupName}>{name}</Text>\n </View>\n <Divider />\n <Pressable style={styles.titleSection} onPress={handleTitleSectionPress}>\n <Heading variant=\"h3\">Title</Heading>\n <AutoFocusAwareTextInput\n placeholder=\"Topic of conversation (required)\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n inputRef={inputRef}\n />\n </Pressable>\n <Divider />\n {customAvatarsEnabled && (\n <>\n <AvatarSelectionRow avatarSelection={avatarSelection} />\n <Divider />\n </>\n )}\n {genderFilterAvailable && (\n <>\n <GenderFilterToggle\n genderValue={genderValue}\n isFetching={genderFetching}\n enabled={genderFilterEnabled}\n onToggle={onGenderToggle}\n />\n <Divider />\n </>\n )}\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{memberHeaderLabel}</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={isLeader} style={styles.banner} />\n )}\n {showMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading group members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const sectionPadding = 16\n const inputPadding = 8\n\n return StyleSheet.create({\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n flexDirection: 'row',\n gap: 8,\n },\n groupName: {\n fontSize: 18,\n flex: 1,\n },\n titleSection: {\n padding: sectionPadding,\n paddingBottom: Platform.select({\n ios: sectionPadding,\n android: sectionPadding - inputPadding,\n }),\n gap: Platform.select({\n ios: 8,\n android: 0,\n }),\n },\n titleInput: {\n fontSize: 18,\n color: colors.textColorDefaultPrimary,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"groups_form.js","names":["StackActions","useNavigation","React","useCallback","useMemo","useRef","useState","Platform","Pressable","StyleSheet","View","Banner","ChildNotice","Heading","Text","ActionButton","KeyboardView","AutoFocusAwareTextInput","useApiClient","useCurrentPerson","useSuspenseGet","useTheme","useGroupChatConversationPayload","useGroupMembersForNewConversation","useGroupsConversationCreate","patchConversationAvatar","useConversationValidate","availableFeatures","useFeatures","useMyGender","useUploadClient","pluralize","genderDisplayLabel","Haptic","AvatarSelectionRow","Divider","FormList","GenderFilterToggle","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GroupsForm","t0","$","_c","groupId","chat_group_graph_id","avatarSelection","navigation","apiClient","uploadClient","title","setTitle","genderFilterEnabled","setGenderFilterEnabled","featureEnabled","t1","custom_conversation_avatars","customAvatarsEnabled","t2","conversation_safety_lock","safetyLockEnabled","isFeatureEnabled","genderFilterAvailable","genderId","genderValue","isFetching","genderFetching","t3","t4","Symbol","for","fields","Group","t5","url","data","app","group","activeGenderId","activeGenderValue","t6","enabled","payload","isLoading","isLoadingPayload","t7","warnings","validationPending","t8","id","gender","groupMemberships","t9","name","displayLabel","defaultTitle","shouldAutoPopulateTitle","shouldClearAutoPopulatedTitle","handleGenderToggle","t10","conversationId","dispatch","popTo","conversation_id","notificationSuccess","kind","handleCreateSuccess","t11","onSuccess","mutate","handleSave","isPending","t12","FormContent","filteredMemberCount","adultMembers","length","t13","fetchNextPage","isFetchingNextPage","memberData","loadingMore","onEndReached","t14","t15","t16","disabled","onPress","infoText","t17","children","onGenderToggle","styles","useStyles","inputRef","currentPerson","membershipsCount","m","find","myGroupsMembership","isLeader","role","childMembers","hasChildren","displayCount","memberHeaderLabel","showMemberError","isError","current","focus","handleTitleSectionPress","variant","groupName","style","toSection","required","titleInput","placeholder","autoFocus","titleSection","banner","appearance","description","memberSection","t18","formContent","colors","statusErrorText","textColorDefaultPrimary","create","paddingBottom","flex","padding","flexDirection","gap","fontSize","select","ios","android","color","marginTop"],"sources":["../../../../src/screens/conversation_new/components/groups_form.tsx"],"sourcesContent":["import { StackActions, useNavigation } from '@react-navigation/native'\nimport React, { useCallback, useMemo, useRef, useState } from 'react'\nimport { Platform, Pressable, StyleSheet, TextInput, View } from 'react-native'\nimport { Banner, ChildNotice, Heading, Text } from '../../../components'\nimport { ActionButton } from '../../../components/display/action_button'\nimport { KeyboardView } from '../../../components/display/keyboard_view'\nimport { AutoFocusAwareTextInput } from '../../../components/display/text_input'\nimport { useApiClient, useCurrentPerson, useSuspenseGet, useTheme } from '../../../hooks'\nimport { useGroupChatConversationPayload } from '../../../hooks/groups/use_group_chat_conversation_payload'\nimport {\n GroupMembersForNewConversationResult,\n useGroupMembersForNewConversation,\n} from '../../../hooks/groups/use_group_members_for_new_conversation'\nimport { useGroupsConversationCreate } from '../../../hooks/groups/use_groups_conversation_create'\nimport {\n type AvatarUpdatePayload,\n patchConversationAvatar,\n} from '../../../hooks/use_conversation_avatar_update'\nimport { useConversationValidate } from '../../../hooks/use_conversation_validate'\nimport { availableFeatures, useFeatures } from '../../../hooks/use_features'\nimport { useMyGender } from '../../../hooks/use_my_gender'\nimport { useUploadClient } from '../../../hooks/use_upload_client'\nimport { GroupsGroupResource } from '../../../types'\nimport { GraphId } from '../../../types/resources/group_resource'\nimport { pluralize } from '../../../utils'\nimport { genderDisplayLabel } from '../../../utils/gender_display_label'\nimport { Haptic } from '../../../utils/native_adapters'\nimport { AvatarSelectionRow } from './avatar_selection_row'\nimport { Divider, FormList } from './form_list'\nimport { GenderFilterToggle } from './gender_filter_toggle'\n\ntype GroupsFormProps = {\n groupId: number\n chat_group_graph_id?: GraphId\n avatarSelection?: AvatarUpdatePayload\n}\n\nexport const GroupsForm = ({ groupId, chat_group_graph_id, avatarSelection }: GroupsFormProps) => {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const uploadClient = useUploadClient()\n const [title, setTitle] = useState('')\n const [genderFilterEnabled, setGenderFilterEnabled] = useState(false)\n const { featureEnabled } = useFeatures()\n const customAvatarsEnabled = featureEnabled(availableFeatures.custom_conversation_avatars)\n const safetyLockEnabled = featureEnabled(availableFeatures.conversation_safety_lock)\n const {\n isFeatureEnabled: genderFilterAvailable,\n genderId,\n genderValue,\n isFetching: genderFetching,\n } = useMyGender()\n const { data: group } = useSuspenseGet<GroupsGroupResource>({\n url: `/me/groups/${groupId}`,\n data: {\n fields: {\n Group: [],\n },\n },\n app: 'groups',\n })\n\n const activeGenderId = genderFilterEnabled ? genderId : null\n const activeGenderValue = genderFilterEnabled ? genderValue : null\n\n const { payload, isLoading: isLoadingPayload } = useGroupChatConversationPayload({\n groupId,\n enabled: safetyLockEnabled,\n })\n\n const { warnings, validationPending } = useConversationValidate({\n payload,\n isLoadingPayload,\n genderId: activeGenderId,\n enabled: safetyLockEnabled,\n })\n\n const groupMemberships = useGroupMembersForNewConversation({\n id: groupId,\n gender: activeGenderValue,\n })\n\n const handleGenderToggle = (enabled: boolean) => {\n const displayLabel = genderValue ? genderDisplayLabel(genderValue) : ''\n const defaultTitle = `${group.name} (${displayLabel})`\n const shouldAutoPopulateTitle = enabled && genderValue && title === ''\n const shouldClearAutoPopulatedTitle = !enabled && title === defaultTitle\n\n setGenderFilterEnabled(enabled)\n\n if (shouldAutoPopulateTitle) {\n setTitle(defaultTitle)\n } else if (shouldClearAutoPopulatedTitle) {\n setTitle('')\n }\n }\n\n const handleCreateSuccess = useCallback(\n (conversationId: number) => {\n navigation.dispatch(\n StackActions.popTo('Conversation', {\n conversation_id: conversationId,\n chat_group_graph_id,\n })\n )\n Haptic.notificationSuccess()\n\n if (avatarSelection && avatarSelection.kind !== 'clear') {\n patchConversationAvatar(apiClient, uploadClient, conversationId, avatarSelection)\n }\n },\n [apiClient, avatarSelection, chat_group_graph_id, navigation, uploadClient]\n )\n\n const { mutate: handleSave, isPending } = useGroupsConversationCreate({\n groupId,\n title,\n genderId: activeGenderId,\n onSuccess: handleCreateSuccess,\n })\n\n return (\n <KeyboardView>\n <FormList\n memberData={groupMemberships.adultMembers}\n loadingMore={groupMemberships.isFetchingNextPage}\n onEndReached={groupMemberships.fetchNextPage}\n FormContent={\n <FormContent\n group={group}\n title={title}\n setTitle={setTitle}\n genderFilterAvailable={genderFilterAvailable}\n genderFilterEnabled={genderFilterEnabled}\n genderValue={genderValue}\n genderFetching={genderFetching}\n onGenderToggle={handleGenderToggle}\n groupMemberships={groupMemberships}\n filteredMemberCount={groupMemberships.adultMembers.length}\n avatarSelection={avatarSelection}\n customAvatarsEnabled={customAvatarsEnabled}\n />\n }\n />\n <ActionButton\n disabled={!title || isPending || validationPending || warnings.length > 0}\n title=\"Start Conversation\"\n onPress={() => handleSave()}\n infoText=\"Conversation will be automatically updated if any members are added or removed from this group.\"\n warnings={warnings}\n />\n </KeyboardView>\n )\n}\n\ninterface FormContentProps {\n group: GroupsGroupResource\n title: string\n setTitle: (title: string) => void\n genderFilterAvailable: boolean\n genderFilterEnabled: boolean\n genderValue: string | null\n genderFetching: boolean\n onGenderToggle: (enabled: boolean) => void\n groupMemberships: GroupMembersForNewConversationResult\n filteredMemberCount: number\n avatarSelection?: AvatarUpdatePayload\n customAvatarsEnabled: boolean\n}\n\nfunction FormContent({\n group,\n title,\n setTitle,\n genderFilterAvailable,\n genderFilterEnabled,\n genderValue,\n genderFetching,\n onGenderToggle,\n groupMemberships,\n filteredMemberCount,\n avatarSelection,\n customAvatarsEnabled,\n}: FormContentProps) {\n const styles = useStyles()\n const inputRef = useRef<TextInput>(null)\n const currentPerson = useCurrentPerson()\n const { name, membershipsCount } = group\n\n const myGroupsMembership = useMemo(\n () => groupMemberships.data.find(m => m.id === currentPerson.id),\n [groupMemberships.data, currentPerson.id]\n )\n const isLeader = myGroupsMembership?.role === 'leader'\n\n const childMembers = groupMemberships.childMembers\n const hasChildren = childMembers.length > 0\n const displayCount = genderFilterEnabled ? filteredMemberCount : membershipsCount\n const memberHeaderLabel = `${pluralize(displayCount, 'member')} selected`\n\n const showMemberError = groupMemberships.isError\n\n const handleTitleSectionPress = useCallback(() => {\n inputRef.current?.focus()\n }, [])\n\n return (\n <View style={styles.formContent}>\n <View style={styles.toSection}>\n <Heading variant=\"h3\">To:</Heading>\n <Text style={styles.groupName}>{name}</Text>\n </View>\n <Divider />\n <Pressable style={styles.titleSection} onPress={handleTitleSectionPress}>\n <Heading variant=\"h3\">\n Title <Text style={styles.required}>*</Text>\n </Heading>\n <AutoFocusAwareTextInput\n placeholder=\"Topic of conversation\"\n value={title}\n onChangeText={setTitle}\n style={styles.titleInput}\n autoFocus={true}\n inputRef={inputRef}\n />\n </Pressable>\n <Divider />\n {customAvatarsEnabled && (\n <>\n <AvatarSelectionRow avatarSelection={avatarSelection} />\n <Divider />\n </>\n )}\n {genderFilterAvailable && (\n <>\n <GenderFilterToggle\n genderValue={genderValue}\n isFetching={genderFetching}\n enabled={genderFilterEnabled}\n onToggle={onGenderToggle}\n />\n <Divider />\n </>\n )}\n <View style={styles.memberSection}>\n <Heading variant=\"h3\">{memberHeaderLabel}</Heading>\n {hasChildren && (\n <ChildNotice childMembers={childMembers} showMembers={isLeader} style={styles.banner} />\n )}\n {showMemberError && (\n <Banner\n appearance=\"error\"\n description=\"There was an issue loading group members, please refresh and try again.\"\n style={styles.banner}\n />\n )}\n </View>\n </View>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const sectionPadding = 16\n const inputPadding = 8\n\n return StyleSheet.create({\n formContent: {\n paddingBottom: sectionPadding,\n flex: 1,\n },\n toSection: {\n padding: sectionPadding,\n flexDirection: 'row',\n gap: 8,\n },\n groupName: {\n fontSize: 18,\n flex: 1,\n },\n titleSection: {\n padding: sectionPadding,\n paddingBottom: Platform.select({\n ios: sectionPadding,\n android: sectionPadding - inputPadding,\n }),\n gap: Platform.select({\n ios: 8,\n android: 0,\n }),\n },\n titleInput: {\n fontSize: 18,\n color: colors.textColorDefaultPrimary,\n },\n required: {\n color: colors.statusErrorText,\n },\n memberSection: {\n padding: sectionPadding,\n paddingBottom: 0,\n },\n banner: {\n marginTop: 16,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAqB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAGL,iBAAiB,EAIlB,MAAM,0BAA0B,CAAA;AAiCjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAGjF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAA;AAE/E,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,uBAAuB,2CAkBpE;AA2KD,UAAU,4BAA6B,SAAQ,gBAAgB;IAC7D,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,eAAO,MAAM,uBAAuB,GAAI,8DAOrC,4BAA4B,4CAqC9B,CAAA"}
1
+ {"version":3,"file":"conversation_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_screen.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,gBAAgB,EAAqB,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAGL,iBAAiB,EAIlB,MAAM,0BAA0B,CAAA;AAoCjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AAOjF,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAA;AAE/E,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,uBAAuB,2CAkBpE;AAyPD,UAAU,4BAA6B,SAAQ,gBAAgB;IAC7D,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,yBAAyB,CAAA;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,eAAO,MAAM,uBAAuB,GAAI,8DAOrC,4BAA4B,4CAqC9B,CAAA"}