@planningcenter/chat-react-native 4.2.1-qa-staging.3 → 4.2.1-rc.0

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 (169) hide show
  1. package/build/components/conversation/message_form.d.ts +1 -2
  2. package/build/components/conversation/message_form.d.ts.map +1 -1
  3. package/build/components/conversation/message_form.js +51 -54
  4. package/build/components/conversation/message_form.js.map +1 -1
  5. package/build/components/conversation/message_list.d.ts +2 -3
  6. package/build/components/conversation/message_list.d.ts.map +1 -1
  7. package/build/components/conversation/message_list.js +66 -152
  8. package/build/components/conversation/message_list.js.map +1 -1
  9. package/build/contexts/conversation_context.d.ts +1 -3
  10. package/build/contexts/conversation_context.d.ts.map +1 -1
  11. package/build/contexts/conversation_context.js +18 -23
  12. package/build/contexts/conversation_context.js.map +1 -1
  13. package/build/hooks/index.d.ts +0 -1
  14. package/build/hooks/index.d.ts.map +1 -1
  15. package/build/hooks/index.js +0 -1
  16. package/build/hooks/index.js.map +1 -1
  17. package/build/hooks/paginator_meta.d.ts +1 -3
  18. package/build/hooks/paginator_meta.d.ts.map +1 -1
  19. package/build/hooks/paginator_meta.js +8 -25
  20. package/build/hooks/paginator_meta.js.map +1 -1
  21. package/build/hooks/use_api.d.ts.map +1 -1
  22. package/build/hooks/use_api.js +8 -5
  23. package/build/hooks/use_api.js.map +1 -1
  24. package/build/hooks/use_conversation_messages.d.ts +2 -9
  25. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  26. package/build/hooks/use_conversation_messages.js +45 -84
  27. package/build/hooks/use_conversation_messages.js.map +1 -1
  28. package/build/hooks/use_conversation_messages_jolt_events.d.ts +1 -17
  29. package/build/hooks/use_conversation_messages_jolt_events.d.ts.map +1 -1
  30. package/build/hooks/use_conversation_messages_jolt_events.js +80 -89
  31. package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
  32. package/build/hooks/use_mark_latest_message_read.d.ts +1 -2
  33. package/build/hooks/use_mark_latest_message_read.d.ts.map +1 -1
  34. package/build/hooks/use_mark_latest_message_read.js +3 -4
  35. package/build/hooks/use_mark_latest_message_read.js.map +1 -1
  36. package/build/hooks/use_message_create_or_update.d.ts.map +1 -1
  37. package/build/hooks/use_message_create_or_update.js +80 -91
  38. package/build/hooks/use_message_create_or_update.js.map +1 -1
  39. package/build/hooks/use_message_reaction_toggle.d.ts.map +1 -1
  40. package/build/hooks/use_message_reaction_toggle.js +40 -45
  41. package/build/hooks/use_message_reaction_toggle.js.map +1 -1
  42. package/build/hooks/use_suspense_api.d.ts.map +1 -1
  43. package/build/hooks/use_suspense_api.js +8 -5
  44. package/build/hooks/use_suspense_api.js.map +1 -1
  45. package/build/screens/conversation_new/components/services_form.js +8 -9
  46. package/build/screens/conversation_new/components/services_form.js.map +1 -1
  47. package/build/screens/conversation_screen.d.ts +0 -1
  48. package/build/screens/conversation_screen.d.ts.map +1 -1
  49. package/build/screens/conversation_screen.js +251 -466
  50. package/build/screens/conversation_screen.js.map +1 -1
  51. package/build/screens/message_actions_screen.d.ts.map +1 -1
  52. package/build/screens/message_actions_screen.js +26 -21
  53. package/build/screens/message_actions_screen.js.map +1 -1
  54. package/build/screens/message_report_screen.d.ts.map +1 -1
  55. package/build/screens/message_report_screen.js +44 -17
  56. package/build/screens/message_report_screen.js.map +1 -1
  57. package/build/screens/reactions_screen.d.ts.map +1 -1
  58. package/build/screens/reactions_screen.js +88 -70
  59. package/build/screens/reactions_screen.js.map +1 -1
  60. package/build/types/api_primitives.d.ts +0 -2
  61. package/build/types/api_primitives.d.ts.map +1 -1
  62. package/build/types/api_primitives.js.map +1 -1
  63. package/build/types/resources/member.d.ts +0 -1
  64. package/build/types/resources/member.d.ts.map +1 -1
  65. package/build/types/resources/member.js.map +1 -1
  66. package/build/utils/cache/optimistically_update_message.d.ts +1 -2
  67. package/build/utils/cache/optimistically_update_message.d.ts.map +1 -1
  68. package/build/utils/cache/optimistically_update_message.js +4 -4
  69. package/build/utils/cache/optimistically_update_message.js.map +1 -1
  70. package/build/utils/client/types.d.ts +0 -1
  71. package/build/utils/client/types.d.ts.map +1 -1
  72. package/build/utils/client/types.js.map +1 -1
  73. package/build/utils/generate_placeholder_ulid.d.ts +6 -0
  74. package/build/utils/generate_placeholder_ulid.d.ts.map +1 -1
  75. package/build/utils/generate_placeholder_ulid.js +2 -2
  76. package/build/utils/generate_placeholder_ulid.js.map +1 -1
  77. package/build/utils/request/get_messages.d.ts +6 -18
  78. package/build/utils/request/get_messages.d.ts.map +1 -1
  79. package/build/utils/request/get_messages.js +12 -10
  80. package/build/utils/request/get_messages.js.map +1 -1
  81. package/package.json +3 -3
  82. package/src/__tests__/hooks/paginator_meta.test.ts +2 -73
  83. package/src/components/conversation/__tests__/message_list.test.tsx +0 -42
  84. package/src/components/conversation/message_form.tsx +0 -3
  85. package/src/components/conversation/message_list.tsx +4 -58
  86. package/src/contexts/conversation_context.tsx +1 -6
  87. package/src/hooks/index.ts +0 -1
  88. package/src/hooks/paginator_meta.ts +5 -29
  89. package/src/hooks/use_api.ts +5 -4
  90. package/src/hooks/use_conversation_messages.ts +11 -52
  91. package/src/hooks/use_conversation_messages_jolt_events.ts +43 -62
  92. package/src/hooks/use_mark_latest_message_read.ts +3 -4
  93. package/src/hooks/use_message_create_or_update.ts +8 -8
  94. package/src/hooks/use_message_reaction_toggle.ts +1 -3
  95. package/src/hooks/use_suspense_api.ts +5 -4
  96. package/src/screens/conversation_new/components/services_form.tsx +5 -5
  97. package/src/screens/conversation_screen.tsx +16 -119
  98. package/src/screens/message_actions_screen.tsx +5 -3
  99. package/src/screens/message_report_screen.tsx +3 -2
  100. package/src/screens/reactions_screen.tsx +4 -2
  101. package/src/types/api_primitives.ts +0 -2
  102. package/src/types/resources/member.ts +0 -1
  103. package/src/utils/cache/optimistically_update_message.ts +5 -2
  104. package/src/utils/client/types.ts +0 -1
  105. package/src/utils/generate_placeholder_ulid.ts +2 -2
  106. package/src/utils/request/get_messages.ts +14 -12
  107. package/build/components/conversation/anchor_not_found_boundary.d.ts +0 -18
  108. package/build/components/conversation/anchor_not_found_boundary.d.ts.map +0 -1
  109. package/build/components/conversation/anchor_not_found_boundary.js +0 -20
  110. package/build/components/conversation/anchor_not_found_boundary.js.map +0 -1
  111. package/build/hooks/use_conversation_message_lookup.d.ts +0 -7
  112. package/build/hooks/use_conversation_message_lookup.d.ts.map +0 -1
  113. package/build/hooks/use_conversation_message_lookup.js +0 -52
  114. package/build/hooks/use_conversation_message_lookup.js.map +0 -1
  115. package/build/hooks/use_direct_message_eligibility.d.ts +0 -14
  116. package/build/hooks/use_direct_message_eligibility.d.ts.map +0 -1
  117. package/build/hooks/use_direct_message_eligibility.js +0 -87
  118. package/build/hooks/use_direct_message_eligibility.js.map +0 -1
  119. package/build/hooks/use_fetch_newer_messages.d.ts +0 -8
  120. package/build/hooks/use_fetch_newer_messages.d.ts.map +0 -1
  121. package/build/hooks/use_fetch_newer_messages.js +0 -62
  122. package/build/hooks/use_fetch_newer_messages.js.map +0 -1
  123. package/build/hooks/use_fetch_newer_on_foreground.d.ts +0 -8
  124. package/build/hooks/use_fetch_newer_on_foreground.d.ts.map +0 -1
  125. package/build/hooks/use_fetch_newer_on_foreground.js +0 -42
  126. package/build/hooks/use_fetch_newer_on_foreground.js.map +0 -1
  127. package/build/hooks/use_held_back_messages.d.ts +0 -11
  128. package/build/hooks/use_held_back_messages.d.ts.map +0 -1
  129. package/build/hooks/use_held_back_messages.js +0 -24
  130. package/build/hooks/use_held_back_messages.js.map +0 -1
  131. package/build/utils/cache/find_message_in_caches.d.ts +0 -4
  132. package/build/utils/cache/find_message_in_caches.d.ts.map +0 -1
  133. package/build/utils/cache/find_message_in_caches.js +0 -16
  134. package/build/utils/cache/find_message_in_caches.js.map +0 -1
  135. package/build/utils/cache/prepend_newer_page.d.ts +0 -7
  136. package/build/utils/cache/prepend_newer_page.d.ts.map +0 -1
  137. package/build/utils/cache/prepend_newer_page.js +0 -15
  138. package/build/utils/cache/prepend_newer_page.js.map +0 -1
  139. package/build/utils/gated_message_cache.d.ts +0 -7
  140. package/build/utils/gated_message_cache.d.ts.map +0 -1
  141. package/build/utils/gated_message_cache.js +0 -13
  142. package/build/utils/gated_message_cache.js.map +0 -1
  143. package/build/utils/ulid.d.ts +0 -3
  144. package/build/utils/ulid.d.ts.map +0 -1
  145. package/build/utils/ulid.js +0 -7
  146. package/build/utils/ulid.js.map +0 -1
  147. package/src/__tests__/hooks/use_conversation_messages.test.ts +0 -22
  148. package/src/__tests__/hooks/use_conversation_messages_jolt_events.test.ts +0 -33
  149. package/src/__tests__/hooks/use_direct_message_eligibility.test.tsx +0 -83
  150. package/src/__tests__/screens/conversation_new/components/services_form.test.tsx +0 -91
  151. package/src/__tests__/utils/gated_message_cache.test.ts +0 -26
  152. package/src/__tests__/utils/request/get_messages.test.ts +0 -24
  153. package/src/__tests__/utils/ulid.test.ts +0 -15
  154. package/src/components/conversation/__tests__/anchor_not_found_boundary.test.tsx +0 -51
  155. package/src/components/conversation/anchor_not_found_boundary.tsx +0 -21
  156. package/src/hooks/__tests__/use_fetch_newer_messages.test.tsx +0 -68
  157. package/src/hooks/__tests__/use_held_back_messages.test.tsx +0 -60
  158. package/src/hooks/__tests__/use_message_reaction_toggle.test.tsx +0 -73
  159. package/src/hooks/use_conversation_message_lookup.ts +0 -29
  160. package/src/hooks/use_direct_message_eligibility.ts +0 -40
  161. package/src/hooks/use_fetch_newer_messages.ts +0 -44
  162. package/src/hooks/use_fetch_newer_on_foreground.ts +0 -25
  163. package/src/hooks/use_held_back_messages.ts +0 -33
  164. package/src/utils/cache/__tests__/find_message_in_caches.test.ts +0 -37
  165. package/src/utils/cache/__tests__/prepend_newer_page.test.ts +0 -34
  166. package/src/utils/cache/find_message_in_caches.ts +0 -20
  167. package/src/utils/cache/prepend_newer_page.ts +0 -19
  168. package/src/utils/gated_message_cache.ts +0 -19
  169. package/src/utils/ulid.ts +0 -11
