@planningcenter/chat-react-native 4.4.1-qa-staging.12 → 4.4.1-qa-staging.14

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 (127) hide show
  1. package/build/components/conversation/jump_to_bottom_button.d.ts.map +1 -1
  2. package/build/components/conversation/jump_to_bottom_button.js +42 -40
  3. package/build/components/conversation/jump_to_bottom_button.js.map +1 -1
  4. package/build/components/conversation/message.d.ts +2 -1
  5. package/build/components/conversation/message.d.ts.map +1 -1
  6. package/build/components/conversation/message.js +3 -1
  7. package/build/components/conversation/message.js.map +1 -1
  8. package/build/components/conversation/message_list.d.ts.map +1 -1
  9. package/build/components/conversation/message_list.js +35 -31
  10. package/build/components/conversation/message_list.js.map +1 -1
  11. package/build/components/conversation/message_reaction.d.ts +2 -1
  12. package/build/components/conversation/message_reaction.d.ts.map +1 -1
  13. package/build/components/conversation/message_reaction.js +67 -60
  14. package/build/components/conversation/message_reaction.js.map +1 -1
  15. package/build/components/conversation/messages_disabled_banners.d.ts +7 -5
  16. package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
  17. package/build/components/conversation/messages_disabled_banners.js +15 -14
  18. package/build/components/conversation/messages_disabled_banners.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/action_button.d.ts.map +1 -1
  24. package/build/components/display/action_button.js +18 -16
  25. package/build/components/display/action_button.js.map +1 -1
  26. package/build/components/display/filter_dropdown.d.ts +13 -0
  27. package/build/components/display/filter_dropdown.d.ts.map +1 -0
  28. package/build/components/display/filter_dropdown.js +188 -0
  29. package/build/components/display/filter_dropdown.js.map +1 -0
  30. package/build/components/display/index.d.ts +1 -0
  31. package/build/components/display/index.d.ts.map +1 -1
  32. package/build/components/display/index.js +1 -0
  33. package/build/components/display/index.js.map +1 -1
  34. package/build/hooks/index.d.ts +1 -0
  35. package/build/hooks/index.d.ts.map +1 -1
  36. package/build/hooks/index.js +1 -0
  37. package/build/hooks/index.js.map +1 -1
  38. package/build/hooks/use_animated_message_background_color.d.ts.map +1 -1
  39. package/build/hooks/use_animated_message_background_color.js +5 -3
  40. package/build/hooks/use_animated_message_background_color.js.map +1 -1
  41. package/build/hooks/use_conversation.d.ts +73 -1
  42. package/build/hooks/use_conversation.d.ts.map +1 -1
  43. package/build/hooks/use_conversation.js +122 -3
  44. package/build/hooks/use_conversation.js.map +1 -1
  45. package/build/hooks/use_reduce_motion.d.ts +2 -0
  46. package/build/hooks/use_reduce_motion.d.ts.map +1 -0
  47. package/build/hooks/use_reduce_motion.js +27 -0
  48. package/build/hooks/use_reduce_motion.js.map +1 -0
  49. package/build/hooks/use_unarchive_conversation_action.d.ts +7 -0
  50. package/build/hooks/use_unarchive_conversation_action.d.ts.map +1 -0
  51. package/build/hooks/use_unarchive_conversation_action.js +52 -0
  52. package/build/hooks/use_unarchive_conversation_action.js.map +1 -0
  53. package/build/screens/attachment_actions/attachment_actions_screen.d.ts.map +1 -1
  54. package/build/screens/attachment_actions/attachment_actions_screen.js +84 -61
  55. package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
  56. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  57. package/build/screens/conversation_details_screen.js +487 -393
  58. package/build/screens/conversation_details_screen.js.map +1 -1
  59. package/build/screens/conversation_screen.d.ts.map +1 -1
  60. package/build/screens/conversation_screen.js +12 -9
  61. package/build/screens/conversation_screen.js.map +1 -1
  62. package/build/screens/design_system_screen.d.ts.map +1 -1
  63. package/build/screens/design_system_screen.js +275 -215
  64. package/build/screens/design_system_screen.js.map +1 -1
  65. package/build/screens/message_actions_screen.d.ts.map +1 -1
  66. package/build/screens/message_actions_screen.js +112 -92
  67. package/build/screens/message_actions_screen.js.map +1 -1
  68. package/build/types/resources/member_ability.d.ts +2 -0
  69. package/build/types/resources/member_ability.d.ts.map +1 -1
  70. package/build/types/resources/member_ability.js.map +1 -1
  71. package/build/utils/archived_conversation.d.ts +5 -0
  72. package/build/utils/archived_conversation.d.ts.map +1 -0
  73. package/build/utils/archived_conversation.js +5 -0
  74. package/build/utils/archived_conversation.js.map +1 -0
  75. package/build/utils/index.d.ts +1 -0
  76. package/build/utils/index.d.ts.map +1 -1
  77. package/build/utils/index.js +1 -0
  78. package/build/utils/index.js.map +1 -1
  79. package/build/utils/native_adapters/configuration.d.ts +3 -0
  80. package/build/utils/native_adapters/configuration.d.ts.map +1 -1
  81. package/build/utils/native_adapters/configuration.js +3 -0
  82. package/build/utils/native_adapters/configuration.js.map +1 -1
  83. package/build/utils/native_adapters/index.d.ts +1 -0
  84. package/build/utils/native_adapters/index.d.ts.map +1 -1
  85. package/build/utils/native_adapters/index.js +1 -0
  86. package/build/utils/native_adapters/index.js.map +1 -1
  87. package/build/utils/native_adapters/menu.d.ts +40 -0
  88. package/build/utils/native_adapters/menu.d.ts.map +1 -0
  89. package/build/utils/native_adapters/menu.js +55 -0
  90. package/build/utils/native_adapters/menu.js.map +1 -0
  91. package/package.json +3 -3
  92. package/src/__tests__/screens/message_actions_screen.test.tsx +65 -2
  93. package/src/components/conversation/__tests__/message_list.test.tsx +68 -2
  94. package/src/components/conversation/__tests__/system_message.test.tsx +3 -1
  95. package/src/components/conversation/jump_to_bottom_button.tsx +4 -3
  96. package/src/components/conversation/message.tsx +3 -0
  97. package/src/components/conversation/message_list.tsx +9 -1
  98. package/src/components/conversation/message_reaction.tsx +7 -2
  99. package/src/components/conversation/messages_disabled_banners.tsx +17 -18
  100. package/src/components/conversation/system_message.tsx +24 -10
  101. package/src/components/display/__tests__/filter_dropdown.test.tsx +106 -0
  102. package/src/components/display/action_button.tsx +4 -3
  103. package/src/components/display/filter_dropdown.tsx +123 -0
  104. package/src/components/display/index.ts +1 -0
  105. package/src/hooks/__tests__/use_conversation_archive.test.tsx +130 -0
  106. package/src/hooks/__tests__/use_conversation_jolt_events.test.tsx +74 -0
  107. package/src/hooks/__tests__/use_reduce_motion.test.tsx +49 -0
  108. package/src/hooks/__tests__/use_unarchive_conversation_action.test.tsx +67 -0
  109. package/src/hooks/index.ts +1 -0
  110. package/src/hooks/use_animated_message_background_color.ts +6 -3
  111. package/src/hooks/use_conversation.ts +41 -3
  112. package/src/hooks/use_reduce_motion.ts +18 -0
  113. package/src/hooks/use_unarchive_conversation_action.ts +24 -0
  114. package/src/screens/__tests__/conversation_details_screen.test.tsx +289 -0
  115. package/src/screens/attachment_actions/__tests__/attachment_actions_screen.test.tsx +72 -0
  116. package/src/screens/attachment_actions/attachment_actions_screen.tsx +3 -1
  117. package/src/screens/conversation_details_screen.tsx +78 -14
  118. package/src/screens/conversation_screen.tsx +3 -1
  119. package/src/screens/design_system_screen.tsx +26 -0
  120. package/src/screens/message_actions_screen.tsx +29 -20
  121. package/src/types/resources/member_ability.ts +2 -0
  122. package/src/utils/archived_conversation.ts +13 -0
  123. package/src/utils/index.ts +1 -0
  124. package/src/utils/native_adapters/__tests__/menu.test.tsx +42 -0
  125. package/src/utils/native_adapters/configuration.ts +5 -0
  126. package/src/utils/native_adapters/index.ts +1 -0
  127. package/src/utils/native_adapters/menu.tsx +68 -0
@@ -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"}