@planningcenter/chat-react-native 4.4.1-qa-staging.13 → 4.4.1-qa-staging.15

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 (108) hide show
  1. package/build/components/conversation/message.d.ts +2 -1
  2. package/build/components/conversation/message.d.ts.map +1 -1
  3. package/build/components/conversation/message.js +190 -161
  4. package/build/components/conversation/message.js.map +1 -1
  5. package/build/components/conversation/message_list.d.ts.map +1 -1
  6. package/build/components/conversation/message_list.js +35 -31
  7. package/build/components/conversation/message_list.js.map +1 -1
  8. package/build/components/conversation/message_reaction.d.ts +2 -1
  9. package/build/components/conversation/message_reaction.d.ts.map +1 -1
  10. package/build/components/conversation/message_reaction.js +67 -60
  11. package/build/components/conversation/message_reaction.js.map +1 -1
  12. package/build/components/conversation/messages_disabled_banners.d.ts +7 -5
  13. package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
  14. package/build/components/conversation/messages_disabled_banners.js +15 -14
  15. package/build/components/conversation/messages_disabled_banners.js.map +1 -1
  16. package/build/components/conversation/reply_shadow_message.d.ts.map +1 -1
  17. package/build/components/conversation/reply_shadow_message.js +84 -83
  18. package/build/components/conversation/reply_shadow_message.js.map +1 -1
  19. package/build/components/conversation/system_message.d.ts +2 -1
  20. package/build/components/conversation/system_message.d.ts.map +1 -1
  21. package/build/components/conversation/system_message.js +87 -65
  22. package/build/components/conversation/system_message.js.map +1 -1
  23. package/build/components/display/filter_dropdown.d.ts +13 -0
  24. package/build/components/display/filter_dropdown.d.ts.map +1 -0
  25. package/build/components/display/filter_dropdown.js +188 -0
  26. package/build/components/display/filter_dropdown.js.map +1 -0
  27. package/build/components/display/index.d.ts +1 -0
  28. package/build/components/display/index.d.ts.map +1 -1
  29. package/build/components/display/index.js +1 -0
  30. package/build/components/display/index.js.map +1 -1
  31. package/build/hooks/use_conversation.d.ts +73 -1
  32. package/build/hooks/use_conversation.d.ts.map +1 -1
  33. package/build/hooks/use_conversation.js +122 -3
  34. package/build/hooks/use_conversation.js.map +1 -1
  35. package/build/hooks/use_unarchive_conversation_action.d.ts +7 -0
  36. package/build/hooks/use_unarchive_conversation_action.d.ts.map +1 -0
  37. package/build/hooks/use_unarchive_conversation_action.js +52 -0
  38. package/build/hooks/use_unarchive_conversation_action.js.map +1 -0
  39. package/build/screens/attachment_actions/attachment_actions_screen.d.ts.map +1 -1
  40. package/build/screens/attachment_actions/attachment_actions_screen.js +84 -61
  41. package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
  42. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  43. package/build/screens/conversation_details_screen.js +487 -393
  44. package/build/screens/conversation_details_screen.js.map +1 -1
  45. package/build/screens/conversation_screen.d.ts.map +1 -1
  46. package/build/screens/conversation_screen.js +12 -9
  47. package/build/screens/conversation_screen.js.map +1 -1
  48. package/build/screens/design_system_screen.d.ts.map +1 -1
  49. package/build/screens/design_system_screen.js +275 -215
  50. package/build/screens/design_system_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 +112 -92
  53. package/build/screens/message_actions_screen.js.map +1 -1
  54. package/build/types/resources/member_ability.d.ts +2 -0
  55. package/build/types/resources/member_ability.d.ts.map +1 -1
  56. package/build/types/resources/member_ability.js.map +1 -1
  57. package/build/utils/archived_conversation.d.ts +5 -0
  58. package/build/utils/archived_conversation.d.ts.map +1 -0
  59. package/build/utils/archived_conversation.js +5 -0
  60. package/build/utils/archived_conversation.js.map +1 -0
  61. package/build/utils/index.d.ts +1 -0
  62. package/build/utils/index.d.ts.map +1 -1
  63. package/build/utils/index.js +1 -0
  64. package/build/utils/index.js.map +1 -1
  65. package/build/utils/native_adapters/configuration.d.ts +3 -0
  66. package/build/utils/native_adapters/configuration.d.ts.map +1 -1
  67. package/build/utils/native_adapters/configuration.js +3 -0
  68. package/build/utils/native_adapters/configuration.js.map +1 -1
  69. package/build/utils/native_adapters/index.d.ts +1 -0
  70. package/build/utils/native_adapters/index.d.ts.map +1 -1
  71. package/build/utils/native_adapters/index.js +1 -0
  72. package/build/utils/native_adapters/index.js.map +1 -1
  73. package/build/utils/native_adapters/menu.d.ts +40 -0
  74. package/build/utils/native_adapters/menu.d.ts.map +1 -0
  75. package/build/utils/native_adapters/menu.js +55 -0
  76. package/build/utils/native_adapters/menu.js.map +1 -0
  77. package/package.json +3 -3
  78. package/src/__tests__/screens/message_actions_screen.test.tsx +65 -2
  79. package/src/components/conversation/__tests__/message_list.test.tsx +68 -2
  80. package/src/components/conversation/__tests__/system_message.test.tsx +3 -1
  81. package/src/components/conversation/message.tsx +11 -14
  82. package/src/components/conversation/message_list.tsx +9 -1
  83. package/src/components/conversation/message_reaction.tsx +7 -2
  84. package/src/components/conversation/messages_disabled_banners.tsx +17 -18
  85. package/src/components/conversation/reply_shadow_message.tsx +9 -8
  86. package/src/components/conversation/system_message.tsx +24 -10
  87. package/src/components/display/__tests__/filter_dropdown.test.tsx +106 -0
  88. package/src/components/display/filter_dropdown.tsx +123 -0
  89. package/src/components/display/index.ts +1 -0
  90. package/src/hooks/__tests__/use_conversation_archive.test.tsx +130 -0
  91. package/src/hooks/__tests__/use_conversation_jolt_events.test.tsx +74 -0
  92. package/src/hooks/__tests__/use_unarchive_conversation_action.test.tsx +67 -0
  93. package/src/hooks/use_conversation.ts +41 -3
  94. package/src/hooks/use_unarchive_conversation_action.ts +24 -0
  95. package/src/screens/__tests__/conversation_details_screen.test.tsx +289 -0
  96. package/src/screens/attachment_actions/__tests__/attachment_actions_screen.test.tsx +72 -0
  97. package/src/screens/attachment_actions/attachment_actions_screen.tsx +3 -1
  98. package/src/screens/conversation_details_screen.tsx +78 -14
  99. package/src/screens/conversation_screen.tsx +3 -1
  100. package/src/screens/design_system_screen.tsx +26 -0
  101. package/src/screens/message_actions_screen.tsx +29 -20
  102. package/src/types/resources/member_ability.ts +2 -0
  103. package/src/utils/archived_conversation.ts +13 -0
  104. package/src/utils/index.ts +1 -0
  105. package/src/utils/native_adapters/__tests__/menu.test.tsx +42 -0
  106. package/src/utils/native_adapters/configuration.ts +5 -0
  107. package/src/utils/native_adapters/index.ts +1 -0
  108. package/src/utils/native_adapters/menu.tsx +68 -0