@@ -13,9 +13,8 @@ interface MessagesFormRootProps extends ViewProps {
13
13
  replyRootId?: string | null;
14
14
  replyRootAuthorFirstName?: string | null;
15
15
  onFlaggedInMessageForm?: (id: string) => void;
16
- onBeforeSubmit?: () => void;
17
16
  }
18
- declare function MessageFormRoot({ conversation, currentlyEditingMessage, children, replyRootId, replyRootAuthorFirstName, onFlaggedInMessageForm, onBeforeSubmit, }: MessagesFormRootProps): import("react/jsx-runtime").JSX.Element;
17
+ declare function MessageFormRoot({ conversation, currentlyEditingMessage, children, replyRootId, replyRootAuthorFirstName, onFlaggedInMessageForm, }: MessagesFormRootProps): import("react/jsx-runtime").JSX.Element;
19
18
  declare function MessageFormInput(): import("react/jsx-runtime").JSX.Element;
20
19
  declare function MessageFormSubmitBtn(): import("react/jsx-runtime").JSX.Element;
21
20
  declare function MessageFormAttachmentPicker(): import("react/jsx-runtime").JSX.Element | null;
@@ -1 +1 @@
1
- {"version":3,"file":"message_form.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/message_form.tsx"],"names":[],"mappings":"AAEA,OAAO,EAQL,SAAS,EAEV,MAAM,cAAc,CAAA;AAiBrB,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AA6BnE,eAAO,MAAM,WAAW;;;;;;CAOvB,CAAA;AAED,UAAU,qBAAsB,SAAQ,SAAS;IAC/C,YAAY,EAAE,oBAAoB,CAAA;IAClC,uBAAuB,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAChD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,sBAAsB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B;AAmCD,iBAAS,eAAe,CAAC,EACvB,YAAY,EACZ,uBAAuB,EACvB,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,GACf,EAAE,qBAAqB,2CA8KvB;AAyID,iBAAS,gBAAgB,4CAyDxB;AAcD,iBAAS,oBAAoB,4CAgD5B;AAED,iBAAS,2BAA2B,mDAuHnC;AAED,iBAAS,mBAAmB,mDAkC3B"}
1
+ {"version":3,"file":"message_form.d.ts","sourceRoot":"","sources":["../../../src/components/conversation/message_form.tsx"],"names":[],"mappings":"AAEA,OAAO,EAQL,SAAS,EAEV,MAAM,cAAc,CAAA;AAiBrB,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AA6BnE,eAAO,MAAM,WAAW;;;;;;CAOvB,CAAA;AAED,UAAU,qBAAsB,SAAQ,SAAS;IAC/C,YAAY,EAAE,oBAAoB,CAAA;IAClC,uBAAuB,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IAChD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,sBAAsB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C;AAmCD,iBAAS,eAAe,CAAC,EACvB,YAAY,EACZ,uBAAuB,EACvB,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,sBAAsB,GACvB,EAAE,qBAAqB,2CA6KvB;AAyID,iBAAS,gBAAgB,4CAyDxB;AAcD,iBAAS,oBAAoB,4CAgD5B;AAED,iBAAS,2BAA2B,mDAuHnC;AAED,iBAAS,mBAAmB,mDAkC3B"}
@@ -49,15 +49,14 @@ const GIPHY_MAX_LENGTH = 50;
49
49
  const MAX_MESSAGE_LENGTH = 5000;
50
50
  const PLACEHOLDER_FONT_SCALE_THRESHOLD = 1.7;
51
51
  function MessageFormRoot(t0) {
52
- const $ = _c(89);
52
+ const $ = _c(88);
53
53
  const {
54
54
  conversation,
55
55
  currentlyEditingMessage,
56
56
  children,
57
57
  replyRootId,
58
58
  replyRootAuthorFirstName,
59
- onFlaggedInMessageForm,
60
- onBeforeSubmit
59
+ onFlaggedInMessageForm
61
60
  } = t0;
62
61
  const {
63
62
  giphyApiKey
@@ -298,7 +297,7 @@ function MessageFormRoot(t0) {
298
297
  }
299
298
  const navigateToSendGiphyAfterKeyboardHides = t21;
300
299
  let t22;
301
- if ($[51] !== attachmentUploader.attachments || $[52] !== canGiphy || $[53] !== canSubmit || $[54] !== currentlyEditingMessage || $[55] !== mutateAsync || $[56] !== navigateToSendGiphyAfterKeyboardHides || $[57] !== onBeforeSubmit || $[58] !== reset || $[59] !== text || $[60] !== usingGiphy) {
300
+ if ($[51] !== attachmentUploader.attachments || $[52] !== canGiphy || $[53] !== canSubmit || $[54] !== currentlyEditingMessage || $[55] !== mutateAsync || $[56] !== navigateToSendGiphyAfterKeyboardHides || $[57] !== reset || $[58] !== text || $[59] !== usingGiphy) {
302
301
  t22 = () => {
303
302
  if (!canSubmit) {
304
303
  return;
@@ -316,7 +315,6 @@ function MessageFormRoot(t0) {
316
315
  });
317
316
  reset();
318
317
  } else {
319
- onBeforeSubmit?.();
320
318
  mutateAsync({
321
319
  text: messageText,
322
320
  attachments: attachmentsForSubmit
@@ -331,34 +329,33 @@ function MessageFormRoot(t0) {
331
329
  $[54] = currentlyEditingMessage;
332
330
  $[55] = mutateAsync;
333
331
  $[56] = navigateToSendGiphyAfterKeyboardHides;
334
- $[57] = onBeforeSubmit;
335
- $[58] = reset;
336
- $[59] = text;
337
- $[60] = usingGiphy;
338
- $[61] = t22;
332
+ $[57] = reset;
333
+ $[58] = text;
334
+ $[59] = usingGiphy;
335
+ $[60] = t22;
339
336
  } else {
340
- t22 = $[61];
337
+ t22 = $[60];
341
338
  }
342
339
  const handleSubmit = t22;
343
340
  let t23;
344
341
  let t24;
345
- if ($[62] !== currentlyEditingMessage) {
342
+ if ($[61] !== currentlyEditingMessage) {
346
343
  t23 = () => {
347
344
  if (currentlyEditingMessage) {
348
345
  setText(currentlyEditingMessage.text || "");
349
346
  }
350
347
  };
351
348
  t24 = [currentlyEditingMessage];
352
- $[62] = currentlyEditingMessage;
353
- $[63] = t23;
354
- $[64] = t24;
349
+ $[61] = currentlyEditingMessage;
350
+ $[62] = t23;
351
+ $[63] = t24;
355
352
  } else {
356
- t23 = $[63];
357
- t24 = $[64];
353
+ t23 = $[62];
354
+ t24 = $[63];
358
355
  }
359
356
  useEffect(t23, t24);
360
357
  let t25;
361
- if ($[65] !== attachmentUploader || $[66] !== canGiphy || $[67] !== currentlyEditingMessage || $[68] !== disabled || $[69] !== handleSubmit || $[70] !== inputEditable || $[71] !== replyRootAuthorFirstName || $[72] !== replyRootId || $[73] !== reset || $[74] !== text || $[75] !== usingGiphy) {
358
+ if ($[64] !== attachmentUploader || $[65] !== canGiphy || $[66] !== currentlyEditingMessage || $[67] !== disabled || $[68] !== handleSubmit || $[69] !== inputEditable || $[70] !== replyRootAuthorFirstName || $[71] !== replyRootId || $[72] !== reset || $[73] !== text || $[74] !== usingGiphy) {
362
359
  t25 = {
363
360
  text,
364
361
  setText,
@@ -374,71 +371,71 @@ function MessageFormRoot(t0) {
374
371
  replyRootId,
375
372
  replyRootAuthorFirstName
376
373
  };
377
- $[65] = attachmentUploader;
378
- $[66] = canGiphy;
379
- $[67] = currentlyEditingMessage;
380
- $[68] = disabled;
381
- $[69] = handleSubmit;
382
- $[70] = inputEditable;
383
- $[71] = replyRootAuthorFirstName;
384
- $[72] = replyRootId;
385
- $[73] = reset;
386
- $[74] = text;
387
- $[75] = usingGiphy;
388
- $[76] = t25;
389
- } else {
390
- t25 = $[76];
374
+ $[64] = attachmentUploader;
375
+ $[65] = canGiphy;
376
+ $[66] = currentlyEditingMessage;
377
+ $[67] = disabled;
378
+ $[68] = handleSubmit;
379
+ $[69] = inputEditable;
380
+ $[70] = replyRootAuthorFirstName;
381
+ $[71] = replyRootId;
382
+ $[72] = reset;
383
+ $[73] = text;
384
+ $[74] = usingGiphy;
385
+ $[75] = t25;
386
+ } else {
387
+ t25 = $[75];
391
388
  }
392
389
  let t26;
393
390
  let t27;
394
391
  let t28;
395
- if ($[77] === Symbol.for("react.memo_cache_sentinel")) {
392
+ if ($[76] === Symbol.for("react.memo_cache_sentinel")) {
396
393
  t26 = /*#__PURE__*/_jsx(EditingIndicator, {});
397
394
  t27 = /*#__PURE__*/_jsx(ReplyIndicator, {});
398
395
  t28 = /*#__PURE__*/_jsx(FlaggedContentBanner, {});
399
- $[77] = t26;
400
- $[78] = t27;
401
- $[79] = t28;
396
+ $[76] = t26;
397
+ $[77] = t27;
398
+ $[78] = t28;
402
399
  } else {
403
- t26 = $[77];
404
- t27 = $[78];
405
- t28 = $[79];
400
+ t26 = $[76];
401
+ t27 = $[77];
402
+ t28 = $[78];
406
403
  }
407
404
  let t29;
408
- if ($[80] !== children || $[81] !== styles.textInputContainer) {
405
+ if ($[79] !== children || $[80] !== styles.textInputContainer) {
409
406
  t29 = /*#__PURE__*/_jsx(View, {
410
407
  style: styles.textInputContainer,
411
408
  children: children
412
409
  });
413
- $[80] = children;
414
- $[81] = styles.textInputContainer;
415
- $[82] = t29;
410
+ $[79] = children;
411
+ $[80] = styles.textInputContainer;
412
+ $[81] = t29;
416
413
  } else {
417
- t29 = $[82];
414
+ t29 = $[81];
418
415
  }
419
416
  let t30;
420
- if ($[83] !== styles.container || $[84] !== t29) {
417
+ if ($[82] !== styles.container || $[83] !== t29) {
421
418
  t30 = /*#__PURE__*/_jsxs(View, {
422
419
  style: styles.container,
423
420
  children: [t26, t27, t28, t29]
424
421
  });
425
- $[83] = styles.container;
426
- $[84] = t29;
427
- $[85] = t30;
422
+ $[82] = styles.container;
423
+ $[83] = t29;
424
+ $[84] = t30;
428
425
  } else {
429
- t30 = $[85];
426
+ t30 = $[84];
430
427
  }
431
428
  let t31;
432
- if ($[86] !== t25 || $[87] !== t30) {
429
+ if ($[85] !== t25 || $[86] !== t30) {
433
430
  t31 = /*#__PURE__*/_jsx(MessageFormContext.Provider, {
434
431
  value: t25,
435
432
  children: t30
436
433
  });
437
- $[86] = t25;
438
- $[87] = t30;
439
- $[88] = t31;
434
+ $[85] = t25;
435
+ $[86] = t30;
436
+ $[87] = t31;
440
437
  } else {
441
- t31 = $[88];
438
+ t31 = $[87];
442
439
  }
443
440
  return t31;
444
441
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message_form.js","names":["useNavigation","useTheme","useNavigationTheme","useRoute","React","useCallback","useContext","useEffect","useState","Linking","Platform","Pressable","ScrollView","StyleSheet","TextInput","View","Keyboard","LinearGradient","Heading","Icon","IconButton","Text","TextButton","ChatContext","useCreateAndroidRippleColor","useInteractionTintedBackgroundColor","useScalableNumberOfLines","useFontScale","useAttachmentUploader","useBroadcastTypingStatus","useChatConfiguration","useMessageCreateOrUpdate","useMessageDraft","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","platformFontWeightMedium","platformPressedOpacityStyle","pickAttachmentPreviewKind","canSubmitMessage","isInputEditable","hasMessageText","stripEmptyTextCharacters","DocumentPicker","Haptic","ImagePicker","tokens","Button","BannerPrimitive","MessageFormAttachmentFile","MessageFormAttachmentImage","MessageFormAttachmentVideo","jsx","_jsx","jsxs","_jsxs","MessageForm","Root","MessageFormRoot","MessageFormInput","SubmitButton","MessageFormSubmitBtn","AttachmentPicker","MessageFormAttachmentPicker","Commands","MessageFormCommands","MessageFormContext","createContext","text","setText","_text","onSubmit","disabled","inputEditable","canGiphy","usingGiphy","setUsingGiphy","_usingGiphy","currentlyEditingMessage","reset","replyRootId","undefined","replyRootAuthorFirstName","GIPHY_MAX_LENGTH","MAX_MESSAGE_LENGTH","PLACEHOLDER_FONT_SCALE_THRESHOLD","t0","$","_c","conversation","children","onFlaggedInMessageForm","onBeforeSubmit","giphyApiKey","styles","useMessageFormStyles","draft","saveDraft","clearDraft","t1","navigation","route","t2","t3","id","conversationId","message","status","isPending","resetMutation","mutateAsync","t4","attachments","t5","draftAttachments","attachmentUploader","resetAttachmentUploader","t6","setParams","editing_message_id","t7","t8","startsWith","t10","t9","t11","t12","params","clear_input","t13","t14","timeoutId","setTimeout","clearTimeout","t15","t16","pendingUploads","t17","flaggedAttachmentCount","t18","attachmentIds","length","conversationDisabled","hasFlaggedAttachments","hasText","hasSendableAttachments","canSubmit","t19","t20","t21","isVisible","OS","navigate","conversation_id","search_term","keyboardListener","addListener","remove","navigateToSendGiphyAfterKeyboardHides","t22","State","blurTextInput","currentlyFocusedInput","impactLight","attachmentsForSubmit","filter","_temp","map","_temp2","messageText","handleSubmit","t23","t24","t25","t26","t27","t28","Symbol","for","EditingIndicator","ReplyIndicator","FlaggedContentBanner","t29","textInputContainer","style","t30","container","t31","Provider","value","attachment","type","file","a","MessageFormAttachments","numberOfAttachments","messageFormAttachments","kind","name","removeAttachment","uri","contentType","alt","width","height","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","getFileType","kinds","Set","size","isSingular","bb0","flaggedAttachments","_temp3","flaggedCount","fileType","buttonTitle","StatusIcon","BannerMessage","removeFlaggedAttachments","appearance","onPress","flaggedBannerButtonRow","StaticLayout","Content","flaggedBannerContainer","flagged","flaggedBannerLink","_temp4","accessibilityRole","contentGuidelinesLink","flaggedBannerText","openURL","theme","fontScale","attachmentError","errorMessage","broadcastTypingStatus","newText","handleTextChange","compactPlaceholder","placeholder","inputErrorMessage","giphyBadge","giphyBadgeIcon","giphyBadgeText","variant","textInputWithGiphy","textInput","colors","textColorDefaultPlaceholder","testID","multiline","placeholderTextColor","maxLength","submitBehavior","textInputRow","textInputBoundary","SUBMIT_ACCESSIBILITY_LABEL_MAP","giphy","editing","send","SUBMIT_ICON_NAME_MAP","formStateKey","colorKey","interactionStart","buttonStart","interaction","interactionEnd","buttonEnd","fillColorButtonNeutralSolidDisabled","colorMap","color","androidRippleColor","gradientColors","submitIconDisabled","submitIcon","iconStyles","submitPressableWrapper","pressed","borderless","foreground","x","y","accessibilityElementsHidden","submitGradientWrapper","start","end","accessibilityLabel","android_ripple","allowedMimeTypes","isOpen","setIsOpen","uploadImagePickerResult","result","canceled","filteredAssets","assets","_temp5","_temp6","handleFilesAttached","uploadDocumentPickerResult","result_0","filteredAssets_0","_temp7","_temp8","result_1","openCameraAsync","openCamera","result_2","openImageLibraryAsync","pickImage","result_3","openAsync","mimeTypes","pickFile","attachmentPickerButton","attachmentPickerButtonsContainer","accessibilityHint","configured","formButton","attachmentPicker","asset_2","asset","mimeType","asset_1","asset_0","fileName","split","pop","fileSize","FormIndicatorRow","title","buttonText","iconName","goBack","scalableNumberOfLines","formIndicatorRowIcon","formIndicatorRowTitle","formIndicatorRowTitleContainer","formIndicatorRow","navigationTheme","giphyBadgeBackgroundColor","card","borderColorDefaultBase","borderColorDefaultDim","fillColorNeutral050Base","fillColorNeutral070","iconColorDefaultDisabled","iconColorDefaultSecondary","statusErrorText","textColorDefaultPrimary","create","borderColor","borderTopWidth","padding","backgroundColor","flexDirection","alignItems","gap","overflow","borderRadius","borderWidth","flex","paddingBottom","paddingTop","select","ios","default","textAlignVertical","paddingHorizontal","justifyContent","fontSize","maxHeight","paddingLeft","paddingVertical","marginLeft","marginBottom","colorNeutral100White","position","left","bottom","zIndex","elevation","textDecorationLine","marginTop","fontWeight","textTransform","flexShrink"],"sources":["../../../src/components/conversation/message_form.tsx"],"sourcesContent":["import { useNavigation, useTheme as useNavigationTheme, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useContext, useEffect, useState } from 'react'\nimport {\n Linking,\n Platform,\n Pressable,\n ScrollView,\n StyleSheet,\n TextInput,\n View,\n ViewProps,\n Keyboard,\n} from 'react-native'\nimport LinearGradient from 'react-native-linear-gradient'\nimport { Heading, Icon, IconButton, IconString, Text, TextButton } from '../../components'\nimport { ChatContext } from '../../contexts/chat_context'\nimport {\n useCreateAndroidRippleColor,\n useTheme,\n useInteractionTintedBackgroundColor,\n useScalableNumberOfLines,\n useFontScale,\n} from '../../hooks'\nimport { useAttachmentUploader } from '../../hooks/use_attachment_uploader'\nimport { useBroadcastTypingStatus } from '../../hooks/use_broadcast_typing_status'\nimport { useChatConfiguration } from '../../hooks/use_chat_configuration'\nimport { useMessageCreateOrUpdate } from '../../hooks/use_message_create_or_update'\nimport { useMessageDraft } from '../../hooks/use_message_draft'\nimport { ConversationScreenProps } from '../../screens/conversation_screen'\nimport { ConversationResource, MessageResource } from '../../types'\nimport {\n DenormalizedAttachmentResourceForCreate,\n DenormalizedMessageAttachmentResourceForCreate,\n FileAttachment,\n} from '../../types/resources/denormalized_attachment_resource_for_create'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n platformFontWeightMedium,\n platformPressedOpacityStyle,\n} from '../../utils'\nimport { pickAttachmentPreviewKind } from '../../utils/attachment_kind'\nimport { canSubmitMessage } from '../../utils/can_submit_message'\nimport { isInputEditable } from '../../utils/is_input_editable'\nimport { hasMessageText, stripEmptyTextCharacters } from '../../utils/message_text'\nimport {\n DocumentPicker,\n DocumentPickerResult,\n Haptic,\n ImagePicker,\n ImagePickerResult,\n} from '../../utils/native_adapters'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Button } from '../display/button'\nimport BannerPrimitive from '../primitive/banner_primitive'\nimport { MessageFormAttachmentFile } from './message_form/message_form_attachment_file'\nimport { MessageFormAttachmentImage } from './message_form/message_form_attachment_image'\nimport { MessageFormAttachmentVideo } from './message_form/message_form_attachment_video'\n\nexport const MessageForm = {\n Root: MessageFormRoot,\n\n TextInput: MessageFormInput,\n SubmitButton: MessageFormSubmitBtn,\n AttachmentPicker: MessageFormAttachmentPicker,\n Commands: MessageFormCommands,\n}\n\ninterface MessagesFormRootProps extends ViewProps {\n conversation: ConversationResource\n currentlyEditingMessage?: MessageResource | null\n replyRootId?: string | null\n replyRootAuthorFirstName?: string | null\n onFlaggedInMessageForm?: (id: string) => void\n onBeforeSubmit?: () => void\n}\n\nconst MessageFormContext = React.createContext<{\n text: string\n setText: (text: string) => void\n onSubmit: () => void\n disabled: boolean\n inputEditable: boolean\n canGiphy: boolean\n usingGiphy: boolean\n setUsingGiphy: (usingGiphy: boolean) => void\n attachmentUploader?: ReturnType<typeof useAttachmentUploader>\n currentlyEditingMessage?: MessageResource | null\n reset: () => void\n replyRootId?: string | null\n replyRootAuthorFirstName?: string | null\n}>({\n text: '',\n setText: (_text: string) => {},\n onSubmit: () => {},\n disabled: false,\n inputEditable: true,\n canGiphy: false,\n usingGiphy: false,\n setUsingGiphy: (_usingGiphy: boolean) => {},\n currentlyEditingMessage: null,\n reset: () => {},\n replyRootId: undefined,\n replyRootAuthorFirstName: undefined,\n})\n\nconst GIPHY_MAX_LENGTH = 50\nconst MAX_MESSAGE_LENGTH = 5000\nconst PLACEHOLDER_FONT_SCALE_THRESHOLD = 1.7\n\nfunction MessageFormRoot({\n conversation,\n currentlyEditingMessage,\n children,\n replyRootId,\n replyRootAuthorFirstName,\n onFlaggedInMessageForm,\n onBeforeSubmit,\n}: MessagesFormRootProps) {\n const { giphyApiKey } = useContext(ChatContext)\n const canGiphy = !!giphyApiKey && !currentlyEditingMessage\n const styles = useMessageFormStyles()\n const { draft, saveDraft, clearDraft } = useMessageDraft()\n const [text, setText] = React.useState(() => {\n // Initialize from draft only when not editing a message\n return currentlyEditingMessage ? '' : draft?.text || ''\n })\n const [usingGiphy, setUsingGiphy] = useState(false)\n const navigation = useNavigation()\n const route = useRoute() as ConversationScreenProps['route']\n const {\n status,\n isPending,\n reset: resetMutation,\n mutateAsync,\n } = useMessageCreateOrUpdate({\n conversationId: conversation.id,\n message: currentlyEditingMessage || undefined,\n replyRootId,\n })\n const attachmentUploader = useAttachmentUploader({\n conversationId: conversation.id,\n draftAttachments: currentlyEditingMessage ? undefined : draft?.attachments,\n onFlaggedInMessageForm,\n })\n const resetAttachmentUploader = attachmentUploader.reset\n\n const reset = useCallback(() => {\n resetAttachmentUploader()\n resetMutation()\n setText('')\n setUsingGiphy(false)\n if (!currentlyEditingMessage) {\n clearDraft()\n }\n navigation.setParams({\n editing_message_id: null,\n })\n }, [resetAttachmentUploader, resetMutation, navigation, currentlyEditingMessage, clearDraft])\n\n useEffect(() => {\n if (canGiphy && !usingGiphy && text.startsWith('/giphy ')) {\n setUsingGiphy(true)\n setText('')\n }\n }, [canGiphy, text, usingGiphy])\n\n useEffect(() => {\n switch (status) {\n case 'success':\n reset()\n break\n }\n }, [reset, status])\n\n useEffect(() => {\n if (route.params.clear_input) {\n reset()\n navigation.setParams({ ...route.params, clear_input: false })\n }\n }, [reset, navigation, route.params])\n\n // Save draft when text or attachments change (debounced)\n useEffect(() => {\n // Don't save drafts when editing a message\n if (currentlyEditingMessage) return\n\n const timeoutId = setTimeout(() => {\n saveDraft(text, attachmentUploader.attachments)\n }, 500)\n\n return () => clearTimeout(timeoutId)\n }, [text, attachmentUploader.attachments, saveDraft, currentlyEditingMessage])\n\n const canSubmit = canSubmitMessage({\n isPending,\n conversationDisabled: conversation.disabled ?? false,\n pendingUploads: !!attachmentUploader?.pendingUploads,\n hasFlaggedAttachments: !!attachmentUploader?.flaggedAttachmentCount,\n hasText: hasMessageText(text),\n hasSendableAttachments: !!attachmentUploader?.attachmentIds?.length,\n })\n const disabled = !canSubmit\n const inputEditable = isInputEditable({\n isPending,\n conversationDisabled: conversation.disabled ?? false,\n })\n\n /*\n Opening a FormSheet on Android while the keyboard is visible breaks the FormSheet's height & position.\n This is a workaround to ensure we don't open the FormSheet while the keyboard is visible.\n */\n const navigateToSendGiphyAfterKeyboardHides = useCallback(() => {\n if (!Keyboard.isVisible() || Platform.OS === 'ios') {\n navigation.navigate('SendGiphy', {\n conversation_id: conversation.id,\n search_term: text,\n })\n } else {\n const keyboardListener = Keyboard.addListener('keyboardDidHide', () => {\n navigation.navigate('SendGiphy', {\n conversation_id: conversation.id,\n search_term: text,\n })\n keyboardListener?.remove()\n })\n }\n }, [conversation.id, navigation, text])\n\n const handleSubmit = () => {\n if (!canSubmit) return\n\n if (canGiphy && usingGiphy) {\n TextInput.State.blurTextInput(TextInput.State.currentlyFocusedInput())\n Haptic.impactLight()\n navigateToSendGiphyAfterKeyboardHides()\n } else {\n let attachmentsForSubmit: DenormalizedAttachmentResourceForCreate[] =\n attachmentUploader.attachments\n .filter(a => a.status === 'success' && a.id)\n .map(\n (attachment): DenormalizedMessageAttachmentResourceForCreate => ({\n type: 'MessageAttachment',\n id: attachment.id as string,\n file: attachment.file,\n })\n )\n const messageText = stripEmptyTextCharacters(text)\n\n if (currentlyEditingMessage) {\n mutateAsync({ text: messageText })\n reset()\n } else {\n onBeforeSubmit?.()\n mutateAsync({ text: messageText, attachments: attachmentsForSubmit })\n reset()\n }\n }\n }\n\n useEffect(() => {\n if (currentlyEditingMessage) {\n setText(currentlyEditingMessage.text || '')\n }\n }, [currentlyEditingMessage])\n\n return (\n <MessageFormContext.Provider\n value={{\n text,\n setText,\n onSubmit: handleSubmit,\n disabled,\n inputEditable,\n canGiphy,\n usingGiphy,\n setUsingGiphy,\n attachmentUploader,\n currentlyEditingMessage,\n reset,\n replyRootId,\n replyRootAuthorFirstName,\n }}\n >\n <View style={styles.container}>\n <EditingIndicator />\n <ReplyIndicator />\n <FlaggedContentBanner />\n <View style={styles.textInputContainer}>{children}</View>\n </View>\n </MessageFormContext.Provider>\n )\n}\n\nfunction MessageFormAttachments() {\n const styles = useMessageFormStyles()\n const { attachmentUploader } = React.useContext(MessageFormContext)\n const numberOfAttachments = attachmentUploader?.attachments?.length || 0\n const attachments = attachmentUploader?.attachments || []\n\n if (numberOfAttachments === 0) {\n return null\n }\n\n return (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.messageFormAttachments}\n >\n {attachments.map(attachment => {\n const kind = pickAttachmentPreviewKind(attachment.file.type, attachment.file.name)\n const remove = () => attachmentUploader?.removeAttachment(attachment)\n\n if (kind === 'video') {\n return (\n <MessageFormAttachmentVideo\n key={attachment.file.uri}\n name={attachment.file.name}\n status={attachment.status}\n removeAttachment={remove}\n />\n )\n }\n\n if (kind === 'file') {\n return (\n <MessageFormAttachmentFile\n key={attachment.file.uri}\n name={attachment.file.name}\n contentType={attachment.file.type}\n status={attachment.status}\n removeAttachment={remove}\n />\n )\n }\n\n return (\n <MessageFormAttachmentImage\n key={attachment.file.uri}\n uri={attachment.file.uri}\n alt={attachment.file.name}\n status={attachment.status}\n width={attachment.file.width}\n height={attachment.file.height}\n removeAttachment={remove}\n />\n )\n })}\n </ScrollView>\n )\n}\n\nfunction getFileType(attachments: FileAttachment[]): 'image' | 'video' | 'file' {\n const kinds = new Set(\n attachments.map(({ file }) => {\n if (file.type.startsWith('image/')) return 'image'\n if (file.type.startsWith('video/')) return 'video'\n return 'file'\n })\n )\n return kinds.size === 1 ? [...kinds][0] : 'file'\n}\n\nfunction FlaggedContentBanner() {\n const styles = useMessageFormStyles()\n const { attachmentUploader } = React.useContext(MessageFormContext)\n const flaggedAttachments = attachmentUploader?.attachments.filter(a => a.flagged) ?? []\n const flaggedCount = flaggedAttachments.length\n\n if (flaggedCount === 0) return null\n\n const isSingular = flaggedCount === 1\n const fileType = getFileType(flaggedAttachments)\n const buttonTitle = isSingular ? `Remove flagged ${fileType}` : `Remove flagged ${fileType}s`\n\n return (\n <View style={styles.flaggedBannerContainer}>\n <BannerPrimitive.Root appearance=\"error\">\n <BannerPrimitive.StaticLayout>\n <BannerPrimitive.StatusIcon />\n <BannerPrimitive.Content>\n <BannerMessage isSingular={isSingular} fileType={fileType} />\n <View style={styles.flaggedBannerButtonRow}>\n <Button\n title={buttonTitle}\n size=\"sm\"\n appearance=\"danger\"\n onPress={() => attachmentUploader?.removeFlaggedAttachments()}\n accessibilityLabel={buttonTitle}\n />\n </View>\n </BannerPrimitive.Content>\n </BannerPrimitive.StaticLayout>\n </BannerPrimitive.Root>\n </View>\n )\n}\n\nfunction BannerMessage({ isSingular, fileType }: { isSingular: boolean; fileType: string }) {\n const styles = useMessageFormStyles()\n\n const contentGuidelinesLink = (\n <Text\n style={styles.flaggedBannerLink}\n onPress={() =>\n Linking.openURL(\n 'https://www.planningcenter.com/terms#:~:text=4.%20Acceptable%20Use%20of%20Planning%20Center'\n )\n }\n accessibilityRole=\"link\"\n >\n content guidelines\n </Text>\n )\n\n return isSingular ? (\n <Text style={styles.flaggedBannerText}>\n An uploaded {fileType} was flagged because it doesn't meet our {contentGuidelinesLink}. Please\n remove before proceeding.\n </Text>\n ) : (\n <Text style={styles.flaggedBannerText}>\n Some uploaded {fileType}s were flagged because they don't meet our {contentGuidelinesLink}.\n Please remove them before proceeding.\n </Text>\n )\n}\n\nfunction MessageFormInput() {\n const styles = useMessageFormStyles()\n const theme = useTheme()\n const fontScale = useFontScale()\n const { text, setText, onSubmit, inputEditable, usingGiphy, attachmentUploader, replyRootId } =\n React.useContext(MessageFormContext)\n const attachmentError = attachmentUploader?.errorMessage\n\n const broadcastTypingStatus = useBroadcastTypingStatus()\n\n const handleTextChange = (newText: string) => {\n setText(newText)\n\n if (newText.length > 0) {\n broadcastTypingStatus()\n }\n }\n\n const compactPlaceholder = fontScale >= PLACEHOLDER_FONT_SCALE_THRESHOLD\n let placeholder = compactPlaceholder ? 'Message' : 'Send a message'\n if (replyRootId) {\n placeholder = compactPlaceholder ? 'Reply' : 'Send a reply'\n }\n if (usingGiphy) {\n placeholder = compactPlaceholder ? 'Search' : 'Search GIFs'\n }\n\n return (\n <View style={styles.textInputBoundary}>\n <MessageFormAttachments />\n {attachmentError ? <Text style={styles.inputErrorMessage}>{attachmentError}</Text> : null}\n <View style={styles.textInputRow}>\n {usingGiphy ? (\n <View style={styles.giphyBadge}>\n <Icon name=\"general.bolt\" style={styles.giphyBadgeIcon} />\n <Text variant=\"tertiary\" style={styles.giphyBadgeText}>\n /giphy\n </Text>\n </View>\n ) : null}\n\n <TextInput\n testID=\"message-composer-input\"\n style={[styles.textInput, usingGiphy && styles.textInputWithGiphy]}\n multiline={true}\n placeholder={placeholder}\n placeholderTextColor={theme.colors.textColorDefaultPlaceholder}\n onChangeText={handleTextChange}\n value={text}\n maxLength={usingGiphy ? GIPHY_MAX_LENGTH : MAX_MESSAGE_LENGTH}\n onSubmitEditing={onSubmit}\n submitBehavior={usingGiphy ? 'submit' : 'newline'}\n editable={inputEditable}\n />\n </View>\n </View>\n )\n}\n\nconst SUBMIT_ACCESSIBILITY_LABEL_MAP = {\n giphy: 'Search Giphy',\n editing: 'Save changes',\n send: 'Send message',\n} as const\n\nconst SUBMIT_ICON_NAME_MAP = {\n giphy: 'general.search',\n editing: 'general.check',\n send: 'general.upArrow',\n} as const\n\nfunction MessageFormSubmitBtn() {\n const { onSubmit, disabled, usingGiphy, currentlyEditingMessage } =\n React.useContext(MessageFormContext)\n const styles = useMessageFormStyles()\n const { colors } = useTheme()\n\n const formStateKey = usingGiphy ? 'giphy' : currentlyEditingMessage ? 'editing' : 'send'\n const colorKey = disabled ? 'disabled' : 'interaction'\n const interactionStart = colors.buttonStart || colors.interaction\n const interactionEnd = colors.buttonEnd || colors.interaction\n const colorMap = {\n disabled: [\n colors.fillColorButtonNeutralSolidDisabled,\n colors.fillColorButtonNeutralSolidDisabled,\n ],\n interaction: [interactionStart, interactionEnd],\n }\n\n const androidRippleColor = useCreateAndroidRippleColor({ color: colorMap[colorKey][0] })\n const gradientColors = colorMap[colorKey] as [string, string]\n const iconStyles = [styles.submitIcon, disabled && styles.submitIconDisabled]\n\n return (\n <Pressable\n disabled={disabled}\n onPress={onSubmit}\n accessibilityRole=\"button\"\n accessibilityLabel={SUBMIT_ACCESSIBILITY_LABEL_MAP[formStateKey]}\n style={({ pressed }) => [\n styles.submitPressableWrapper,\n pressed && platformPressedOpacityStyle,\n ]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n >\n <LinearGradient\n start={{ x: 0.1, y: 0.1 }}\n end={{ x: 0.9, y: 0.9 }}\n colors={gradientColors}\n style={styles.submitGradientWrapper}\n >\n <Icon\n name={SUBMIT_ICON_NAME_MAP[formStateKey]}\n style={iconStyles}\n accessibilityElementsHidden={true}\n />\n </LinearGradient>\n </Pressable>\n )\n}\n\nfunction MessageFormAttachmentPicker() {\n const styles = useMessageFormStyles()\n const { usingGiphy, attachmentUploader, currentlyEditingMessage } =\n React.useContext(MessageFormContext)\n const { allowedMimeTypes } = useChatConfiguration()\n const [isOpen, setIsOpen] = useState(false)\n\n function uploadImagePickerResult(result: ImagePickerResult) {\n if (result.canceled) {\n return\n }\n\n const filteredAssets = result.assets\n .filter(asset => {\n return asset.fileSize && asset.mimeType && asset.uri\n })\n .map(asset => {\n return {\n uri: asset.uri,\n name: asset.fileName || asset.uri.split('/').pop() || 'attachment',\n type: asset.mimeType as string,\n size: asset.fileSize as number,\n height: asset.height,\n width: asset.width,\n }\n })\n\n attachmentUploader?.handleFilesAttached(filteredAssets)\n }\n\n function uploadDocumentPickerResult(result: DocumentPickerResult) {\n if (result.canceled) return\n\n const filteredAssets = result.assets\n .filter(asset => asset.size != null && asset.uri)\n .map(asset => ({\n uri: asset.uri,\n name: asset.name,\n type: asset.mimeType || 'application/octet-stream',\n size: asset.size as number,\n }))\n\n attachmentUploader?.handleFilesAttached(filteredAssets)\n }\n\n const openCamera = async () => {\n setIsOpen(false)\n let result = await ImagePicker.openCameraAsync()\n if (!result.canceled) {\n uploadImagePickerResult(result)\n }\n }\n\n const pickImage = async () => {\n setIsOpen(false)\n let result = await ImagePicker.openImageLibraryAsync()\n if (!result.canceled) {\n uploadImagePickerResult(result)\n }\n }\n\n const pickFile = async () => {\n setIsOpen(false)\n let result = await DocumentPicker.openAsync({ mimeTypes: allowedMimeTypes })\n if (!result.canceled) {\n uploadDocumentPickerResult(result)\n }\n }\n\n if (usingGiphy || currentlyEditingMessage) {\n return null\n }\n\n return (\n <View style={styles.attachmentPicker}>\n {isOpen && (\n <View style={styles.attachmentPickerButtonsContainer}>\n <IconButton\n accessibilityLabel=\"Take a photo\"\n accessibilityHint=\"Opens your camera\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"chat.camera\"\n onPress={openCamera}\n style={styles.attachmentPickerButton}\n />\n <IconButton\n accessibilityLabel=\"Choose a photo\"\n accessibilityHint=\"Opens your photo gallery\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"churchCenter.photosIos\"\n onPress={pickImage}\n style={styles.attachmentPickerButton}\n />\n {DocumentPicker.configured && (\n <IconButton\n accessibilityLabel=\"Attach a file\"\n accessibilityHint=\"Opens your files to attach documents\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.blankFile\"\n onPress={pickFile}\n style={styles.attachmentPickerButton}\n />\n )}\n </View>\n )}\n <IconButton\n accessibilityLabel=\"File Menu\"\n accessibilityHint=\"Opens options to attach or take a photo\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.paperclip\"\n onPress={() => setIsOpen(!isOpen)}\n style={styles.formButton}\n />\n </View>\n )\n}\n\nfunction MessageFormCommands() {\n const { text, canGiphy, usingGiphy, setUsingGiphy } = React.useContext(MessageFormContext)\n const styles = useMessageFormStyles()\n\n if (!canGiphy) {\n return null\n }\n\n if (usingGiphy) {\n return (\n <IconButton\n accessibilityLabel=\"Exit Giphy Search\"\n accessibilityHint=\"Changes input back to a text field for sending messages\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.xCircle\"\n onPress={() => setUsingGiphy(false)}\n style={styles.formButton}\n />\n )\n }\n\n return (\n <IconButton\n accessibilityLabel=\"Search Giphy\"\n accessibilityHint=\"Changes input into a search field for finding Giphys\"\n size=\"lg\"\n appearance=\"neutral\"\n name={'general.bolt'}\n onPress={() => setUsingGiphy(true)}\n disabled={text.length > GIPHY_MAX_LENGTH}\n style={styles.formButton}\n />\n )\n}\n\nfunction EditingIndicator() {\n const { currentlyEditingMessage, reset } = React.useContext(MessageFormContext)\n\n if (!currentlyEditingMessage) {\n return null\n }\n\n return (\n <FormIndicatorRow\n title=\"Editing message\"\n buttonText=\"Cancel\"\n accessibilityHint=\"Exit message editing mode without saving\"\n iconName=\"accounts.editor\"\n onPress={() => reset()}\n />\n )\n}\n\nfunction ReplyIndicator() {\n const { replyRootId, replyRootAuthorFirstName } = React.useContext(MessageFormContext)\n const navigation = useNavigation()\n const title = replyRootAuthorFirstName ? `Reply to ${replyRootAuthorFirstName}` : 'Reply'\n\n if (!replyRootId) return null\n\n return (\n <FormIndicatorRow\n title={title}\n buttonText=\"Exit replies\"\n accessibilityHint=\"Return to the main conversation\"\n iconName=\"registrations.undo\"\n onPress={() => navigation.goBack()}\n />\n )\n}\n\ninterface FormIndicatorRowProps {\n title: string\n buttonText: string\n accessibilityHint: string\n onPress: () => void\n iconName: IconString\n}\n\nfunction FormIndicatorRow({\n title,\n buttonText,\n accessibilityHint,\n iconName,\n onPress,\n}: FormIndicatorRowProps) {\n const styles = useMessageFormStyles()\n const scalableNumberOfLines = useScalableNumberOfLines(1)\n\n return (\n <View style={styles.formIndicatorRow}>\n <View style={styles.formIndicatorRowTitleContainer}>\n <Icon name={iconName} size={16} style={styles.formIndicatorRowIcon} />\n <Heading\n variant=\"h4\"\n style={styles.formIndicatorRowTitle}\n numberOfLines={scalableNumberOfLines}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {title}\n </Heading>\n </View>\n <TextButton\n onPress={onPress}\n accessibilityHint={accessibilityHint}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {buttonText}\n </TextButton>\n </View>\n )\n}\n\nconst useMessageFormStyles = () => {\n const theme = useTheme()\n const navigationTheme = useNavigationTheme()\n const buttonSize = 38\n\n const giphyBadgeBackgroundColor = useInteractionTintedBackgroundColor()\n\n return StyleSheet.create({\n container: {\n borderColor: theme.colors.borderColorDefaultDim,\n borderTopWidth: 1,\n padding: 12,\n },\n textInputContainer: {\n backgroundColor: navigationTheme.colors.card,\n flexDirection: 'row',\n alignItems: 'flex-end',\n gap: 16,\n },\n textInputBoundary: {\n overflow: 'hidden',\n borderRadius: 24,\n borderWidth: 1,\n borderColor: theme.colors.fillColorNeutral050Base,\n flex: 1,\n gap: 8,\n },\n textInputRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n textInput: {\n paddingBottom: 8,\n // TODO: Remove iOS's extra top padding and use `textAlignVertical: \"center\"` for both platforms when services-react-native upgrades to v0.74.5 or greater.\n paddingTop: Platform.select({\n ios: 9, // Extra padding compensates for `textAlignVertical` not working in Services iOS.\n default: 8,\n }),\n textAlignVertical: Platform.select({\n ios: 'top', // Services iOS doesn't support `textAlignVertical` due to its lower React Native version of 0.72.14. (React Native 0.74.5+ seems to support this style.)\n default: 'center', // centers the text vertically for multiline TextInput.\n }),\n paddingHorizontal: 16,\n color: theme.colors.textColorDefaultPrimary,\n justifyContent: 'center',\n flex: 1,\n fontSize: 16,\n maxHeight: 200,\n },\n textInputWithGiphy: {\n paddingLeft: 0,\n },\n giphyBadge: {\n backgroundColor: giphyBadgeBackgroundColor,\n borderRadius: 24,\n paddingVertical: 4,\n paddingHorizontal: 12,\n marginLeft: 6,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n },\n giphyBadgeText: {\n color: theme.colors.interaction,\n marginBottom: 1,\n },\n giphyBadgeIcon: {\n color: theme.colors.interaction,\n },\n formButton: {\n height: buttonSize,\n },\n submitPressableWrapper: {\n borderRadius: buttonSize,\n overflow: 'hidden',\n },\n submitGradientWrapper: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: buttonSize,\n height: buttonSize,\n width: buttonSize,\n },\n submitIcon: {\n fontSize: 16,\n color: tokens.colorNeutral100White,\n },\n submitIconDisabled: {\n color: theme.colors.iconColorDefaultDisabled,\n },\n attachmentPicker: {\n position: 'relative',\n },\n attachmentPickerButtonsContainer: {\n position: 'absolute',\n left: 0,\n bottom: 40,\n zIndex: 10,\n gap: 12,\n },\n attachmentPickerButton: {\n backgroundColor: theme.colors.fillColorNeutral070,\n borderRadius: 20,\n height: buttonSize,\n width: buttonSize,\n elevation: 3,\n ...Platform.select({\n ios: {\n borderWidth: 1,\n borderColor: theme.colors.borderColorDefaultBase,\n },\n default: null,\n }),\n },\n messageFormAttachments: {\n overflow: 'hidden',\n paddingHorizontal: 12,\n paddingTop: 12,\n gap: 8,\n },\n inputErrorMessage: {\n color: theme.colors.statusErrorText,\n fontSize: 14,\n paddingHorizontal: 16,\n paddingVertical: 4,\n },\n flaggedBannerContainer: {\n paddingBottom: 12,\n },\n flaggedBannerText: {\n color: theme.colors.textColorDefaultPrimary,\n fontSize: 14,\n },\n flaggedBannerLink: {\n color: theme.colors.textColorDefaultPrimary,\n fontSize: 14,\n textDecorationLine: 'underline' as const,\n },\n flaggedBannerButtonRow: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n marginTop: 4,\n },\n formIndicatorRow: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 8,\n paddingBottom: 12,\n },\n formIndicatorRowTitleContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n flex: 1,\n },\n formIndicatorRowIcon: {\n color: theme.colors.iconColorDefaultSecondary,\n },\n formIndicatorRowTitle: {\n fontWeight: platformFontWeightMedium,\n textTransform: 'none',\n flexShrink: 1,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"message_form.js","names":["useNavigation","useTheme","useNavigationTheme","useRoute","React","useCallback","useContext","useEffect","useState","Linking","Platform","Pressable","ScrollView","StyleSheet","TextInput","View","Keyboard","LinearGradient","Heading","Icon","IconButton","Text","TextButton","ChatContext","useCreateAndroidRippleColor","useInteractionTintedBackgroundColor","useScalableNumberOfLines","useFontScale","useAttachmentUploader","useBroadcastTypingStatus","useChatConfiguration","useMessageCreateOrUpdate","useMessageDraft","MAX_FONT_SIZE_MULTIPLIER_LANDMARK","platformFontWeightMedium","platformPressedOpacityStyle","pickAttachmentPreviewKind","canSubmitMessage","isInputEditable","hasMessageText","stripEmptyTextCharacters","DocumentPicker","Haptic","ImagePicker","tokens","Button","BannerPrimitive","MessageFormAttachmentFile","MessageFormAttachmentImage","MessageFormAttachmentVideo","jsx","_jsx","jsxs","_jsxs","MessageForm","Root","MessageFormRoot","MessageFormInput","SubmitButton","MessageFormSubmitBtn","AttachmentPicker","MessageFormAttachmentPicker","Commands","MessageFormCommands","MessageFormContext","createContext","text","setText","_text","onSubmit","disabled","inputEditable","canGiphy","usingGiphy","setUsingGiphy","_usingGiphy","currentlyEditingMessage","reset","replyRootId","undefined","replyRootAuthorFirstName","GIPHY_MAX_LENGTH","MAX_MESSAGE_LENGTH","PLACEHOLDER_FONT_SCALE_THRESHOLD","t0","$","_c","conversation","children","onFlaggedInMessageForm","giphyApiKey","styles","useMessageFormStyles","draft","saveDraft","clearDraft","t1","navigation","route","t2","t3","id","conversationId","message","status","isPending","resetMutation","mutateAsync","t4","attachments","t5","draftAttachments","attachmentUploader","resetAttachmentUploader","t6","setParams","editing_message_id","t7","t8","startsWith","t10","t9","t11","t12","params","clear_input","t13","t14","timeoutId","setTimeout","clearTimeout","t15","t16","pendingUploads","t17","flaggedAttachmentCount","t18","attachmentIds","length","conversationDisabled","hasFlaggedAttachments","hasText","hasSendableAttachments","canSubmit","t19","t20","t21","isVisible","OS","navigate","conversation_id","search_term","keyboardListener","addListener","remove","navigateToSendGiphyAfterKeyboardHides","t22","State","blurTextInput","currentlyFocusedInput","impactLight","attachmentsForSubmit","filter","_temp","map","_temp2","messageText","handleSubmit","t23","t24","t25","t26","t27","t28","Symbol","for","EditingIndicator","ReplyIndicator","FlaggedContentBanner","t29","textInputContainer","style","t30","container","t31","Provider","value","attachment","type","file","a","MessageFormAttachments","numberOfAttachments","messageFormAttachments","kind","name","removeAttachment","uri","contentType","alt","width","height","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","getFileType","kinds","Set","size","isSingular","bb0","flaggedAttachments","_temp3","flaggedCount","fileType","buttonTitle","StatusIcon","BannerMessage","removeFlaggedAttachments","appearance","onPress","flaggedBannerButtonRow","StaticLayout","Content","flaggedBannerContainer","flagged","flaggedBannerLink","_temp4","accessibilityRole","contentGuidelinesLink","flaggedBannerText","openURL","theme","fontScale","attachmentError","errorMessage","broadcastTypingStatus","newText","handleTextChange","compactPlaceholder","placeholder","inputErrorMessage","giphyBadge","giphyBadgeIcon","giphyBadgeText","variant","textInputWithGiphy","textInput","colors","textColorDefaultPlaceholder","testID","multiline","placeholderTextColor","maxLength","submitBehavior","textInputRow","textInputBoundary","SUBMIT_ACCESSIBILITY_LABEL_MAP","giphy","editing","send","SUBMIT_ICON_NAME_MAP","formStateKey","colorKey","interactionStart","buttonStart","interaction","interactionEnd","buttonEnd","fillColorButtonNeutralSolidDisabled","colorMap","color","androidRippleColor","gradientColors","submitIconDisabled","submitIcon","iconStyles","submitPressableWrapper","pressed","borderless","foreground","x","y","accessibilityElementsHidden","submitGradientWrapper","start","end","accessibilityLabel","android_ripple","allowedMimeTypes","isOpen","setIsOpen","uploadImagePickerResult","result","canceled","filteredAssets","assets","_temp5","_temp6","handleFilesAttached","uploadDocumentPickerResult","result_0","filteredAssets_0","_temp7","_temp8","result_1","openCameraAsync","openCamera","result_2","openImageLibraryAsync","pickImage","result_3","openAsync","mimeTypes","pickFile","attachmentPickerButton","attachmentPickerButtonsContainer","accessibilityHint","configured","formButton","attachmentPicker","asset_2","asset","mimeType","asset_1","asset_0","fileName","split","pop","fileSize","FormIndicatorRow","title","buttonText","iconName","goBack","scalableNumberOfLines","formIndicatorRowIcon","formIndicatorRowTitle","formIndicatorRowTitleContainer","formIndicatorRow","navigationTheme","giphyBadgeBackgroundColor","card","borderColorDefaultBase","borderColorDefaultDim","fillColorNeutral050Base","fillColorNeutral070","iconColorDefaultDisabled","iconColorDefaultSecondary","statusErrorText","textColorDefaultPrimary","create","borderColor","borderTopWidth","padding","backgroundColor","flexDirection","alignItems","gap","overflow","borderRadius","borderWidth","flex","paddingBottom","paddingTop","select","ios","default","textAlignVertical","paddingHorizontal","justifyContent","fontSize","maxHeight","paddingLeft","paddingVertical","marginLeft","marginBottom","colorNeutral100White","position","left","bottom","zIndex","elevation","textDecorationLine","marginTop","fontWeight","textTransform","flexShrink"],"sources":["../../../src/components/conversation/message_form.tsx"],"sourcesContent":["import { useNavigation, useTheme as useNavigationTheme, useRoute } from '@react-navigation/native'\nimport React, { useCallback, useContext, useEffect, useState } from 'react'\nimport {\n Linking,\n Platform,\n Pressable,\n ScrollView,\n StyleSheet,\n TextInput,\n View,\n ViewProps,\n Keyboard,\n} from 'react-native'\nimport LinearGradient from 'react-native-linear-gradient'\nimport { Heading, Icon, IconButton, IconString, Text, TextButton } from '../../components'\nimport { ChatContext } from '../../contexts/chat_context'\nimport {\n useCreateAndroidRippleColor,\n useTheme,\n useInteractionTintedBackgroundColor,\n useScalableNumberOfLines,\n useFontScale,\n} from '../../hooks'\nimport { useAttachmentUploader } from '../../hooks/use_attachment_uploader'\nimport { useBroadcastTypingStatus } from '../../hooks/use_broadcast_typing_status'\nimport { useChatConfiguration } from '../../hooks/use_chat_configuration'\nimport { useMessageCreateOrUpdate } from '../../hooks/use_message_create_or_update'\nimport { useMessageDraft } from '../../hooks/use_message_draft'\nimport { ConversationScreenProps } from '../../screens/conversation_screen'\nimport { ConversationResource, MessageResource } from '../../types'\nimport {\n DenormalizedAttachmentResourceForCreate,\n DenormalizedMessageAttachmentResourceForCreate,\n FileAttachment,\n} from '../../types/resources/denormalized_attachment_resource_for_create'\nimport {\n MAX_FONT_SIZE_MULTIPLIER_LANDMARK,\n platformFontWeightMedium,\n platformPressedOpacityStyle,\n} from '../../utils'\nimport { pickAttachmentPreviewKind } from '../../utils/attachment_kind'\nimport { canSubmitMessage } from '../../utils/can_submit_message'\nimport { isInputEditable } from '../../utils/is_input_editable'\nimport { hasMessageText, stripEmptyTextCharacters } from '../../utils/message_text'\nimport {\n DocumentPicker,\n DocumentPickerResult,\n Haptic,\n ImagePicker,\n ImagePickerResult,\n} from '../../utils/native_adapters'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Button } from '../display/button'\nimport BannerPrimitive from '../primitive/banner_primitive'\nimport { MessageFormAttachmentFile } from './message_form/message_form_attachment_file'\nimport { MessageFormAttachmentImage } from './message_form/message_form_attachment_image'\nimport { MessageFormAttachmentVideo } from './message_form/message_form_attachment_video'\n\nexport const MessageForm = {\n Root: MessageFormRoot,\n\n TextInput: MessageFormInput,\n SubmitButton: MessageFormSubmitBtn,\n AttachmentPicker: MessageFormAttachmentPicker,\n Commands: MessageFormCommands,\n}\n\ninterface MessagesFormRootProps extends ViewProps {\n conversation: ConversationResource\n currentlyEditingMessage?: MessageResource | null\n replyRootId?: string | null\n replyRootAuthorFirstName?: string | null\n onFlaggedInMessageForm?: (id: string) => void\n}\n\nconst MessageFormContext = React.createContext<{\n text: string\n setText: (text: string) => void\n onSubmit: () => void\n disabled: boolean\n inputEditable: boolean\n canGiphy: boolean\n usingGiphy: boolean\n setUsingGiphy: (usingGiphy: boolean) => void\n attachmentUploader?: ReturnType<typeof useAttachmentUploader>\n currentlyEditingMessage?: MessageResource | null\n reset: () => void\n replyRootId?: string | null\n replyRootAuthorFirstName?: string | null\n}>({\n text: '',\n setText: (_text: string) => {},\n onSubmit: () => {},\n disabled: false,\n inputEditable: true,\n canGiphy: false,\n usingGiphy: false,\n setUsingGiphy: (_usingGiphy: boolean) => {},\n currentlyEditingMessage: null,\n reset: () => {},\n replyRootId: undefined,\n replyRootAuthorFirstName: undefined,\n})\n\nconst GIPHY_MAX_LENGTH = 50\nconst MAX_MESSAGE_LENGTH = 5000\nconst PLACEHOLDER_FONT_SCALE_THRESHOLD = 1.7\n\nfunction MessageFormRoot({\n conversation,\n currentlyEditingMessage,\n children,\n replyRootId,\n replyRootAuthorFirstName,\n onFlaggedInMessageForm,\n}: MessagesFormRootProps) {\n const { giphyApiKey } = useContext(ChatContext)\n const canGiphy = !!giphyApiKey && !currentlyEditingMessage\n const styles = useMessageFormStyles()\n const { draft, saveDraft, clearDraft } = useMessageDraft()\n const [text, setText] = React.useState(() => {\n // Initialize from draft only when not editing a message\n return currentlyEditingMessage ? '' : draft?.text || ''\n })\n const [usingGiphy, setUsingGiphy] = useState(false)\n const navigation = useNavigation()\n const route = useRoute() as ConversationScreenProps['route']\n const {\n status,\n isPending,\n reset: resetMutation,\n mutateAsync,\n } = useMessageCreateOrUpdate({\n conversationId: conversation.id,\n message: currentlyEditingMessage || undefined,\n replyRootId,\n })\n const attachmentUploader = useAttachmentUploader({\n conversationId: conversation.id,\n draftAttachments: currentlyEditingMessage ? undefined : draft?.attachments,\n onFlaggedInMessageForm,\n })\n const resetAttachmentUploader = attachmentUploader.reset\n\n const reset = useCallback(() => {\n resetAttachmentUploader()\n resetMutation()\n setText('')\n setUsingGiphy(false)\n if (!currentlyEditingMessage) {\n clearDraft()\n }\n navigation.setParams({\n editing_message_id: null,\n })\n }, [resetAttachmentUploader, resetMutation, navigation, currentlyEditingMessage, clearDraft])\n\n useEffect(() => {\n if (canGiphy && !usingGiphy && text.startsWith('/giphy ')) {\n setUsingGiphy(true)\n setText('')\n }\n }, [canGiphy, text, usingGiphy])\n\n useEffect(() => {\n switch (status) {\n case 'success':\n reset()\n break\n }\n }, [reset, status])\n\n useEffect(() => {\n if (route.params.clear_input) {\n reset()\n navigation.setParams({ ...route.params, clear_input: false })\n }\n }, [reset, navigation, route.params])\n\n // Save draft when text or attachments change (debounced)\n useEffect(() => {\n // Don't save drafts when editing a message\n if (currentlyEditingMessage) return\n\n const timeoutId = setTimeout(() => {\n saveDraft(text, attachmentUploader.attachments)\n }, 500)\n\n return () => clearTimeout(timeoutId)\n }, [text, attachmentUploader.attachments, saveDraft, currentlyEditingMessage])\n\n const canSubmit = canSubmitMessage({\n isPending,\n conversationDisabled: conversation.disabled ?? false,\n pendingUploads: !!attachmentUploader?.pendingUploads,\n hasFlaggedAttachments: !!attachmentUploader?.flaggedAttachmentCount,\n hasText: hasMessageText(text),\n hasSendableAttachments: !!attachmentUploader?.attachmentIds?.length,\n })\n const disabled = !canSubmit\n const inputEditable = isInputEditable({\n isPending,\n conversationDisabled: conversation.disabled ?? false,\n })\n\n /*\n Opening a FormSheet on Android while the keyboard is visible breaks the FormSheet's height & position.\n This is a workaround to ensure we don't open the FormSheet while the keyboard is visible.\n */\n const navigateToSendGiphyAfterKeyboardHides = useCallback(() => {\n if (!Keyboard.isVisible() || Platform.OS === 'ios') {\n navigation.navigate('SendGiphy', {\n conversation_id: conversation.id,\n search_term: text,\n })\n } else {\n const keyboardListener = Keyboard.addListener('keyboardDidHide', () => {\n navigation.navigate('SendGiphy', {\n conversation_id: conversation.id,\n search_term: text,\n })\n keyboardListener?.remove()\n })\n }\n }, [conversation.id, navigation, text])\n\n const handleSubmit = () => {\n if (!canSubmit) return\n\n if (canGiphy && usingGiphy) {\n TextInput.State.blurTextInput(TextInput.State.currentlyFocusedInput())\n Haptic.impactLight()\n navigateToSendGiphyAfterKeyboardHides()\n } else {\n let attachmentsForSubmit: DenormalizedAttachmentResourceForCreate[] =\n attachmentUploader.attachments\n .filter(a => a.status === 'success' && a.id)\n .map(\n (attachment): DenormalizedMessageAttachmentResourceForCreate => ({\n type: 'MessageAttachment',\n id: attachment.id as string,\n file: attachment.file,\n })\n )\n const messageText = stripEmptyTextCharacters(text)\n\n if (currentlyEditingMessage) {\n mutateAsync({ text: messageText })\n reset()\n } else {\n mutateAsync({ text: messageText, attachments: attachmentsForSubmit })\n reset()\n }\n }\n }\n\n useEffect(() => {\n if (currentlyEditingMessage) {\n setText(currentlyEditingMessage.text || '')\n }\n }, [currentlyEditingMessage])\n\n return (\n <MessageFormContext.Provider\n value={{\n text,\n setText,\n onSubmit: handleSubmit,\n disabled,\n inputEditable,\n canGiphy,\n usingGiphy,\n setUsingGiphy,\n attachmentUploader,\n currentlyEditingMessage,\n reset,\n replyRootId,\n replyRootAuthorFirstName,\n }}\n >\n <View style={styles.container}>\n <EditingIndicator />\n <ReplyIndicator />\n <FlaggedContentBanner />\n <View style={styles.textInputContainer}>{children}</View>\n </View>\n </MessageFormContext.Provider>\n )\n}\n\nfunction MessageFormAttachments() {\n const styles = useMessageFormStyles()\n const { attachmentUploader } = React.useContext(MessageFormContext)\n const numberOfAttachments = attachmentUploader?.attachments?.length || 0\n const attachments = attachmentUploader?.attachments || []\n\n if (numberOfAttachments === 0) {\n return null\n }\n\n return (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.messageFormAttachments}\n >\n {attachments.map(attachment => {\n const kind = pickAttachmentPreviewKind(attachment.file.type, attachment.file.name)\n const remove = () => attachmentUploader?.removeAttachment(attachment)\n\n if (kind === 'video') {\n return (\n <MessageFormAttachmentVideo\n key={attachment.file.uri}\n name={attachment.file.name}\n status={attachment.status}\n removeAttachment={remove}\n />\n )\n }\n\n if (kind === 'file') {\n return (\n <MessageFormAttachmentFile\n key={attachment.file.uri}\n name={attachment.file.name}\n contentType={attachment.file.type}\n status={attachment.status}\n removeAttachment={remove}\n />\n )\n }\n\n return (\n <MessageFormAttachmentImage\n key={attachment.file.uri}\n uri={attachment.file.uri}\n alt={attachment.file.name}\n status={attachment.status}\n width={attachment.file.width}\n height={attachment.file.height}\n removeAttachment={remove}\n />\n )\n })}\n </ScrollView>\n )\n}\n\nfunction getFileType(attachments: FileAttachment[]): 'image' | 'video' | 'file' {\n const kinds = new Set(\n attachments.map(({ file }) => {\n if (file.type.startsWith('image/')) return 'image'\n if (file.type.startsWith('video/')) return 'video'\n return 'file'\n })\n )\n return kinds.size === 1 ? [...kinds][0] : 'file'\n}\n\nfunction FlaggedContentBanner() {\n const styles = useMessageFormStyles()\n const { attachmentUploader } = React.useContext(MessageFormContext)\n const flaggedAttachments = attachmentUploader?.attachments.filter(a => a.flagged) ?? []\n const flaggedCount = flaggedAttachments.length\n\n if (flaggedCount === 0) return null\n\n const isSingular = flaggedCount === 1\n const fileType = getFileType(flaggedAttachments)\n const buttonTitle = isSingular ? `Remove flagged ${fileType}` : `Remove flagged ${fileType}s`\n\n return (\n <View style={styles.flaggedBannerContainer}>\n <BannerPrimitive.Root appearance=\"error\">\n <BannerPrimitive.StaticLayout>\n <BannerPrimitive.StatusIcon />\n <BannerPrimitive.Content>\n <BannerMessage isSingular={isSingular} fileType={fileType} />\n <View style={styles.flaggedBannerButtonRow}>\n <Button\n title={buttonTitle}\n size=\"sm\"\n appearance=\"danger\"\n onPress={() => attachmentUploader?.removeFlaggedAttachments()}\n accessibilityLabel={buttonTitle}\n />\n </View>\n </BannerPrimitive.Content>\n </BannerPrimitive.StaticLayout>\n </BannerPrimitive.Root>\n </View>\n )\n}\n\nfunction BannerMessage({ isSingular, fileType }: { isSingular: boolean; fileType: string }) {\n const styles = useMessageFormStyles()\n\n const contentGuidelinesLink = (\n <Text\n style={styles.flaggedBannerLink}\n onPress={() =>\n Linking.openURL(\n 'https://www.planningcenter.com/terms#:~:text=4.%20Acceptable%20Use%20of%20Planning%20Center'\n )\n }\n accessibilityRole=\"link\"\n >\n content guidelines\n </Text>\n )\n\n return isSingular ? (\n <Text style={styles.flaggedBannerText}>\n An uploaded {fileType} was flagged because it doesn't meet our {contentGuidelinesLink}. Please\n remove before proceeding.\n </Text>\n ) : (\n <Text style={styles.flaggedBannerText}>\n Some uploaded {fileType}s were flagged because they don't meet our {contentGuidelinesLink}.\n Please remove them before proceeding.\n </Text>\n )\n}\n\nfunction MessageFormInput() {\n const styles = useMessageFormStyles()\n const theme = useTheme()\n const fontScale = useFontScale()\n const { text, setText, onSubmit, inputEditable, usingGiphy, attachmentUploader, replyRootId } =\n React.useContext(MessageFormContext)\n const attachmentError = attachmentUploader?.errorMessage\n\n const broadcastTypingStatus = useBroadcastTypingStatus()\n\n const handleTextChange = (newText: string) => {\n setText(newText)\n\n if (newText.length > 0) {\n broadcastTypingStatus()\n }\n }\n\n const compactPlaceholder = fontScale >= PLACEHOLDER_FONT_SCALE_THRESHOLD\n let placeholder = compactPlaceholder ? 'Message' : 'Send a message'\n if (replyRootId) {\n placeholder = compactPlaceholder ? 'Reply' : 'Send a reply'\n }\n if (usingGiphy) {\n placeholder = compactPlaceholder ? 'Search' : 'Search GIFs'\n }\n\n return (\n <View style={styles.textInputBoundary}>\n <MessageFormAttachments />\n {attachmentError ? <Text style={styles.inputErrorMessage}>{attachmentError}</Text> : null}\n <View style={styles.textInputRow}>\n {usingGiphy ? (\n <View style={styles.giphyBadge}>\n <Icon name=\"general.bolt\" style={styles.giphyBadgeIcon} />\n <Text variant=\"tertiary\" style={styles.giphyBadgeText}>\n /giphy\n </Text>\n </View>\n ) : null}\n\n <TextInput\n testID=\"message-composer-input\"\n style={[styles.textInput, usingGiphy && styles.textInputWithGiphy]}\n multiline={true}\n placeholder={placeholder}\n placeholderTextColor={theme.colors.textColorDefaultPlaceholder}\n onChangeText={handleTextChange}\n value={text}\n maxLength={usingGiphy ? GIPHY_MAX_LENGTH : MAX_MESSAGE_LENGTH}\n onSubmitEditing={onSubmit}\n submitBehavior={usingGiphy ? 'submit' : 'newline'}\n editable={inputEditable}\n />\n </View>\n </View>\n )\n}\n\nconst SUBMIT_ACCESSIBILITY_LABEL_MAP = {\n giphy: 'Search Giphy',\n editing: 'Save changes',\n send: 'Send message',\n} as const\n\nconst SUBMIT_ICON_NAME_MAP = {\n giphy: 'general.search',\n editing: 'general.check',\n send: 'general.upArrow',\n} as const\n\nfunction MessageFormSubmitBtn() {\n const { onSubmit, disabled, usingGiphy, currentlyEditingMessage } =\n React.useContext(MessageFormContext)\n const styles = useMessageFormStyles()\n const { colors } = useTheme()\n\n const formStateKey = usingGiphy ? 'giphy' : currentlyEditingMessage ? 'editing' : 'send'\n const colorKey = disabled ? 'disabled' : 'interaction'\n const interactionStart = colors.buttonStart || colors.interaction\n const interactionEnd = colors.buttonEnd || colors.interaction\n const colorMap = {\n disabled: [\n colors.fillColorButtonNeutralSolidDisabled,\n colors.fillColorButtonNeutralSolidDisabled,\n ],\n interaction: [interactionStart, interactionEnd],\n }\n\n const androidRippleColor = useCreateAndroidRippleColor({ color: colorMap[colorKey][0] })\n const gradientColors = colorMap[colorKey] as [string, string]\n const iconStyles = [styles.submitIcon, disabled && styles.submitIconDisabled]\n\n return (\n <Pressable\n disabled={disabled}\n onPress={onSubmit}\n accessibilityRole=\"button\"\n accessibilityLabel={SUBMIT_ACCESSIBILITY_LABEL_MAP[formStateKey]}\n style={({ pressed }) => [\n styles.submitPressableWrapper,\n pressed && platformPressedOpacityStyle,\n ]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n >\n <LinearGradient\n start={{ x: 0.1, y: 0.1 }}\n end={{ x: 0.9, y: 0.9 }}\n colors={gradientColors}\n style={styles.submitGradientWrapper}\n >\n <Icon\n name={SUBMIT_ICON_NAME_MAP[formStateKey]}\n style={iconStyles}\n accessibilityElementsHidden={true}\n />\n </LinearGradient>\n </Pressable>\n )\n}\n\nfunction MessageFormAttachmentPicker() {\n const styles = useMessageFormStyles()\n const { usingGiphy, attachmentUploader, currentlyEditingMessage } =\n React.useContext(MessageFormContext)\n const { allowedMimeTypes } = useChatConfiguration()\n const [isOpen, setIsOpen] = useState(false)\n\n function uploadImagePickerResult(result: ImagePickerResult) {\n if (result.canceled) {\n return\n }\n\n const filteredAssets = result.assets\n .filter(asset => {\n return asset.fileSize && asset.mimeType && asset.uri\n })\n .map(asset => {\n return {\n uri: asset.uri,\n name: asset.fileName || asset.uri.split('/').pop() || 'attachment',\n type: asset.mimeType as string,\n size: asset.fileSize as number,\n height: asset.height,\n width: asset.width,\n }\n })\n\n attachmentUploader?.handleFilesAttached(filteredAssets)\n }\n\n function uploadDocumentPickerResult(result: DocumentPickerResult) {\n if (result.canceled) return\n\n const filteredAssets = result.assets\n .filter(asset => asset.size != null && asset.uri)\n .map(asset => ({\n uri: asset.uri,\n name: asset.name,\n type: asset.mimeType || 'application/octet-stream',\n size: asset.size as number,\n }))\n\n attachmentUploader?.handleFilesAttached(filteredAssets)\n }\n\n const openCamera = async () => {\n setIsOpen(false)\n let result = await ImagePicker.openCameraAsync()\n if (!result.canceled) {\n uploadImagePickerResult(result)\n }\n }\n\n const pickImage = async () => {\n setIsOpen(false)\n let result = await ImagePicker.openImageLibraryAsync()\n if (!result.canceled) {\n uploadImagePickerResult(result)\n }\n }\n\n const pickFile = async () => {\n setIsOpen(false)\n let result = await DocumentPicker.openAsync({ mimeTypes: allowedMimeTypes })\n if (!result.canceled) {\n uploadDocumentPickerResult(result)\n }\n }\n\n if (usingGiphy || currentlyEditingMessage) {\n return null\n }\n\n return (\n <View style={styles.attachmentPicker}>\n {isOpen && (\n <View style={styles.attachmentPickerButtonsContainer}>\n <IconButton\n accessibilityLabel=\"Take a photo\"\n accessibilityHint=\"Opens your camera\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"chat.camera\"\n onPress={openCamera}\n style={styles.attachmentPickerButton}\n />\n <IconButton\n accessibilityLabel=\"Choose a photo\"\n accessibilityHint=\"Opens your photo gallery\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"churchCenter.photosIos\"\n onPress={pickImage}\n style={styles.attachmentPickerButton}\n />\n {DocumentPicker.configured && (\n <IconButton\n accessibilityLabel=\"Attach a file\"\n accessibilityHint=\"Opens your files to attach documents\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.blankFile\"\n onPress={pickFile}\n style={styles.attachmentPickerButton}\n />\n )}\n </View>\n )}\n <IconButton\n accessibilityLabel=\"File Menu\"\n accessibilityHint=\"Opens options to attach or take a photo\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.paperclip\"\n onPress={() => setIsOpen(!isOpen)}\n style={styles.formButton}\n />\n </View>\n )\n}\n\nfunction MessageFormCommands() {\n const { text, canGiphy, usingGiphy, setUsingGiphy } = React.useContext(MessageFormContext)\n const styles = useMessageFormStyles()\n\n if (!canGiphy) {\n return null\n }\n\n if (usingGiphy) {\n return (\n <IconButton\n accessibilityLabel=\"Exit Giphy Search\"\n accessibilityHint=\"Changes input back to a text field for sending messages\"\n size=\"lg\"\n appearance=\"neutral\"\n name=\"general.xCircle\"\n onPress={() => setUsingGiphy(false)}\n style={styles.formButton}\n />\n )\n }\n\n return (\n <IconButton\n accessibilityLabel=\"Search Giphy\"\n accessibilityHint=\"Changes input into a search field for finding Giphys\"\n size=\"lg\"\n appearance=\"neutral\"\n name={'general.bolt'}\n onPress={() => setUsingGiphy(true)}\n disabled={text.length > GIPHY_MAX_LENGTH}\n style={styles.formButton}\n />\n )\n}\n\nfunction EditingIndicator() {\n const { currentlyEditingMessage, reset } = React.useContext(MessageFormContext)\n\n if (!currentlyEditingMessage) {\n return null\n }\n\n return (\n <FormIndicatorRow\n title=\"Editing message\"\n buttonText=\"Cancel\"\n accessibilityHint=\"Exit message editing mode without saving\"\n iconName=\"accounts.editor\"\n onPress={() => reset()}\n />\n )\n}\n\nfunction ReplyIndicator() {\n const { replyRootId, replyRootAuthorFirstName } = React.useContext(MessageFormContext)\n const navigation = useNavigation()\n const title = replyRootAuthorFirstName ? `Reply to ${replyRootAuthorFirstName}` : 'Reply'\n\n if (!replyRootId) return null\n\n return (\n <FormIndicatorRow\n title={title}\n buttonText=\"Exit replies\"\n accessibilityHint=\"Return to the main conversation\"\n iconName=\"registrations.undo\"\n onPress={() => navigation.goBack()}\n />\n )\n}\n\ninterface FormIndicatorRowProps {\n title: string\n buttonText: string\n accessibilityHint: string\n onPress: () => void\n iconName: IconString\n}\n\nfunction FormIndicatorRow({\n title,\n buttonText,\n accessibilityHint,\n iconName,\n onPress,\n}: FormIndicatorRowProps) {\n const styles = useMessageFormStyles()\n const scalableNumberOfLines = useScalableNumberOfLines(1)\n\n return (\n <View style={styles.formIndicatorRow}>\n <View style={styles.formIndicatorRowTitleContainer}>\n <Icon name={iconName} size={16} style={styles.formIndicatorRowIcon} />\n <Heading\n variant=\"h4\"\n style={styles.formIndicatorRowTitle}\n numberOfLines={scalableNumberOfLines}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {title}\n </Heading>\n </View>\n <TextButton\n onPress={onPress}\n accessibilityHint={accessibilityHint}\n maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}\n >\n {buttonText}\n </TextButton>\n </View>\n )\n}\n\nconst useMessageFormStyles = () => {\n const theme = useTheme()\n const navigationTheme = useNavigationTheme()\n const buttonSize = 38\n\n const giphyBadgeBackgroundColor = useInteractionTintedBackgroundColor()\n\n return StyleSheet.create({\n container: {\n borderColor: theme.colors.borderColorDefaultDim,\n borderTopWidth: 1,\n padding: 12,\n },\n textInputContainer: {\n backgroundColor: navigationTheme.colors.card,\n flexDirection: 'row',\n alignItems: 'flex-end',\n gap: 16,\n },\n textInputBoundary: {\n overflow: 'hidden',\n borderRadius: 24,\n borderWidth: 1,\n borderColor: theme.colors.fillColorNeutral050Base,\n flex: 1,\n gap: 8,\n },\n textInputRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n textInput: {\n paddingBottom: 8,\n // TODO: Remove iOS's extra top padding and use `textAlignVertical: \"center\"` for both platforms when services-react-native upgrades to v0.74.5 or greater.\n paddingTop: Platform.select({\n ios: 9, // Extra padding compensates for `textAlignVertical` not working in Services iOS.\n default: 8,\n }),\n textAlignVertical: Platform.select({\n ios: 'top', // Services iOS doesn't support `textAlignVertical` due to its lower React Native version of 0.72.14. (React Native 0.74.5+ seems to support this style.)\n default: 'center', // centers the text vertically for multiline TextInput.\n }),\n paddingHorizontal: 16,\n color: theme.colors.textColorDefaultPrimary,\n justifyContent: 'center',\n flex: 1,\n fontSize: 16,\n maxHeight: 200,\n },\n textInputWithGiphy: {\n paddingLeft: 0,\n },\n giphyBadge: {\n backgroundColor: giphyBadgeBackgroundColor,\n borderRadius: 24,\n paddingVertical: 4,\n paddingHorizontal: 12,\n marginLeft: 6,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n },\n giphyBadgeText: {\n color: theme.colors.interaction,\n marginBottom: 1,\n },\n giphyBadgeIcon: {\n color: theme.colors.interaction,\n },\n formButton: {\n height: buttonSize,\n },\n submitPressableWrapper: {\n borderRadius: buttonSize,\n overflow: 'hidden',\n },\n submitGradientWrapper: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: buttonSize,\n height: buttonSize,\n width: buttonSize,\n },\n submitIcon: {\n fontSize: 16,\n color: tokens.colorNeutral100White,\n },\n submitIconDisabled: {\n color: theme.colors.iconColorDefaultDisabled,\n },\n attachmentPicker: {\n position: 'relative',\n },\n attachmentPickerButtonsContainer: {\n position: 'absolute',\n left: 0,\n bottom: 40,\n zIndex: 10,\n gap: 12,\n },\n attachmentPickerButton: {\n backgroundColor: theme.colors.fillColorNeutral070,\n borderRadius: 20,\n height: buttonSize,\n width: buttonSize,\n elevation: 3,\n ...Platform.select({\n ios: {\n borderWidth: 1,\n borderColor: theme.colors.borderColorDefaultBase,\n },\n default: null,\n }),\n },\n messageFormAttachments: {\n overflow: 'hidden',\n paddingHorizontal: 12,\n paddingTop: 12,\n gap: 8,\n },\n inputErrorMessage: {\n color: theme.colors.statusErrorText,\n fontSize: 14,\n paddingHorizontal: 16,\n paddingVertical: 4,\n },\n flaggedBannerContainer: {\n paddingBottom: 12,\n },\n flaggedBannerText: {\n color: theme.colors.textColorDefaultPrimary,\n fontSize: 14,\n },\n flaggedBannerLink: {\n color: theme.colors.textColorDefaultPrimary,\n fontSize: 14,\n textDecorationLine: 'underline' as const,\n },\n flaggedBannerButtonRow: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n marginTop: 4,\n },\n formIndicatorRow: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 8,\n paddingBottom: 12,\n },\n formIndicatorRowTitleContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n flex: 1,\n },\n formIndicatorRowIcon: {\n color: theme.colors.iconColorDefaultSecondary,\n },\n formIndicatorRowTitle: {\n fontWeight: platformFontWeightMedium,\n textTransform: 'none',\n flexShrink: 1,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}