@@ -1,6 +1,7 @@
1
1
  import { c as _c } from "react/compiler-runtime";
2
2
  import { useMutation, useQueryClient } from '@tanstack/react-query';
3
3
  import { useState } from 'react';
4
+ import { Alert } from 'react-native';
4
5
  import { transformGetToPost } from '../utils/client/request_helpers';
5
6
  import { Haptic } from '../utils/native_adapters';
6
7
  import { getConversationsRequestArgs } from '../utils/request/conversation';
@@ -14,7 +15,7 @@ export const getConversationRequestArgs = ({
14
15
  fields: {
15
16
  Conversation: ['analytics_metadata', 'created_at', 'badges', 'conversation_membership', 'conversation_preview', 'gender_option', 'groups', 'last_message_author_id', 'last_message_author_name', 'last_message_created_at', 'last_message_text_preview', 'latest_read_message_sort_key', 'preview_avatar_urls', 'custom_avatar_type', 'custom_avatar_key', 'custom_avatar_color', 'custom_avatar_image_url', 'direct_message', 'disabled', 'disabled_reason', 'disabled_message', 'member_ability', 'muted', 'replies_disabled', 'title', 'unread_count', 'unread_reaction', 'updated_at'],
16
17
  AnalyticsMetadata: ['metadata'],
17
- MemberAbility: ['can_update', 'can_delete', 'leader', 'can_reply', 'can_delete_non_authored_messages', 'can_message_available_members'],
18
+ MemberAbility: ['can_update', 'can_delete', 'leader', 'can_reply', 'can_delete_non_authored_messages', 'can_message_available_members', 'can_archive', 'can_unarchive'],
18
19
  ConversationMembership: ['last_read_message_sort_key', 'notification_level', 'notification_level_description', 'notification_level_options', 'muted'],
19
20
  ConversationBadge: ['app_name', 'pco_resource_type', 'text'],
20
21
  Group: ['type', 'id', 'links', 'name', 'source_app_name', 'source_type']
@@ -22,7 +23,7 @@ export const getConversationRequestArgs = ({
22
23
  include: ['badges', 'conversation_membership', 'member_ability', 'groups', 'analytics_metadata']
23
24
  }
24
25
  });
25
- export const useConversation = t0 => {
26
+ export const useConversation = (t0, options) => {
26
27
  const $ = _c(2);
27
28
  const {
28
29
  conversation_id
@@ -38,7 +39,7 @@ export const useConversation = t0 => {
38
39
  t1 = $[1];
39
40
  }
40
41
  const args = t1;
41
- return useSuspenseGet(args);
42
+ return useSuspenseGet(args, options);
42
43
  };
43
44
  export const useConversationMute = t0 => {
44
45
  const $ = _c(25);
@@ -353,6 +354,121 @@ export const useConversationDelete = t0 => {
353
354
  }
354
355
  return useMutation(t5);
355
356
  };
357
+ export const useConversationArchive = t0 => {
358
+ const $ = _c(19);
359
+ const {
360
+ conversation_id
361
+ } = t0;
362
+ const apiClient = useApiClient();
363
+ const queryClient = useQueryClient();
364
+ let t1;
365
+ if ($[0] !== conversation_id) {
366
+ t1 = getRequestQueryKey(getConversationRequestArgs({
367
+ conversation_id
368
+ }));
369
+ $[0] = conversation_id;
370
+ $[1] = t1;
371
+ } else {
372
+ t1 = $[1];
373
+ }
374
+ const conversationQueryKey = t1;
375
+ let t2;
376
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
377
+ t2 = getConversationsRequestArgs();
378
+ $[2] = t2;
379
+ } else {
380
+ t2 = $[2];
381
+ }
382
+ const {
383
+ url
384
+ } = t2;
385
+ let t3;
386
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
387
+ t3 = ["archiveConversation"];
388
+ $[3] = t3;
389
+ } else {
390
+ t3 = $[3];
391
+ }
392
+ let t4;
393
+ if ($[4] !== apiClient || $[5] !== conversation_id) {
394
+ t4 = async archived => {
395
+ const action = archived ? "archive" : "unarchive";
396
+ return apiClient.chat.post({
397
+ url: `/me/conversations/${conversation_id}/${action}`,
398
+ data: {
399
+ data: {
400
+ type: "Conversation",
401
+ attributes: {}
402
+ }
403
+ }
404
+ });
405
+ };
406
+ $[4] = apiClient;
407
+ $[5] = conversation_id;
408
+ $[6] = t4;
409
+ } else {
410
+ t4 = $[6];
411
+ }
412
+ let t5;
413
+ if ($[7] !== conversationQueryKey || $[8] !== queryClient) {
414
+ t5 = () => {
415
+ Haptic.notificationSuccess();
416
+ queryClient.invalidateQueries({
417
+ queryKey: [url]
418
+ });
419
+ return queryClient.invalidateQueries({
420
+ queryKey: conversationQueryKey
421
+ });
422
+ };
423
+ $[7] = conversationQueryKey;
424
+ $[8] = queryClient;
425
+ $[9] = t5;
426
+ } else {
427
+ t5 = $[9];
428
+ }
429
+ let t6;
430
+ if ($[10] !== t4 || $[11] !== t5) {
431
+ t6 = {
432
+ mutationKey: t3,
433
+ mutationFn: t4,
434
+ onSuccess: t5,
435
+ onError: _temp
436
+ };
437
+ $[10] = t4;
438
+ $[11] = t5;
439
+ $[12] = t6;
440
+ } else {
441
+ t6 = $[12];
442
+ }
443
+ const t7 = useMutation(t6);
444
+ let mutation;
445
+ let setArchived;
446
+ if ($[13] !== t7) {
447
+ ({
448
+ mutate: setArchived,
449
+ ...mutation
450
+ } = t7);
451
+ $[13] = t7;
452
+ $[14] = mutation;
453
+ $[15] = setArchived;
454
+ } else {
455
+ mutation = $[14];
456
+ setArchived = $[15];
457
+ }
458
+ let t8;
459
+ if ($[16] !== mutation || $[17] !== setArchived) {
460
+ t8 = {
461
+ setArchived,
462
+ ...mutation
463
+ };
464
+ $[16] = mutation;
465
+ $[17] = setArchived;
466
+ $[18] = t8;
467
+ } else {
468
+ t8 = $[18];
469
+ }
470
+ return t8;
471
+ };
356
472
  export const useConversationDisableReplies = t0 => {
357
473
  const $ = _c(25);
358
474
  const {
@@ -492,4 +608,7 @@ export const useConversationDisableReplies = t0 => {
492
608
  }
493
609
  return t9;
494
610
  };
611
+ function _temp(_error, archived_0) {
612
+ Alert.alert("Oops", `Couldn't ${archived_0 ? "archive" : "unarchive"} this conversation. Please try again.`);
613
+ }
495
614
  //# sourceMappingURL=use_conversation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use_conversation.js","names":["useMutation","useQueryClient","useState","transformGetToPost","Haptic","getConversationsRequestArgs","useApiClient","getRequestQueryKey","useSuspenseGet","getConversationRequestArgs","conversation_id","url","data","fields","Conversation","AnalyticsMetadata","MemberAbility","ConversationMembership","ConversationBadge","Group","include","useConversation","t0","$","_c","t1","args","useConversationMute","apiClient","queryClient","requestArgs","queryKey","t2","conversation","value","setValue","muted","t3","setQueryData","prev","conversationMembership","t4","Symbol","for","t5","muted_0","action","chat","post","type","attributes","t6","response","invalidateQueries","prev_0","t7","onMutate","mutationKey","mutationFn","onSuccess","t8","mutation","setMuted","mutate","t9","useConversationUpdate","update","update_0","postArgs","patch","useConversationDelete","delete","notificationSuccess","useConversationDisableReplies","repliesDisabled","repliesDisabled_0","replies_disabled","setRepliesDisabled"],"sources":["../../src/hooks/use_conversation.ts"],"sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { useState } from 'react'\nimport { ApiResource, ConversationResource } from '../types'\nimport { transformGetToPost } from '../utils/client/request_helpers'\nimport { Haptic } from '../utils/native_adapters'\nimport { getConversationsRequestArgs } from '../utils/request/conversation'\nimport { useApiClient } from './use_api_client'\nimport { getRequestQueryKey, useSuspenseGet } from './use_suspense_api'\n\nexport const getConversationRequestArgs = ({ conversation_id }: { conversation_id: number }) => ({\n url: `/me/conversations/${conversation_id}`,\n data: {\n fields: {\n Conversation: [\n 'analytics_metadata',\n 'created_at',\n 'badges',\n 'conversation_membership',\n 'conversation_preview',\n 'gender_option',\n 'groups',\n 'last_message_author_id',\n 'last_message_author_name',\n 'last_message_created_at',\n 'last_message_text_preview',\n 'latest_read_message_sort_key',\n 'preview_avatar_urls',\n 'custom_avatar_type',\n 'custom_avatar_key',\n 'custom_avatar_color',\n 'custom_avatar_image_url',\n 'direct_message',\n 'disabled',\n 'disabled_reason',\n 'disabled_message',\n 'member_ability',\n 'muted',\n 'replies_disabled',\n 'title',\n 'unread_count',\n 'unread_reaction',\n 'updated_at',\n ],\n AnalyticsMetadata: ['metadata'],\n MemberAbility: [\n 'can_update',\n 'can_delete',\n 'leader',\n 'can_reply',\n 'can_delete_non_authored_messages',\n 'can_message_available_members',\n ],\n ConversationMembership: [\n 'last_read_message_sort_key',\n 'notification_level',\n 'notification_level_description',\n 'notification_level_options',\n 'muted',\n ],\n ConversationBadge: ['app_name', 'pco_resource_type', 'text'],\n Group: ['type', 'id', 'links', 'name', 'source_app_name', 'source_type'],\n },\n include: [\n 'badges',\n 'conversation_membership',\n 'member_ability',\n 'groups',\n 'analytics_metadata',\n ],\n },\n})\n\nexport const useConversation = ({ conversation_id }: { conversation_id: number }) => {\n const args = getConversationRequestArgs({ conversation_id })\n\n return useSuspenseGet<ConversationResource>(args)\n}\n\nexport const useConversationMute = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n const { data: conversation } = useConversation({ conversation_id })\n const [value, setValue] = useState<boolean>(conversation.muted)\n\n const { mutate: setMuted, ...mutation } = useMutation({\n onMutate: async (muted: boolean) => {\n return queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n setValue(muted)\n prev.data.muted = muted\n if (prev.data.conversationMembership) {\n prev.data.conversationMembership.muted = muted\n }\n\n return prev\n })\n },\n mutationKey: ['muteConversation'],\n mutationFn: async (muted: boolean) => {\n const action = muted ? 'mute' : 'unmute'\n\n return apiClient.chat.post<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}/${action}`,\n data: { data: { type: '', attributes: {} }, fields: { Conversation: 'muted' } },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n queryClient.invalidateQueries({ queryKey: ['/me/conversations'] })\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n\n // Posting to the mute action endpoint can't return all the fields\n // so we need to set only the fields we require\n prev.data.muted = response.data.muted\n if (prev.data.conversationMembership) {\n prev.data.conversationMembership.muted = response.data.muted\n }\n setValue(response.data.muted)\n\n return prev\n })\n },\n })\n\n return { muted: value, setMuted, ...mutation }\n}\n\nexport const useConversationUpdate = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n\n return useMutation({\n onMutate: async (update: Partial<ConversationResource>) => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (prev?.data) {\n prev.data = {\n ...prev.data,\n ...update,\n }\n }\n\n return prev\n })\n },\n mutationKey: ['mutateConversation'],\n mutationFn: async (update: Partial<ConversationResource>) => {\n const postArgs = transformGetToPost(requestArgs).data\n return apiClient.chat.patch<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}/`,\n data: { data: { type: '', attributes: update }, ...postArgs },\n })\n },\n onSuccess: response => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, () => response)\n },\n })\n}\n\nexport const useConversationDelete = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const { url } = getConversationsRequestArgs()\n\n return useMutation({\n mutationKey: ['deleteConversation'],\n mutationFn: async () => {\n return apiClient.chat.delete({\n url: `/me/conversations/${conversation_id}`,\n })\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: [url] })\n Haptic.notificationSuccess()\n },\n })\n}\n\nexport const useConversationDisableReplies = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n const { data: conversation } = useConversation({ conversation_id })\n const [value, setValue] = useState<boolean>(conversation.repliesDisabled)\n\n const { mutate: setRepliesDisabled, ...mutation } = useMutation({\n onMutate: async (repliesDisabled: boolean) => {\n return queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n setValue(repliesDisabled)\n prev.data.repliesDisabled = repliesDisabled\n\n return prev\n })\n },\n mutationKey: ['disableRepliesConversation'],\n mutationFn: async (repliesDisabled: boolean) => {\n return apiClient.chat.patch<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}`,\n data: {\n data: {\n type: 'Conversation',\n attributes: {\n replies_disabled: repliesDisabled,\n },\n },\n },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n\n prev.data.repliesDisabled = response.data.repliesDisabled\n setValue(response.data.repliesDisabled)\n\n return prev\n })\n },\n })\n\n return { repliesDisabled: value, setRepliesDisabled, ...mutation }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"use_conversation.js","names":["useMutation","useQueryClient","useState","Alert","transformGetToPost","Haptic","getConversationsRequestArgs","useApiClient","getRequestQueryKey","useSuspenseGet","getConversationRequestArgs","conversation_id","url","data","fields","Conversation","AnalyticsMetadata","MemberAbility","ConversationMembership","ConversationBadge","Group","include","useConversation","t0","options","$","_c","t1","args","useConversationMute","apiClient","queryClient","requestArgs","queryKey","t2","conversation","value","setValue","muted","t3","setQueryData","prev","conversationMembership","t4","Symbol","for","t5","muted_0","action","chat","post","type","attributes","t6","response","invalidateQueries","prev_0","t7","onMutate","mutationKey","mutationFn","onSuccess","t8","mutation","setMuted","mutate","t9","useConversationUpdate","update","update_0","postArgs","patch","useConversationDelete","delete","notificationSuccess","useConversationArchive","conversationQueryKey","archived","onError","_temp","setArchived","useConversationDisableReplies","repliesDisabled","repliesDisabled_0","replies_disabled","setRepliesDisabled","_error","archived_0","alert"],"sources":["../../src/hooks/use_conversation.ts"],"sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { useState } from 'react'\nimport { Alert } from 'react-native'\nimport { ApiResource, ConversationResource } from '../types'\nimport { transformGetToPost } from '../utils/client/request_helpers'\nimport { Haptic } from '../utils/native_adapters'\nimport { getConversationsRequestArgs } from '../utils/request/conversation'\nimport { useApiClient } from './use_api_client'\nimport { getRequestQueryKey, SuspenseGetQueryOptions, useSuspenseGet } from './use_suspense_api'\n\nexport const getConversationRequestArgs = ({ conversation_id }: { conversation_id: number }) => ({\n url: `/me/conversations/${conversation_id}`,\n data: {\n fields: {\n Conversation: [\n 'analytics_metadata',\n 'created_at',\n 'badges',\n 'conversation_membership',\n 'conversation_preview',\n 'gender_option',\n 'groups',\n 'last_message_author_id',\n 'last_message_author_name',\n 'last_message_created_at',\n 'last_message_text_preview',\n 'latest_read_message_sort_key',\n 'preview_avatar_urls',\n 'custom_avatar_type',\n 'custom_avatar_key',\n 'custom_avatar_color',\n 'custom_avatar_image_url',\n 'direct_message',\n 'disabled',\n 'disabled_reason',\n 'disabled_message',\n 'member_ability',\n 'muted',\n 'replies_disabled',\n 'title',\n 'unread_count',\n 'unread_reaction',\n 'updated_at',\n ],\n AnalyticsMetadata: ['metadata'],\n MemberAbility: [\n 'can_update',\n 'can_delete',\n 'leader',\n 'can_reply',\n 'can_delete_non_authored_messages',\n 'can_message_available_members',\n 'can_archive',\n 'can_unarchive',\n ],\n ConversationMembership: [\n 'last_read_message_sort_key',\n 'notification_level',\n 'notification_level_description',\n 'notification_level_options',\n 'muted',\n ],\n ConversationBadge: ['app_name', 'pco_resource_type', 'text'],\n Group: ['type', 'id', 'links', 'name', 'source_app_name', 'source_type'],\n },\n include: [\n 'badges',\n 'conversation_membership',\n 'member_ability',\n 'groups',\n 'analytics_metadata',\n ],\n },\n})\n\nexport const useConversation = (\n { conversation_id }: { conversation_id: number },\n options?: SuspenseGetQueryOptions<ConversationResource>\n) => {\n const args = getConversationRequestArgs({ conversation_id })\n\n return useSuspenseGet<ConversationResource>(args, options)\n}\n\nexport const useConversationMute = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n const { data: conversation } = useConversation({ conversation_id })\n const [value, setValue] = useState<boolean>(conversation.muted)\n\n const { mutate: setMuted, ...mutation } = useMutation({\n onMutate: async (muted: boolean) => {\n return queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n setValue(muted)\n prev.data.muted = muted\n if (prev.data.conversationMembership) {\n prev.data.conversationMembership.muted = muted\n }\n\n return prev\n })\n },\n mutationKey: ['muteConversation'],\n mutationFn: async (muted: boolean) => {\n const action = muted ? 'mute' : 'unmute'\n\n return apiClient.chat.post<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}/${action}`,\n data: { data: { type: '', attributes: {} }, fields: { Conversation: 'muted' } },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n queryClient.invalidateQueries({ queryKey: ['/me/conversations'] })\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n\n // Posting to the mute action endpoint can't return all the fields\n // so we need to set only the fields we require\n prev.data.muted = response.data.muted\n if (prev.data.conversationMembership) {\n prev.data.conversationMembership.muted = response.data.muted\n }\n setValue(response.data.muted)\n\n return prev\n })\n },\n })\n\n return { muted: value, setMuted, ...mutation }\n}\n\nexport const useConversationUpdate = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n\n return useMutation({\n onMutate: async (update: Partial<ConversationResource>) => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (prev?.data) {\n prev.data = {\n ...prev.data,\n ...update,\n }\n }\n\n return prev\n })\n },\n mutationKey: ['mutateConversation'],\n mutationFn: async (update: Partial<ConversationResource>) => {\n const postArgs = transformGetToPost(requestArgs).data\n return apiClient.chat.patch<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}/`,\n data: { data: { type: '', attributes: update }, ...postArgs },\n })\n },\n onSuccess: response => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, () => response)\n },\n })\n}\n\nexport const useConversationDelete = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const { url } = getConversationsRequestArgs()\n\n return useMutation({\n mutationKey: ['deleteConversation'],\n mutationFn: async () => {\n return apiClient.chat.delete({\n url: `/me/conversations/${conversation_id}`,\n })\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: [url] })\n Haptic.notificationSuccess()\n },\n })\n}\n\nexport const useConversationArchive = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const conversationQueryKey = getRequestQueryKey(getConversationRequestArgs({ conversation_id }))\n const { url } = getConversationsRequestArgs()\n\n const { mutate: setArchived, ...mutation } = useMutation({\n mutationKey: ['archiveConversation'],\n mutationFn: async (archived: boolean) => {\n const action = archived ? 'archive' : 'unarchive'\n\n return apiClient.chat.post({\n url: `/me/conversations/${conversation_id}/${action}`,\n data: { data: { type: 'Conversation', attributes: {} } },\n })\n },\n onSuccess: () => {\n Haptic.notificationSuccess()\n queryClient.invalidateQueries({ queryKey: [url] })\n return queryClient.invalidateQueries({ queryKey: conversationQueryKey })\n },\n onError: (_error, archived) => {\n Alert.alert(\n 'Oops',\n `Couldn't ${archived ? 'archive' : 'unarchive'} this conversation. Please try again.`\n )\n },\n })\n\n return { setArchived, ...mutation }\n}\n\nexport const useConversationDisableReplies = ({ conversation_id }: { conversation_id: number }) => {\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const requestArgs = getConversationRequestArgs({ conversation_id })\n const queryKey = getRequestQueryKey(requestArgs)\n const { data: conversation } = useConversation({ conversation_id })\n const [value, setValue] = useState<boolean>(conversation.repliesDisabled)\n\n const { mutate: setRepliesDisabled, ...mutation } = useMutation({\n onMutate: async (repliesDisabled: boolean) => {\n return queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n setValue(repliesDisabled)\n prev.data.repliesDisabled = repliesDisabled\n\n return prev\n })\n },\n mutationKey: ['disableRepliesConversation'],\n mutationFn: async (repliesDisabled: boolean) => {\n return apiClient.chat.patch<ApiResource<ConversationResource>>({\n url: `/me/conversations/${conversation_id}`,\n data: {\n data: {\n type: 'Conversation',\n attributes: {\n replies_disabled: repliesDisabled,\n },\n },\n },\n })\n },\n onSuccess: (response: ApiResource<ConversationResource>) => {\n queryClient.setQueryData<ApiResource<ConversationResource>>(queryKey, prev => {\n if (!prev?.data) return prev\n\n prev.data.repliesDisabled = response.data.repliesDisabled\n setValue(response.data.repliesDisabled)\n\n return prev\n })\n },\n })\n\n return { repliesDisabled: value, setRepliesDisabled, ...mutation }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import { ConversationResource } from '../types';
2
+ export declare function useUnarchiveConversationAction(conversation: ConversationResource): {
3
+ label: string;
4
+ onPress: () => void;
5
+ loading: boolean;
6
+ } | undefined;
7
+ //# sourceMappingURL=use_unarchive_conversation_action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_unarchive_conversation_action.d.ts","sourceRoot":"","sources":["../../src/hooks/use_unarchive_conversation_action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAK/C,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,oBAAoB;;;;cAkBhF"}
@@ -0,0 +1,52 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { isArchivedConversation } from '../utils/archived_conversation';
3
+ import { useConversationArchive } from './use_conversation';
4
+ import { availableFeatures, useFeatures } from './use_features';
5
+ export function useUnarchiveConversationAction(conversation) {
6
+ const $ = _c(7);
7
+ const {
8
+ featureEnabled
9
+ } = useFeatures();
10
+ let t0;
11
+ if ($[0] !== conversation.id) {
12
+ t0 = {
13
+ conversation_id: conversation.id
14
+ };
15
+ $[0] = conversation.id;
16
+ $[1] = t0;
17
+ } else {
18
+ t0 = $[1];
19
+ }
20
+ const {
21
+ setArchived,
22
+ isPending
23
+ } = useConversationArchive(t0);
24
+ const manualArchivingEnabled = featureEnabled(availableFeatures.manual_archiving) || featureEnabled(availableFeatures.manual_archiving_rollout);
25
+ const canUnarchive = manualArchivingEnabled && isArchivedConversation(conversation) && !!conversation.memberAbility?.canUnarchive;
26
+ if (!canUnarchive) {
27
+ return;
28
+ }
29
+ let t1;
30
+ if ($[2] !== setArchived) {
31
+ t1 = () => setArchived(false);
32
+ $[2] = setArchived;
33
+ $[3] = t1;
34
+ } else {
35
+ t1 = $[3];
36
+ }
37
+ let t2;
38
+ if ($[4] !== isPending || $[5] !== t1) {
39
+ t2 = {
40
+ label: "Unarchive",
41
+ onPress: t1,
42
+ loading: isPending
43
+ };
44
+ $[4] = isPending;
45
+ $[5] = t1;
46
+ $[6] = t2;
47
+ } else {
48
+ t2 = $[6];
49
+ }
50
+ return t2;
51
+ }
52
+ //# sourceMappingURL=use_unarchive_conversation_action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use_unarchive_conversation_action.js","names":["isArchivedConversation","useConversationArchive","availableFeatures","useFeatures","useUnarchiveConversationAction","conversation","$","_c","featureEnabled","t0","id","conversation_id","setArchived","isPending","manualArchivingEnabled","manual_archiving","manual_archiving_rollout","canUnarchive","memberAbility","t1","t2","label","onPress","loading"],"sources":["../../src/hooks/use_unarchive_conversation_action.ts"],"sourcesContent":["import { ConversationResource } from '../types'\nimport { isArchivedConversation } from '../utils/archived_conversation'\nimport { useConversationArchive } from './use_conversation'\nimport { availableFeatures, useFeatures } from './use_features'\n\nexport function useUnarchiveConversationAction(conversation: ConversationResource) {\n const { featureEnabled } = useFeatures()\n const { setArchived, isPending } = useConversationArchive({ conversation_id: conversation.id })\n const manualArchivingEnabled =\n featureEnabled(availableFeatures.manual_archiving) ||\n featureEnabled(availableFeatures.manual_archiving_rollout)\n const canUnarchive =\n manualArchivingEnabled &&\n isArchivedConversation(conversation) &&\n !!conversation.memberAbility?.canUnarchive\n\n if (!canUnarchive) return undefined\n\n return {\n label: 'Unarchive',\n onPress: () => setArchived(false),\n loading: isPending,\n }\n}\n"],"mappings":";AACA,SAASA,sBAAsB,QAAQ,gCAAgC;AACvE,SAASC,sBAAsB,QAAQ,oBAAoB;AAC3D,SAASC,iBAAiB,EAAEC,WAAW,QAAQ,gBAAgB;AAE/D,OAAO,SAAAC,+BAAAC,YAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EACL;IAAAC;EAAA,IAA2BL,WAAW,CAAC,CAAC;EAAA,IAAAM,EAAA;EAAA,IAAAH,CAAA,QAAAD,YAAA,CAAAK,EAAA;IACkBD,EAAA;MAAAE,eAAA,EAAmBN,YAAY,CAAAK;IAAI,CAAC;IAAAJ,CAAA,MAAAD,YAAA,CAAAK,EAAA;IAAAJ,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAA9F;IAAAM,WAAA;IAAAC;EAAA,IAAmCZ,sBAAsB,CAACQ,EAAoC,CAAC;EAC/F,MAAAK,sBAAA,GACEN,cAAc,CAACN,iBAAiB,CAAAa,gBACyB,CAAC,IAA1DP,cAAc,CAACN,iBAAiB,CAAAc,wBAAyB,CAAC;EAC5D,MAAAC,YAAA,GACEH,sBACoC,IAApCd,sBAAsB,CAACK,YAAY,CACO,IAF1C,CAEC,CAACA,YAAY,CAAAa,aAA4B,EAAAD,YAAA;EAE5C,IAAI,CAACA,YAAY;IAAA;EAAA;EAAkB,IAAAE,EAAA;EAAA,IAAAb,CAAA,QAAAM,WAAA;IAIxBO,EAAA,GAAAA,CAAA,KAAMP,WAAW,CAAC,KAAK,CAAC;IAAAN,CAAA,MAAAM,WAAA;IAAAN,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAAA,IAAAc,EAAA;EAAA,IAAAd,CAAA,QAAAO,SAAA,IAAAP,CAAA,QAAAa,EAAA;IAF5BC,EAAA;MAAAC,KAAA,EACE,WAAW;MAAAC,OAAA,EACTH,EAAwB;MAAAI,OAAA,EACxBV;IACX,CAAC;IAAAP,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAAA,OAJMc,EAIN;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_actions_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/attachment_actions/attachment_actions_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AAM3E,eAAO,MAAM,8BAA8B,6EAEzC,CAAA;AAEF,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC3D,YAAY,EAAE,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,4BAA4B,EAAE,OAAO,CAAA;IACrC,SAAS,EAAE,OAAO,CAAA;CACnB,CAAC,CAAA;AAEF,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,EAAE,4BAA4B,2CAgE9E"}
1
+ {"version":3,"file":"attachment_actions_screen.d.ts","sourceRoot":"","sources":["../../../src/screens/attachment_actions/attachment_actions_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AAO3E,eAAO,MAAM,8BAA8B,6EAEzC,CAAA;AAEF,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC3D,YAAY,EAAE,MAAM,CAAA;IACpB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,4BAA4B,EAAE,OAAO,CAAA;IACrC,SAAS,EAAE,OAAO,CAAA;CACnB,CAAC,CAAA;AAEF,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,EAAE,4BAA4B,2CAiE9E"}
@@ -3,13 +3,14 @@ import { useNavigation } from '@react-navigation/native';
3
3
  import React, { useCallback } from 'react';
4
4
  import { Alert, Linking, StyleSheet } from 'react-native';
5
5
  import FormSheet, { getFormSheetScreenOptions } from '../../components/primitive/form_sheet';
6
+ import { useConversation } from '../../hooks/use_conversation';
6
7
  import { useDeleteAttachment } from './hooks/useDeleteAttachment';
7
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
9
  export const AttachmentActionsScreenOptions = getFormSheetScreenOptions({
9
10
  headerTitle: 'Attachment actions'
10
11
  });
11
12
  export function AttachmentActionsScreen(t0) {
12
- const $ = _c(25);
13
+ const $ = _c(28);
13
14
  const {
14
15
  route
15
16
  } = t0;
@@ -23,36 +24,58 @@ export function AttachmentActionsScreen(t0) {
23
24
  myMessage
24
25
  } = route.params;
25
26
  let t1;
26
- if ($[0] !== attachmentContentType) {
27
- t1 = getAttachmentLabelName(attachmentContentType);
28
- $[0] = attachmentContentType;
27
+ if ($[0] !== conversation_id) {
28
+ t1 = {
29
+ conversation_id
30
+ };
31
+ $[0] = conversation_id;
29
32
  $[1] = t1;
30
33
  } else {
31
34
  t1 = $[1];
32
35
  }
33
- const attachmentName = t1;
34
- const canDelete = myMessage || canDeleteNonAuthoredMessages;
35
- const styles = useStyles();
36
36
  let t2;
37
- if ($[2] !== attachmentId || $[3] !== attachmentName || $[4] !== conversation_id) {
37
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
38
38
  t2 = {
39
+ refetchOnMount: false
40
+ };
41
+ $[2] = t2;
42
+ } else {
43
+ t2 = $[2];
44
+ }
45
+ const {
46
+ data: conversation
47
+ } = useConversation(t1, t2);
48
+ let t3;
49
+ if ($[3] !== attachmentContentType) {
50
+ t3 = getAttachmentLabelName(attachmentContentType);
51
+ $[3] = attachmentContentType;
52
+ $[4] = t3;
53
+ } else {
54
+ t3 = $[4];
55
+ }
56
+ const attachmentName = t3;
57
+ const canDelete = !conversation.disabled && (myMessage || canDeleteNonAuthoredMessages);
58
+ const styles = useStyles();
59
+ let t4;
60
+ if ($[5] !== attachmentId || $[6] !== attachmentName || $[7] !== conversation_id) {
61
+ t4 = {
39
62
  conversation_id,
40
63
  attachmentId,
41
64
  attachmentName
42
65
  };
43
- $[2] = attachmentId;
44
- $[3] = attachmentName;
45
- $[4] = conversation_id;
46
- $[5] = t2;
66
+ $[5] = attachmentId;
67
+ $[6] = attachmentName;
68
+ $[7] = conversation_id;
69
+ $[8] = t4;
47
70
  } else {
48
- t2 = $[5];
71
+ t4 = $[8];
49
72
  }
50
73
  const {
51
74
  handleDeleteAttachment
52
- } = useDeleteAttachment(t2);
53
- let t3;
54
- if ($[6] !== attachmentName || $[7] !== handleDeleteAttachment || $[8] !== navigation) {
55
- t3 = () => {
75
+ } = useDeleteAttachment(t4);
76
+ let t5;
77
+ if ($[9] !== attachmentName || $[10] !== handleDeleteAttachment || $[11] !== navigation) {
78
+ t5 = () => {
56
79
  Alert.alert(`Delete ${attachmentName}`, "Are you sure you want to permanently delete this attachment?", [{
57
80
  text: "Cancel",
58
81
  style: "cancel"
@@ -65,75 +88,75 @@ export function AttachmentActionsScreen(t0) {
65
88
  }
66
89
  }]);
67
90
  };
68
- $[6] = attachmentName;
69
- $[7] = handleDeleteAttachment;
70
- $[8] = navigation;
71
- $[9] = t3;
91
+ $[9] = attachmentName;
92
+ $[10] = handleDeleteAttachment;
93
+ $[11] = navigation;
94
+ $[12] = t5;
72
95
  } else {
73
- t3 = $[9];
96
+ t5 = $[12];
74
97
  }
75
- const handleDeleteConfirm = t3;
76
- let t4;
77
- if ($[10] !== attachmentUrl || $[11] !== navigation) {
78
- t4 = () => {
98
+ const handleDeleteConfirm = t5;
99
+ let t6;
100
+ if ($[13] !== attachmentUrl || $[14] !== navigation) {
101
+ t6 = () => {
79
102
  Linking.openURL(attachmentUrl);
80
103
  navigation.goBack();
81
104
  };
82
- $[10] = attachmentUrl;
83
- $[11] = navigation;
84
- $[12] = t4;
105
+ $[13] = attachmentUrl;
106
+ $[14] = navigation;
107
+ $[15] = t6;
85
108
  } else {
86
- t4 = $[12];
109
+ t6 = $[15];
87
110
  }
88
- const handleOpenInBrowser = t4;
89
- const t5 = `Open ${attachmentName} in browser`;
90
- const t6 = `${attachmentName} can be downloaded and shared through the browser.`;
91
- let t7;
92
- if ($[13] !== handleOpenInBrowser || $[14] !== t5 || $[15] !== t6) {
93
- t7 = /*#__PURE__*/_jsx(FormSheet.Action, {
111
+ const handleOpenInBrowser = t6;
112
+ const t7 = `Open ${attachmentName} in browser`;
113
+ const t8 = `${attachmentName} can be downloaded and shared through the browser.`;
114
+ let t9;
115
+ if ($[16] !== handleOpenInBrowser || $[17] !== t7 || $[18] !== t8) {
116
+ t9 = /*#__PURE__*/_jsx(FormSheet.Action, {
94
117
  iconName: "general.newWindow",
95
118
  title: "Open in browser",
96
119
  accessibilityRole: "link",
97
- accessibilityLabel: t5,
98
- accessibilityHint: t6,
120
+ accessibilityLabel: t7,
121
+ accessibilityHint: t8,
99
122
  onPress: handleOpenInBrowser
100
123
  });
101
- $[13] = handleOpenInBrowser;
102
- $[14] = t5;
103
- $[15] = t6;
104
- $[16] = t7;
124
+ $[16] = handleOpenInBrowser;
125
+ $[17] = t7;
126
+ $[18] = t8;
127
+ $[19] = t9;
105
128
  } else {
106
- t7 = $[16];
129
+ t9 = $[19];
107
130
  }
108
- let t8;
109
- if ($[17] !== attachmentName || $[18] !== canDelete || $[19] !== handleDeleteConfirm) {
110
- t8 = canDelete && /*#__PURE__*/_jsx(FormSheet.Action, {
131
+ let t10;
132
+ if ($[20] !== attachmentName || $[21] !== canDelete || $[22] !== handleDeleteConfirm) {
133
+ t10 = canDelete && /*#__PURE__*/_jsx(FormSheet.Action, {
111
134
  appearance: "danger",
112
135
  iconName: "publishing.trash",
113
136
  title: `Delete ${attachmentName}`,
114
137
  onPress: handleDeleteConfirm
115
138
  });
116
- $[17] = attachmentName;
117
- $[18] = canDelete;
118
- $[19] = handleDeleteConfirm;
119
- $[20] = t8;
139
+ $[20] = attachmentName;
140
+ $[21] = canDelete;
141
+ $[22] = handleDeleteConfirm;
142
+ $[23] = t10;
120
143
  } else {
121
- t8 = $[20];
144
+ t10 = $[23];
122
145
  }
123
- let t9;
124
- if ($[21] !== styles.formSheetContent || $[22] !== t7 || $[23] !== t8) {
125
- t9 = /*#__PURE__*/_jsxs(FormSheet.Root, {
146
+ let t11;
147
+ if ($[24] !== styles.formSheetContent || $[25] !== t10 || $[26] !== t9) {
148
+ t11 = /*#__PURE__*/_jsxs(FormSheet.Root, {
126
149
  contentStyle: styles.formSheetContent,
127
- children: [t7, t8]
150
+ children: [t9, t10]
128
151
  });
129
- $[21] = styles.formSheetContent;
130
- $[22] = t7;
131
- $[23] = t8;
132
- $[24] = t9;
152
+ $[24] = styles.formSheetContent;
153
+ $[25] = t10;
154
+ $[26] = t9;
155
+ $[27] = t11;
133
156
  } else {
134
- t9 = $[24];
157
+ t11 = $[27];
135
158
  }
136
- return t9;
159
+ return t11;
137
160
  }
138
161
  const useStyles = () => {
139
162
  return StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_actions_screen.js","names":["useNavigation","React","useCallback","Alert","Linking","StyleSheet","FormSheet","getFormSheetScreenOptions","useDeleteAttachment","jsx","_jsx","jsxs","_jsxs","AttachmentActionsScreenOptions","headerTitle","AttachmentActionsScreen","t0","$","_c","route","navigation","attachmentId","attachmentContentType","attachmentUrl","conversation_id","canDeleteNonAuthoredMessages","myMessage","params","t1","getAttachmentLabelName","attachmentName","canDelete","styles","useStyles","t2","handleDeleteAttachment","t3","alert","text","style","onPress","goBack","handleDeleteConfirm","t4","openURL","handleOpenInBrowser","t5","t6","t7","Action","iconName","title","accessibilityRole","accessibilityLabel","accessibilityHint","t8","appearance","t9","formSheetContent","Root","contentStyle","children","create","paddingTop","contentType","startsWith"],"sources":["../../../src/screens/attachment_actions/attachment_actions_screen.tsx"],"sourcesContent":["import { StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport React, { useCallback } from 'react'\nimport { Alert, Linking, StyleSheet } from 'react-native'\nimport FormSheet, { getFormSheetScreenOptions } from '../../components/primitive/form_sheet'\nimport { useDeleteAttachment } from './hooks/useDeleteAttachment'\n\nexport const AttachmentActionsScreenOptions = getFormSheetScreenOptions({\n headerTitle: 'Attachment actions',\n})\n\nexport type AttachmentActionsScreenProps = StaticScreenProps<{\n attachmentId: string\n attachmentContentType: string\n attachmentUrl: string\n conversation_id: number\n canDeleteNonAuthoredMessages: boolean\n myMessage: boolean\n}>\n\nexport function AttachmentActionsScreen({ route }: AttachmentActionsScreenProps) {\n const navigation = useNavigation()\n const {\n attachmentId,\n attachmentContentType,\n attachmentUrl,\n conversation_id,\n canDeleteNonAuthoredMessages,\n myMessage,\n } = route.params\n\n const attachmentName = getAttachmentLabelName(attachmentContentType)\n const canDelete = myMessage || canDeleteNonAuthoredMessages\n const styles = useStyles()\n\n const { handleDeleteAttachment } = useDeleteAttachment({\n conversation_id,\n attachmentId,\n attachmentName,\n })\n\n const handleDeleteConfirm = useCallback(() => {\n Alert.alert(\n `Delete ${attachmentName}`,\n 'Are you sure you want to permanently delete this attachment?',\n [\n { text: 'Cancel', style: 'cancel' },\n {\n text: 'Delete',\n style: 'destructive',\n onPress: () => {\n handleDeleteAttachment()\n navigation.goBack()\n },\n },\n ]\n )\n }, [attachmentName, handleDeleteAttachment, navigation])\n\n const handleOpenInBrowser = () => {\n Linking.openURL(attachmentUrl)\n navigation.goBack()\n }\n\n return (\n <FormSheet.Root contentStyle={styles.formSheetContent}>\n <FormSheet.Action\n iconName=\"general.newWindow\"\n title=\"Open in browser\"\n accessibilityRole=\"link\"\n accessibilityLabel={`Open ${attachmentName} in browser`}\n accessibilityHint={`${attachmentName} can be downloaded and shared through the browser.`}\n onPress={handleOpenInBrowser}\n />\n {canDelete && (\n <FormSheet.Action\n appearance=\"danger\"\n iconName=\"publishing.trash\"\n title={`Delete ${attachmentName}`}\n onPress={handleDeleteConfirm}\n />\n )}\n </FormSheet.Root>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n formSheetContent: {\n paddingTop: 16,\n },\n })\n}\n\nfunction getAttachmentLabelName(contentType: string) {\n if (contentType.startsWith('image/')) return 'image'\n if (contentType.startsWith('video/')) return 'video'\n if (contentType.startsWith('audio/')) return 'audio'\n if (contentType === 'application/pdf') return 'PDF'\n if (contentType.startsWith('application/')) return 'file'\n\n return ''\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"attachment_actions_screen.js","names":["useNavigation","React","useCallback","Alert","Linking","StyleSheet","FormSheet","getFormSheetScreenOptions","useConversation","useDeleteAttachment","jsx","_jsx","jsxs","_jsxs","AttachmentActionsScreenOptions","headerTitle","AttachmentActionsScreen","t0","$","_c","route","navigation","attachmentId","attachmentContentType","attachmentUrl","conversation_id","canDeleteNonAuthoredMessages","myMessage","params","t1","t2","Symbol","for","refetchOnMount","data","conversation","t3","getAttachmentLabelName","attachmentName","canDelete","disabled","styles","useStyles","t4","handleDeleteAttachment","t5","alert","text","style","onPress","goBack","handleDeleteConfirm","t6","openURL","handleOpenInBrowser","t7","t8","t9","Action","iconName","title","accessibilityRole","accessibilityLabel","accessibilityHint","t10","appearance","t11","formSheetContent","Root","contentStyle","children","create","paddingTop","contentType","startsWith"],"sources":["../../../src/screens/attachment_actions/attachment_actions_screen.tsx"],"sourcesContent":["import { StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport React, { useCallback } from 'react'\nimport { Alert, Linking, StyleSheet } from 'react-native'\nimport FormSheet, { getFormSheetScreenOptions } from '../../components/primitive/form_sheet'\nimport { useConversation } from '../../hooks/use_conversation'\nimport { useDeleteAttachment } from './hooks/useDeleteAttachment'\n\nexport const AttachmentActionsScreenOptions = getFormSheetScreenOptions({\n headerTitle: 'Attachment actions',\n})\n\nexport type AttachmentActionsScreenProps = StaticScreenProps<{\n attachmentId: string\n attachmentContentType: string\n attachmentUrl: string\n conversation_id: number\n canDeleteNonAuthoredMessages: boolean\n myMessage: boolean\n}>\n\nexport function AttachmentActionsScreen({ route }: AttachmentActionsScreenProps) {\n const navigation = useNavigation()\n const {\n attachmentId,\n attachmentContentType,\n attachmentUrl,\n conversation_id,\n canDeleteNonAuthoredMessages,\n myMessage,\n } = route.params\n\n const { data: conversation } = useConversation({ conversation_id }, { refetchOnMount: false })\n const attachmentName = getAttachmentLabelName(attachmentContentType)\n const canDelete = !conversation.disabled && (myMessage || canDeleteNonAuthoredMessages)\n const styles = useStyles()\n\n const { handleDeleteAttachment } = useDeleteAttachment({\n conversation_id,\n attachmentId,\n attachmentName,\n })\n\n const handleDeleteConfirm = useCallback(() => {\n Alert.alert(\n `Delete ${attachmentName}`,\n 'Are you sure you want to permanently delete this attachment?',\n [\n { text: 'Cancel', style: 'cancel' },\n {\n text: 'Delete',\n style: 'destructive',\n onPress: () => {\n handleDeleteAttachment()\n navigation.goBack()\n },\n },\n ]\n )\n }, [attachmentName, handleDeleteAttachment, navigation])\n\n const handleOpenInBrowser = () => {\n Linking.openURL(attachmentUrl)\n navigation.goBack()\n }\n\n return (\n <FormSheet.Root contentStyle={styles.formSheetContent}>\n <FormSheet.Action\n iconName=\"general.newWindow\"\n title=\"Open in browser\"\n accessibilityRole=\"link\"\n accessibilityLabel={`Open ${attachmentName} in browser`}\n accessibilityHint={`${attachmentName} can be downloaded and shared through the browser.`}\n onPress={handleOpenInBrowser}\n />\n {canDelete && (\n <FormSheet.Action\n appearance=\"danger\"\n iconName=\"publishing.trash\"\n title={`Delete ${attachmentName}`}\n onPress={handleDeleteConfirm}\n />\n )}\n </FormSheet.Root>\n )\n}\n\nconst useStyles = () => {\n return StyleSheet.create({\n formSheetContent: {\n paddingTop: 16,\n },\n })\n}\n\nfunction getAttachmentLabelName(contentType: string) {\n if (contentType.startsWith('image/')) return 'image'\n if (contentType.startsWith('video/')) return 'video'\n if (contentType.startsWith('audio/')) return 'audio'\n if (contentType === 'application/pdf') return 'PDF'\n if (contentType.startsWith('application/')) return 'file'\n\n return ''\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_details_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_details_screen.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAgB,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AAwFzF,MAAM,MAAM,8BAA8B,GAAG,iBAAiB,CAAC;IAC7D,eAAe,EAAE,MAAM,CAAA;CACxB,CAAC,CAAA;AAEF,wBAAgB,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,8BAA8B,2CAkXlF"}
1
+ {"version":3,"file":"conversation_details_screen.d.ts","sourceRoot":"","sources":["../../src/screens/conversation_details_screen.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAgB,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AA2FzF,MAAM,MAAM,8BAA8B,GAAG,iBAAiB,CAAC;IAC7D,eAAe,EAAE,MAAM,CAAA;CACxB,CAAC,CAAA;AAEF,wBAAgB,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,8BAA8B,2CAyalF"}