@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.
- package/build/components/conversation/jump_to_bottom_button.d.ts.map +1 -1
- package/build/components/conversation/jump_to_bottom_button.js +42 -40
- package/build/components/conversation/jump_to_bottom_button.js.map +1 -1
- package/build/components/conversation/message.d.ts +2 -1
- package/build/components/conversation/message.d.ts.map +1 -1
- package/build/components/conversation/message.js +3 -1
- package/build/components/conversation/message.js.map +1 -1
- package/build/components/conversation/message_list.d.ts.map +1 -1
- package/build/components/conversation/message_list.js +35 -31
- package/build/components/conversation/message_list.js.map +1 -1
- package/build/components/conversation/message_reaction.d.ts +2 -1
- package/build/components/conversation/message_reaction.d.ts.map +1 -1
- package/build/components/conversation/message_reaction.js +67 -60
- package/build/components/conversation/message_reaction.js.map +1 -1
- package/build/components/conversation/messages_disabled_banners.d.ts +7 -5
- package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
- package/build/components/conversation/messages_disabled_banners.js +15 -14
- package/build/components/conversation/messages_disabled_banners.js.map +1 -1
- package/build/components/conversation/system_message.d.ts +2 -1
- package/build/components/conversation/system_message.d.ts.map +1 -1
- package/build/components/conversation/system_message.js +87 -65
- package/build/components/conversation/system_message.js.map +1 -1
- package/build/components/display/action_button.d.ts.map +1 -1
- package/build/components/display/action_button.js +18 -16
- package/build/components/display/action_button.js.map +1 -1
- package/build/components/display/filter_dropdown.d.ts +13 -0
- package/build/components/display/filter_dropdown.d.ts.map +1 -0
- package/build/components/display/filter_dropdown.js +188 -0
- package/build/components/display/filter_dropdown.js.map +1 -0
- package/build/components/display/index.d.ts +1 -0
- package/build/components/display/index.d.ts.map +1 -1
- package/build/components/display/index.js +1 -0
- package/build/components/display/index.js.map +1 -1
- package/build/hooks/index.d.ts +1 -0
- package/build/hooks/index.d.ts.map +1 -1
- package/build/hooks/index.js +1 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/use_animated_message_background_color.d.ts.map +1 -1
- package/build/hooks/use_animated_message_background_color.js +5 -3
- package/build/hooks/use_animated_message_background_color.js.map +1 -1
- package/build/hooks/use_conversation.d.ts +73 -1
- package/build/hooks/use_conversation.d.ts.map +1 -1
- package/build/hooks/use_conversation.js +122 -3
- package/build/hooks/use_conversation.js.map +1 -1
- package/build/hooks/use_reduce_motion.d.ts +2 -0
- package/build/hooks/use_reduce_motion.d.ts.map +1 -0
- package/build/hooks/use_reduce_motion.js +27 -0
- package/build/hooks/use_reduce_motion.js.map +1 -0
- package/build/hooks/use_unarchive_conversation_action.d.ts +7 -0
- package/build/hooks/use_unarchive_conversation_action.d.ts.map +1 -0
- package/build/hooks/use_unarchive_conversation_action.js +52 -0
- package/build/hooks/use_unarchive_conversation_action.js.map +1 -0
- package/build/screens/attachment_actions/attachment_actions_screen.d.ts.map +1 -1
- package/build/screens/attachment_actions/attachment_actions_screen.js +84 -61
- package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
- package/build/screens/conversation_details_screen.d.ts.map +1 -1
- package/build/screens/conversation_details_screen.js +487 -393
- package/build/screens/conversation_details_screen.js.map +1 -1
- package/build/screens/conversation_screen.d.ts.map +1 -1
- package/build/screens/conversation_screen.js +12 -9
- package/build/screens/conversation_screen.js.map +1 -1
- package/build/screens/design_system_screen.d.ts.map +1 -1
- package/build/screens/design_system_screen.js +275 -215
- package/build/screens/design_system_screen.js.map +1 -1
- package/build/screens/message_actions_screen.d.ts.map +1 -1
- package/build/screens/message_actions_screen.js +112 -92
- package/build/screens/message_actions_screen.js.map +1 -1
- package/build/types/resources/member_ability.d.ts +2 -0
- package/build/types/resources/member_ability.d.ts.map +1 -1
- package/build/types/resources/member_ability.js.map +1 -1
- package/build/utils/archived_conversation.d.ts +5 -0
- package/build/utils/archived_conversation.d.ts.map +1 -0
- package/build/utils/archived_conversation.js +5 -0
- package/build/utils/archived_conversation.js.map +1 -0
- package/build/utils/index.d.ts +1 -0
- package/build/utils/index.d.ts.map +1 -1
- package/build/utils/index.js +1 -0
- package/build/utils/index.js.map +1 -1
- package/build/utils/native_adapters/configuration.d.ts +3 -0
- package/build/utils/native_adapters/configuration.d.ts.map +1 -1
- package/build/utils/native_adapters/configuration.js +3 -0
- package/build/utils/native_adapters/configuration.js.map +1 -1
- package/build/utils/native_adapters/index.d.ts +1 -0
- package/build/utils/native_adapters/index.d.ts.map +1 -1
- package/build/utils/native_adapters/index.js +1 -0
- package/build/utils/native_adapters/index.js.map +1 -1
- package/build/utils/native_adapters/menu.d.ts +40 -0
- package/build/utils/native_adapters/menu.d.ts.map +1 -0
- package/build/utils/native_adapters/menu.js +55 -0
- package/build/utils/native_adapters/menu.js.map +1 -0
- package/package.json +3 -3
- package/src/__tests__/screens/message_actions_screen.test.tsx +65 -2
- package/src/components/conversation/__tests__/message_list.test.tsx +68 -2
- package/src/components/conversation/__tests__/system_message.test.tsx +3 -1
- package/src/components/conversation/jump_to_bottom_button.tsx +4 -3
- package/src/components/conversation/message.tsx +3 -0
- package/src/components/conversation/message_list.tsx +9 -1
- package/src/components/conversation/message_reaction.tsx +7 -2
- package/src/components/conversation/messages_disabled_banners.tsx +17 -18
- package/src/components/conversation/system_message.tsx +24 -10
- package/src/components/display/__tests__/filter_dropdown.test.tsx +106 -0
- package/src/components/display/action_button.tsx +4 -3
- package/src/components/display/filter_dropdown.tsx +123 -0
- package/src/components/display/index.ts +1 -0
- package/src/hooks/__tests__/use_conversation_archive.test.tsx +130 -0
- package/src/hooks/__tests__/use_conversation_jolt_events.test.tsx +74 -0
- package/src/hooks/__tests__/use_reduce_motion.test.tsx +49 -0
- package/src/hooks/__tests__/use_unarchive_conversation_action.test.tsx +67 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use_animated_message_background_color.ts +6 -3
- package/src/hooks/use_conversation.ts +41 -3
- package/src/hooks/use_reduce_motion.ts +18 -0
- package/src/hooks/use_unarchive_conversation_action.ts +24 -0
- package/src/screens/__tests__/conversation_details_screen.test.tsx +289 -0
- package/src/screens/attachment_actions/__tests__/attachment_actions_screen.test.tsx +72 -0
- package/src/screens/attachment_actions/attachment_actions_screen.tsx +3 -1
- package/src/screens/conversation_details_screen.tsx +78 -14
- package/src/screens/conversation_screen.tsx +3 -1
- package/src/screens/design_system_screen.tsx +26 -0
- package/src/screens/message_actions_screen.tsx +29 -20
- package/src/types/resources/member_ability.ts +2 -0
- package/src/utils/archived_conversation.ts +13 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/native_adapters/__tests__/menu.test.tsx +42 -0
- package/src/utils/native_adapters/configuration.ts +5 -0
- package/src/utils/native_adapters/index.ts +1 -0
- package/src/utils/native_adapters/menu.tsx +68 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message_actions_screen.d.ts","sourceRoot":"","sources":["../../src/screens/message_actions_screen.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgB,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"message_actions_screen.d.ts","sourceRoot":"","sources":["../../src/screens/message_actions_screen.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgB,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AAuBzF,eAAO,MAAM,2BAA2B,6EAGtC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,eAAe,EAAE,MAAM,CAAA;IACvB,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,yBAAyB,kDA+BxE"}
|
|
@@ -10,6 +10,7 @@ import { useReactionStyles } from '../components/conversation/message_reaction';
|
|
|
10
10
|
import FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet';
|
|
11
11
|
import { useCreateAndroidRippleColor, useFontScale, useTheme } from '../hooks';
|
|
12
12
|
import { useApiClient } from '../hooks/use_api_client';
|
|
13
|
+
import { useConversation } from '../hooks/use_conversation';
|
|
13
14
|
import { useConversationMessages } from '../hooks/use_conversation_messages';
|
|
14
15
|
import { availableFeatures, useFeatures } from '../hooks/use_features';
|
|
15
16
|
import { useMessageReactionToggle } from '../hooks/use_message_reaction_toggle';
|
|
@@ -22,7 +23,7 @@ export const MessageActionsScreenOptions = getFormSheetScreenOptions({
|
|
|
22
23
|
headerTitle: 'Message actions'
|
|
23
24
|
});
|
|
24
25
|
export function MessageActionsScreen(t0) {
|
|
25
|
-
const $ = _c(
|
|
26
|
+
const $ = _c(20);
|
|
26
27
|
const {
|
|
27
28
|
route
|
|
28
29
|
} = t0;
|
|
@@ -58,56 +59,82 @@ export function MessageActionsScreen(t0) {
|
|
|
58
59
|
refetch
|
|
59
60
|
} = useConversationMessages(t1, t2);
|
|
60
61
|
let t3;
|
|
61
|
-
if ($[3] !==
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
if ($[3] !== conversation_id) {
|
|
63
|
+
t3 = {
|
|
64
|
+
conversation_id
|
|
65
|
+
};
|
|
66
|
+
$[3] = conversation_id;
|
|
67
|
+
$[4] = t3;
|
|
68
|
+
} else {
|
|
69
|
+
t3 = $[4];
|
|
70
|
+
}
|
|
71
|
+
let t4;
|
|
72
|
+
if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
73
|
+
t4 = {
|
|
74
|
+
refetchOnMount: false
|
|
75
|
+
};
|
|
76
|
+
$[5] = t4;
|
|
77
|
+
} else {
|
|
78
|
+
t4 = $[5];
|
|
79
|
+
}
|
|
80
|
+
const {
|
|
81
|
+
data: conversation
|
|
82
|
+
} = useConversation(t3, t4);
|
|
83
|
+
let t5;
|
|
84
|
+
if ($[6] !== message_id || $[7] !== messages) {
|
|
85
|
+
let t6;
|
|
86
|
+
if ($[9] !== message_id) {
|
|
87
|
+
t6 = m => m.id === message_id;
|
|
88
|
+
$[9] = message_id;
|
|
89
|
+
$[10] = t6;
|
|
67
90
|
} else {
|
|
68
|
-
|
|
91
|
+
t6 = $[10];
|
|
69
92
|
}
|
|
70
|
-
|
|
71
|
-
$[
|
|
72
|
-
$[
|
|
73
|
-
$[
|
|
93
|
+
t5 = messages.find(t6);
|
|
94
|
+
$[6] = message_id;
|
|
95
|
+
$[7] = messages;
|
|
96
|
+
$[8] = t5;
|
|
74
97
|
} else {
|
|
75
|
-
|
|
98
|
+
t5 = $[8];
|
|
76
99
|
}
|
|
77
|
-
const message =
|
|
100
|
+
const message = t5;
|
|
78
101
|
if (!message) {
|
|
79
102
|
return null;
|
|
80
103
|
}
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
104
|
+
const t6 = !!conversation.disabled;
|
|
105
|
+
const t7 = canDeleteNonAuthoredMessages || false;
|
|
106
|
+
let t8;
|
|
107
|
+
if ($[11] !== conversation_id || $[12] !== inReplyScreen || $[13] !== isSystemMessage || $[14] !== message || $[15] !== refetch || $[16] !== reply_root_author_name || $[17] !== t6 || $[18] !== t7) {
|
|
108
|
+
t8 = /*#__PURE__*/_jsx(MessageActionsScreenContent, {
|
|
85
109
|
message: message,
|
|
86
110
|
conversation_id: conversation_id,
|
|
87
|
-
|
|
111
|
+
conversationDisabled: t6,
|
|
112
|
+
canDeleteNonAuthoredMessages: t7,
|
|
88
113
|
refetchMessages: refetch,
|
|
89
114
|
inReplyScreen: inReplyScreen,
|
|
90
115
|
replyRootAuthorName: reply_root_author_name,
|
|
91
116
|
isSystemMessage: isSystemMessage
|
|
92
117
|
});
|
|
93
|
-
$[
|
|
94
|
-
$[
|
|
95
|
-
$[
|
|
96
|
-
$[
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
-
$[
|
|
101
|
-
|
|
102
|
-
|
|
118
|
+
$[11] = conversation_id;
|
|
119
|
+
$[12] = inReplyScreen;
|
|
120
|
+
$[13] = isSystemMessage;
|
|
121
|
+
$[14] = message;
|
|
122
|
+
$[15] = refetch;
|
|
123
|
+
$[16] = reply_root_author_name;
|
|
124
|
+
$[17] = t6;
|
|
125
|
+
$[18] = t7;
|
|
126
|
+
$[19] = t8;
|
|
127
|
+
} else {
|
|
128
|
+
t8 = $[19];
|
|
103
129
|
}
|
|
104
|
-
return
|
|
130
|
+
return t8;
|
|
105
131
|
}
|
|
106
132
|
function MessageActionsScreenContent(t0) {
|
|
107
133
|
const $ = _c(93);
|
|
108
134
|
const {
|
|
109
135
|
message,
|
|
110
136
|
conversation_id,
|
|
137
|
+
conversationDisabled,
|
|
111
138
|
canDeleteNonAuthoredMessages,
|
|
112
139
|
refetchMessages,
|
|
113
140
|
inReplyScreen,
|
|
@@ -443,45 +470,37 @@ function MessageActionsScreenContent(t0) {
|
|
|
443
470
|
t19 = $[65];
|
|
444
471
|
}
|
|
445
472
|
const showReportMessageAction = t19;
|
|
446
|
-
const
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
$[67] = handleReactionToggle;
|
|
463
|
-
$[68] = navigation;
|
|
464
|
-
$[69] = t22;
|
|
465
|
-
} else {
|
|
466
|
-
t22 = $[69];
|
|
467
|
-
}
|
|
468
|
-
let t23;
|
|
469
|
-
if ($[70] !== styles.reactionList || $[71] !== t22) {
|
|
470
|
-
t23 = /*#__PURE__*/_jsx(View, {
|
|
471
|
-
style: t21,
|
|
472
|
-
children: t22
|
|
473
|
+
const showDeleteMessageAction = !conversationDisabled && (message?.mine || canDeleteNonAuthoredMessages);
|
|
474
|
+
let t20;
|
|
475
|
+
if ($[66] !== availableReactions || $[67] !== conversationDisabled || $[68] !== handleReactionToggle || $[69] !== navigation || $[70] !== styles.reactionList) {
|
|
476
|
+
t20 = !conversationDisabled && /*#__PURE__*/_jsx(View, {
|
|
477
|
+
style: styles.reactionList,
|
|
478
|
+
children: availableReactions.map((reaction_1, index) => /*#__PURE__*/_jsx(Reaction, {
|
|
479
|
+
reaction: reaction_1,
|
|
480
|
+
onPress: () => {
|
|
481
|
+
Haptic.impactLight();
|
|
482
|
+
handleReactionToggle({
|
|
483
|
+
value: reaction_1.value,
|
|
484
|
+
mine: reaction_1.mine
|
|
485
|
+
});
|
|
486
|
+
navigation.goBack();
|
|
487
|
+
}
|
|
488
|
+
}, index))
|
|
473
489
|
});
|
|
490
|
+
$[66] = availableReactions;
|
|
491
|
+
$[67] = conversationDisabled;
|
|
492
|
+
$[68] = handleReactionToggle;
|
|
493
|
+
$[69] = navigation;
|
|
474
494
|
$[70] = styles.reactionList;
|
|
475
|
-
$[71] =
|
|
476
|
-
$[72] = t23;
|
|
495
|
+
$[71] = t20;
|
|
477
496
|
} else {
|
|
478
|
-
|
|
497
|
+
t20 = $[71];
|
|
479
498
|
}
|
|
480
|
-
let
|
|
481
|
-
if ($[
|
|
482
|
-
|
|
499
|
+
let t21;
|
|
500
|
+
if ($[72] !== conversationDisabled || $[73] !== handleCopyPress || $[74] !== handleDeleteConfirm || $[75] !== handleEditPress || $[76] !== handleRemoveLinkPreviewConfirm || $[77] !== handleReplyPress || $[78] !== handleReportPress || $[79] !== handleViewReadReceiptsPress || $[80] !== hasExpandedLink || $[81] !== inReplyScreen || $[82] !== isPending || $[83] !== isSystemMessage || $[84] !== message.mine || $[85] !== showDeleteMessageAction || $[86] !== showReportMessageAction || $[87] !== styles.actions) {
|
|
501
|
+
t21 = !isSystemMessage && /*#__PURE__*/_jsxs(View, {
|
|
483
502
|
style: styles.actions,
|
|
484
|
-
children: [!inReplyScreen && /*#__PURE__*/_jsx(FormSheet.Action, {
|
|
503
|
+
children: [!inReplyScreen && !conversationDisabled && /*#__PURE__*/_jsx(FormSheet.Action, {
|
|
485
504
|
onPress: handleReplyPress,
|
|
486
505
|
title: "Reply to message",
|
|
487
506
|
iconName: "registrations.undo",
|
|
@@ -497,7 +516,7 @@ function MessageActionsScreenContent(t0) {
|
|
|
497
516
|
title: "Report message",
|
|
498
517
|
iconName: "chat.reportMessageO",
|
|
499
518
|
accessibilityHint: "Opens a form to report this message"
|
|
500
|
-
}), message?.mine && /*#__PURE__*/_jsx(FormSheet.Action, {
|
|
519
|
+
}), message?.mine && !conversationDisabled && /*#__PURE__*/_jsx(FormSheet.Action, {
|
|
501
520
|
onPress: () => handleEditPress(),
|
|
502
521
|
title: "Edit message",
|
|
503
522
|
iconName: "accounts.editor",
|
|
@@ -507,12 +526,12 @@ function MessageActionsScreenContent(t0) {
|
|
|
507
526
|
title: "View read receipts",
|
|
508
527
|
iconName: "general.checkPerson",
|
|
509
528
|
accessibilityHint: "Opens a modal with a list of people who read your message."
|
|
510
|
-
}), message?.mine && hasExpandedLink && /*#__PURE__*/_jsx(FormSheet.Action, {
|
|
529
|
+
}), message?.mine && hasExpandedLink && !conversationDisabled && /*#__PURE__*/_jsx(FormSheet.Action, {
|
|
511
530
|
onPress: () => handleRemoveLinkPreviewConfirm(),
|
|
512
531
|
title: "Remove link preview",
|
|
513
532
|
iconName: "general.brokenLink",
|
|
514
533
|
accessibilityHint: "Removes an expanded link preview from the message."
|
|
515
|
-
}),
|
|
534
|
+
}), showDeleteMessageAction && /*#__PURE__*/_jsx(FormSheet.Action, {
|
|
516
535
|
onPress: () => handleDeleteConfirm(),
|
|
517
536
|
title: "Delete message",
|
|
518
537
|
iconName: "publishing.trash",
|
|
@@ -521,39 +540,40 @@ function MessageActionsScreenContent(t0) {
|
|
|
521
540
|
accessibilityHint: "Opens a confirmation alert to delete this message permanently."
|
|
522
541
|
})]
|
|
523
542
|
});
|
|
524
|
-
$[
|
|
525
|
-
$[
|
|
526
|
-
$[
|
|
527
|
-
$[
|
|
528
|
-
$[
|
|
529
|
-
$[
|
|
530
|
-
$[
|
|
531
|
-
$[
|
|
532
|
-
$[
|
|
533
|
-
$[
|
|
534
|
-
$[
|
|
535
|
-
$[
|
|
536
|
-
$[
|
|
543
|
+
$[72] = conversationDisabled;
|
|
544
|
+
$[73] = handleCopyPress;
|
|
545
|
+
$[74] = handleDeleteConfirm;
|
|
546
|
+
$[75] = handleEditPress;
|
|
547
|
+
$[76] = handleRemoveLinkPreviewConfirm;
|
|
548
|
+
$[77] = handleReplyPress;
|
|
549
|
+
$[78] = handleReportPress;
|
|
550
|
+
$[79] = handleViewReadReceiptsPress;
|
|
551
|
+
$[80] = hasExpandedLink;
|
|
552
|
+
$[81] = inReplyScreen;
|
|
553
|
+
$[82] = isPending;
|
|
554
|
+
$[83] = isSystemMessage;
|
|
555
|
+
$[84] = message.mine;
|
|
556
|
+
$[85] = showDeleteMessageAction;
|
|
537
557
|
$[86] = showReportMessageAction;
|
|
538
558
|
$[87] = styles.actions;
|
|
539
|
-
$[88] =
|
|
559
|
+
$[88] = t21;
|
|
540
560
|
} else {
|
|
541
|
-
|
|
561
|
+
t21 = $[88];
|
|
542
562
|
}
|
|
543
|
-
let
|
|
544
|
-
if ($[89] !== styles.formSheetContent || $[90] !==
|
|
545
|
-
|
|
546
|
-
style:
|
|
547
|
-
children: [
|
|
563
|
+
let t22;
|
|
564
|
+
if ($[89] !== styles.formSheetContent || $[90] !== t20 || $[91] !== t21) {
|
|
565
|
+
t22 = /*#__PURE__*/_jsxs(FormSheet.Root, {
|
|
566
|
+
style: styles.formSheetContent,
|
|
567
|
+
children: [t20, t21]
|
|
548
568
|
});
|
|
549
569
|
$[89] = styles.formSheetContent;
|
|
550
|
-
$[90] =
|
|
551
|
-
$[91] =
|
|
552
|
-
$[92] =
|
|
570
|
+
$[90] = t20;
|
|
571
|
+
$[91] = t21;
|
|
572
|
+
$[92] = t22;
|
|
553
573
|
} else {
|
|
554
|
-
|
|
574
|
+
t22 = $[92];
|
|
555
575
|
}
|
|
556
|
-
return
|
|
576
|
+
return t22;
|
|
557
577
|
}
|
|
558
578
|
function _temp6() {
|
|
559
579
|
Alert.alert("Oops", "We were unable to remove the preview. Please try again.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message_actions_screen.js","names":["PlatformPressable","StackActions","useNavigation","useMutation","useQueryClient","isNil","omitBy","React","useCallback","Alert","Platform","StyleSheet","View","Text","useReactionStyles","FormSheet","getFormSheetScreenOptions","useCreateAndroidRippleColor","useFontScale","useTheme","useApiClient","useConversationMessages","availableFeatures","useFeatures","useMessageReactionToggle","REACTION_EMOJIS","applyMessageDeletionToCaches","getThreadedMessagesQueryKey","Clipboard","Haptic","jsx","_jsx","jsxs","_jsxs","MessageActionsScreenOptions","sheetAllowedDetents","headerTitle","MessageActionsScreen","t0","$","_c","route","conversation_id","message_id","canDeleteNonAuthoredMessages","inReplyScreen","reply_root_author_name","isSystemMessage","params","t1","t2","Symbol","for","refetchOnMount","messages","refetch","t3","t4","m","id","find","message","t5","MessageActionsScreenContent","refetchMessages","replyRootAuthorName","navigation","apiClient","queryClient","styles","useStyles","featureEnabled","attachments","_temp","expandedLink","hasExpandedLink","reactionCounts","myReactions","filter","_temp2","map","_temp3","Object","entries","value","emoji","mine","includes","availableReactions","giphyTitleLink","_temp4","titleLink","attachmentForCopy","replyRootId","goBack","requestAnimationFrame","navigate","reply_root_id","handleReplyPress","text","textToCopy","setStringAsync","notificationSuccess","handleCopyPress","t6","impactLight","handleReportPress","t7","handleReactionToggle","isPending","t8","url","chat","delete","deleteMessage","t9","t10","invalidateQueries","queryKey","t11","mutationFn","mutationKey","onSuccess","onError","_temp5","mutate","handleDeleteMessage","t12","alert","style","onPress","handleDeleteConfirm","t13","state","getState","targetRouteName","targetRoute","routes","r","name","editing_message_id","dispatch","popTo","handleEditPress","t14","params_0","handleViewReadReceiptsPress","t15","url_0","data","type","attributes","expanded_link_id","post","removeLinkPreview","t16","t17","_temp6","handleRemoveLinkPreview","t18","handleRemoveLinkPreviewConfirm","t19","message_reporting","showReportMessageAction","t20","formSheetContent","t21","reactionList","t22","reaction_1","index","Reaction","reaction","t23","children","t24","actions","Action","title","iconName","accessibilityHint","accessibilityRole","appearance","t25","Root","attachment_0","attachment","reaction_0","reactionStyles","colors","baseRippleColor","interaction","fillColorNeutral060","color","androidRippleColor","borderless","foreground","reactionEmoji","allowFontScaling","android_ripple","maxFontSizeMultiplier","fontScale","baseSize","Math","max","borderColorDefaultBase","reactionBtnSize","select","ios","android","create","paddingTop","flexDirection","justifyContent","alignItems","gap","paddingBottom","borderBottomColor","borderBottomWidth","height","width","borderWidth","borderRadius","overflow","fontSize","textAlign"],"sources":["../../src/screens/message_actions_screen.tsx"],"sourcesContent":["import { PlatformPressable } from '@react-navigation/elements'\nimport { StackActions, StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { isNil, omitBy } from 'lodash'\nimport React, { useCallback } from 'react'\nimport { Alert, Platform, StyleSheet, View } from 'react-native'\nimport { Text } from '../components'\nimport { useReactionStyles } from '../components/conversation/message_reaction'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useCreateAndroidRippleColor, useFontScale, useTheme } from '../hooks'\nimport { useApiClient } from '../hooks/use_api_client'\nimport { useConversationMessages } from '../hooks/use_conversation_messages'\nimport { availableFeatures, useFeatures } from '../hooks/use_features'\nimport { useMessageReactionToggle } from '../hooks/use_message_reaction_toggle'\nimport { MessageResource } from '../types'\nimport { ReactionCountResource } from '../types/resources/reaction'\nimport { REACTION_EMOJIS } from '../utils'\nimport {\n applyMessageDeletionToCaches,\n getThreadedMessagesQueryKey,\n} from '../utils/cache/messages_cache'\nimport { Clipboard, Haptic } from '../utils/native_adapters'\n\nexport const MessageActionsScreenOptions = getFormSheetScreenOptions({\n sheetAllowedDetents: [0.5],\n headerTitle: 'Message actions',\n})\n\nexport type MessageActionsScreenProps = StaticScreenProps<{\n message_id: string\n reply_root_author_name?: string\n conversation_id: number\n canDeleteNonAuthoredMessages?: boolean\n inReplyScreen?: boolean\n isSystemMessage?: boolean\n}>\n\nexport function MessageActionsScreen({ route }: MessageActionsScreenProps) {\n const {\n conversation_id,\n message_id,\n canDeleteNonAuthoredMessages,\n inReplyScreen,\n reply_root_author_name,\n isSystemMessage,\n } = route.params\n\n const { messages, refetch } = useConversationMessages(\n { conversation_id },\n { refetchOnMount: false }\n )\n const message = messages.find(m => m.id === message_id)\n\n if (!message) return null\n\n return (\n <MessageActionsScreenContent\n message={message}\n conversation_id={conversation_id}\n canDeleteNonAuthoredMessages={canDeleteNonAuthoredMessages || false}\n refetchMessages={refetch}\n inReplyScreen={inReplyScreen}\n replyRootAuthorName={reply_root_author_name}\n isSystemMessage={isSystemMessage}\n />\n )\n}\n\nfunction MessageActionsScreenContent({\n message,\n conversation_id,\n canDeleteNonAuthoredMessages,\n refetchMessages,\n inReplyScreen,\n replyRootAuthorName,\n isSystemMessage,\n}: {\n message: MessageResource\n conversation_id: number\n canDeleteNonAuthoredMessages: boolean\n refetchMessages: () => void\n inReplyScreen?: boolean\n replyRootAuthorName?: string\n isSystemMessage?: boolean\n}) {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const styles = useStyles()\n const { featureEnabled } = useFeatures()\n const expandedLink = message.attachments.find(attachment => attachment.type === 'ExpandedLink')\n const hasExpandedLink = !!expandedLink\n\n const myReactions = message?.reactionCounts\n .filter(reaction => reaction.mine)\n .map(reaction => reaction.value)\n\n const availableReactions = Object.entries(REACTION_EMOJIS).map(([value, emoji]) => {\n return {\n value: value as ReactionCountResource['value'],\n emoji,\n mine: myReactions?.includes(value as ReactionCountResource['value']),\n }\n })\n\n const attachmentForCopy = (): string => {\n const giphyTitleLink = message?.attachments.find(\n attachment => attachment.type === 'giphy'\n )?.titleLink\n\n if (giphyTitleLink) return giphyTitleLink\n return ''\n }\n\n const handleReplyPress = useCallback(() => {\n navigation.goBack()\n // Waits for the modal to be dismissed before pushing the reply screen\n requestAnimationFrame(() => {\n navigation.navigate('ConversationReply', {\n conversation_id,\n reply_root_id: message.replyRootId || message.id,\n reply_root_author_name: replyRootAuthorName,\n })\n })\n }, [navigation, conversation_id, message.id, message.replyRootId, replyRootAuthorName])\n\n const handleCopyPress = async () => {\n const textToCopy = message?.text || attachmentForCopy()\n if (textToCopy) {\n await Clipboard.setStringAsync(textToCopy)\n Haptic.notificationSuccess()\n }\n navigation.goBack()\n }\n\n const handleReportPress = useCallback(() => {\n Haptic.impactLight()\n navigation.navigate('MessageReport', {\n conversation_id,\n message_id: message.id,\n })\n }, [navigation, conversation_id, message.id])\n\n const { handleReactionToggle, isPending } = useMessageReactionToggle({\n conversation_id,\n message,\n })\n\n const deleteMessage = useCallback(() => {\n const url = `/me/conversations/${conversation_id}/messages/${message.id}/`\n\n return apiClient.chat.delete({ url })\n }, [apiClient, conversation_id, message.id])\n\n const { mutate: handleDeleteMessage } = useMutation({\n mutationFn: deleteMessage,\n mutationKey: ['deleteMessage', message.id],\n onSuccess: () => {\n applyMessageDeletionToCaches(queryClient, conversation_id, message)\n if (message.replyRootId) {\n queryClient.invalidateQueries({\n queryKey: getThreadedMessagesQueryKey(conversation_id, message.replyRootId),\n })\n }\n refetchMessages()\n Haptic.notificationSuccess()\n },\n onError: () => {\n Alert.alert('Oops', 'We were unable to delete this message. Please try again.')\n },\n })\n\n const handleDeleteConfirm = useCallback(() => {\n Alert.alert('Delete message', 'Are you sure you want to permanently delete this message?', [\n { text: 'Cancel', style: 'cancel' },\n {\n text: 'Delete',\n style: 'destructive',\n onPress: () => {\n handleDeleteMessage()\n navigation.goBack()\n },\n },\n ])\n }, [handleDeleteMessage, navigation])\n\n const handleEditPress = useCallback(() => {\n const state = navigation.getState?.()\n const targetRouteName = inReplyScreen ? 'ConversationReply' : 'Conversation'\n const targetRoute = state?.routes?.find(r => r.name === targetRouteName)\n const params = omitBy(\n {\n ...(targetRoute?.params || {}),\n conversation_id,\n editing_message_id: message.id,\n },\n isNil\n )\n navigation.dispatch(StackActions.popTo(targetRouteName, params))\n }, [navigation, conversation_id, message.id, inReplyScreen])\n\n const handleViewReadReceiptsPress = useCallback(() => {\n Haptic.impactLight()\n const params = omitBy(\n {\n conversation_id,\n message_id: message.id,\n },\n isNil\n )\n navigation.dispatch(StackActions.popTo('MessageReadReceipts', params))\n }, [navigation, conversation_id, message.id])\n\n const removeLinkPreview = useCallback(() => {\n const url = `/me/conversations/${conversation_id}/messages/${message.id}/remove_expanded_link`\n const data = {\n data: { type: 'ExpandedLink', attributes: { expanded_link_id: expandedLink?.id } },\n }\n\n return apiClient.chat.post({ url, data })\n }, [apiClient, conversation_id, message.id, expandedLink])\n\n const { mutate: handleRemoveLinkPreview } = useMutation({\n mutationFn: removeLinkPreview,\n onSuccess: () => {\n refetchMessages()\n Haptic.notificationSuccess()\n navigation.goBack()\n },\n onError: () => {\n Alert.alert('Oops', 'We were unable to remove the preview. Please try again.')\n },\n })\n\n const handleRemoveLinkPreviewConfirm = useCallback(() => {\n Alert.alert('Remove link preview?', 'This will remove the image preview but retain the link', [\n { text: 'Cancel', style: 'cancel' },\n { text: 'Remove', style: 'destructive', onPress: () => handleRemoveLinkPreview() },\n ])\n }, [handleRemoveLinkPreview])\n\n const showReportMessageAction =\n !message?.mine && featureEnabled(availableFeatures.message_reporting)\n\n return (\n <FormSheet.Root style={styles.formSheetContent}>\n <View style={styles.reactionList}>\n {availableReactions.map((reaction, index) => (\n <Reaction\n key={index}\n reaction={reaction}\n onPress={() => {\n Haptic.impactLight()\n handleReactionToggle({\n value: reaction.value,\n mine: reaction.mine,\n })\n navigation.goBack()\n }}\n />\n ))}\n </View>\n {!isSystemMessage && (\n <View style={styles.actions}>\n {!inReplyScreen && (\n <FormSheet.Action\n onPress={handleReplyPress}\n title=\"Reply to message\"\n iconName=\"registrations.undo\"\n accessibilityHint=\"Navigates to the reply screen\"\n accessibilityRole=\"link\"\n />\n )}\n <FormSheet.Action\n onPress={handleCopyPress}\n title=\"Copy text\"\n iconName=\"services.fileCopy\"\n accessibilityHint=\"Copies text and links to clipboard\"\n />\n {showReportMessageAction && (\n <FormSheet.Action\n onPress={handleReportPress}\n title=\"Report message\"\n iconName=\"chat.reportMessageO\"\n accessibilityHint=\"Opens a form to report this message\"\n />\n )}\n {message?.mine && (\n <FormSheet.Action\n onPress={() => handleEditPress()}\n title=\"Edit message\"\n iconName=\"accounts.editor\"\n accessibilityHint=\"Opens existing text in the message form input.\"\n />\n )}\n {message?.mine && (\n <FormSheet.Action\n onPress={() => handleViewReadReceiptsPress()}\n title=\"View read receipts\"\n iconName=\"general.checkPerson\"\n accessibilityHint=\"Opens a modal with a list of people who read your message.\"\n />\n )}\n {message?.mine && hasExpandedLink && (\n <FormSheet.Action\n onPress={() => handleRemoveLinkPreviewConfirm()}\n title=\"Remove link preview\"\n iconName=\"general.brokenLink\"\n accessibilityHint=\"Removes an expanded link preview from the message.\"\n />\n )}\n {(message?.mine || canDeleteNonAuthoredMessages) && (\n <FormSheet.Action\n onPress={() => handleDeleteConfirm()}\n title=\"Delete message\"\n iconName=\"publishing.trash\"\n appearance=\"danger\"\n disabled={isPending}\n accessibilityHint=\"Opens a confirmation alert to delete this message permanently.\"\n />\n )}\n </View>\n )}\n </FormSheet.Root>\n )\n}\n\nconst Reaction = ({\n reaction,\n onPress,\n}: {\n reaction: { value: ReactionCountResource['value']; emoji: string; mine: boolean | undefined }\n onPress: () => void\n}) => {\n const styles = useStyles()\n const reactionStyles = useReactionStyles({ mine: reaction.mine ? 1 : 0 })\n\n const { colors } = useTheme()\n const baseRippleColor = reaction.mine ? colors.interaction : colors.fillColorNeutral060\n const androidRippleColor = useCreateAndroidRippleColor({ color: baseRippleColor })\n\n return (\n <PlatformPressable\n key={reaction.value}\n style={[reactionStyles.reaction, styles.reaction]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n onPress={onPress}\n >\n <Text style={styles.reactionEmoji} allowFontScaling={false}>\n {REACTION_EMOJIS[reaction.value]}\n </Text>\n </PlatformPressable>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const fontScale = useFontScale({ maxFontSizeMultiplier: 1.3 })\n\n const btnBorderWidth = 1\n const baseSize = 46 * Math.max(1, fontScale)\n const reactionBtnSize = Platform.select({\n ios: baseSize,\n android: baseSize + btnBorderWidth * 2,\n })\n\n return StyleSheet.create({\n formSheetContent: {\n paddingTop: 16,\n },\n reactionList: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n gap: 16,\n paddingTop: 8,\n paddingBottom: 16,\n borderBottomColor: colors.borderColorDefaultBase,\n borderBottomWidth: 1,\n },\n reaction: {\n height: reactionBtnSize,\n width: reactionBtnSize,\n borderWidth: btnBorderWidth,\n borderRadius: 32,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n reactionEmoji: {\n fontSize: 24,\n textAlign: 'center',\n },\n actions: {\n paddingTop: 4,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"message_actions_screen.js","names":["PlatformPressable","StackActions","useNavigation","useMutation","useQueryClient","isNil","omitBy","React","useCallback","Alert","Platform","StyleSheet","View","Text","useReactionStyles","FormSheet","getFormSheetScreenOptions","useCreateAndroidRippleColor","useFontScale","useTheme","useApiClient","useConversation","useConversationMessages","availableFeatures","useFeatures","useMessageReactionToggle","REACTION_EMOJIS","applyMessageDeletionToCaches","getThreadedMessagesQueryKey","Clipboard","Haptic","jsx","_jsx","jsxs","_jsxs","MessageActionsScreenOptions","sheetAllowedDetents","headerTitle","MessageActionsScreen","t0","$","_c","route","conversation_id","message_id","canDeleteNonAuthoredMessages","inReplyScreen","reply_root_author_name","isSystemMessage","params","t1","t2","Symbol","for","refetchOnMount","messages","refetch","t3","t4","data","conversation","t5","t6","m","id","find","message","disabled","t7","t8","MessageActionsScreenContent","conversationDisabled","refetchMessages","replyRootAuthorName","navigation","apiClient","queryClient","styles","useStyles","featureEnabled","attachments","_temp","expandedLink","hasExpandedLink","reactionCounts","myReactions","filter","_temp2","map","_temp3","Object","entries","value","emoji","mine","includes","availableReactions","giphyTitleLink","_temp4","titleLink","attachmentForCopy","replyRootId","goBack","requestAnimationFrame","navigate","reply_root_id","handleReplyPress","text","textToCopy","setStringAsync","notificationSuccess","handleCopyPress","impactLight","handleReportPress","handleReactionToggle","isPending","url","chat","delete","deleteMessage","t9","t10","invalidateQueries","queryKey","t11","mutationFn","mutationKey","onSuccess","onError","_temp5","mutate","handleDeleteMessage","t12","alert","style","onPress","handleDeleteConfirm","t13","state","getState","targetRouteName","targetRoute","routes","r","name","editing_message_id","dispatch","popTo","handleEditPress","t14","params_0","handleViewReadReceiptsPress","t15","url_0","type","attributes","expanded_link_id","post","removeLinkPreview","t16","t17","_temp6","handleRemoveLinkPreview","t18","handleRemoveLinkPreviewConfirm","t19","message_reporting","showReportMessageAction","showDeleteMessageAction","t20","reactionList","children","reaction_1","index","Reaction","reaction","t21","actions","Action","title","iconName","accessibilityHint","accessibilityRole","appearance","t22","formSheetContent","Root","attachment_0","attachment","reaction_0","reactionStyles","colors","baseRippleColor","interaction","fillColorNeutral060","color","androidRippleColor","borderless","foreground","reactionEmoji","allowFontScaling","android_ripple","maxFontSizeMultiplier","fontScale","baseSize","Math","max","borderColorDefaultBase","reactionBtnSize","select","ios","android","create","paddingTop","flexDirection","justifyContent","alignItems","gap","paddingBottom","borderBottomColor","borderBottomWidth","height","width","borderWidth","borderRadius","overflow","fontSize","textAlign"],"sources":["../../src/screens/message_actions_screen.tsx"],"sourcesContent":["import { PlatformPressable } from '@react-navigation/elements'\nimport { StackActions, StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport { useMutation, useQueryClient } from '@tanstack/react-query'\nimport { isNil, omitBy } from 'lodash'\nimport React, { useCallback } from 'react'\nimport { Alert, Platform, StyleSheet, View } from 'react-native'\nimport { Text } from '../components'\nimport { useReactionStyles } from '../components/conversation/message_reaction'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useCreateAndroidRippleColor, useFontScale, useTheme } from '../hooks'\nimport { useApiClient } from '../hooks/use_api_client'\nimport { useConversation } from '../hooks/use_conversation'\nimport { useConversationMessages } from '../hooks/use_conversation_messages'\nimport { availableFeatures, useFeatures } from '../hooks/use_features'\nimport { useMessageReactionToggle } from '../hooks/use_message_reaction_toggle'\nimport { MessageResource } from '../types'\nimport { ReactionCountResource } from '../types/resources/reaction'\nimport { REACTION_EMOJIS } from '../utils'\nimport {\n applyMessageDeletionToCaches,\n getThreadedMessagesQueryKey,\n} from '../utils/cache/messages_cache'\nimport { Clipboard, Haptic } from '../utils/native_adapters'\n\nexport const MessageActionsScreenOptions = getFormSheetScreenOptions({\n sheetAllowedDetents: [0.5],\n headerTitle: 'Message actions',\n})\n\nexport type MessageActionsScreenProps = StaticScreenProps<{\n message_id: string\n reply_root_author_name?: string\n conversation_id: number\n canDeleteNonAuthoredMessages?: boolean\n inReplyScreen?: boolean\n isSystemMessage?: boolean\n}>\n\nexport function MessageActionsScreen({ route }: MessageActionsScreenProps) {\n const {\n conversation_id,\n message_id,\n canDeleteNonAuthoredMessages,\n inReplyScreen,\n reply_root_author_name,\n isSystemMessage,\n } = route.params\n\n const { messages, refetch } = useConversationMessages(\n { conversation_id },\n { refetchOnMount: false }\n )\n const { data: conversation } = useConversation({ conversation_id }, { refetchOnMount: false })\n const message = messages.find(m => m.id === message_id)\n\n if (!message) return null\n\n return (\n <MessageActionsScreenContent\n message={message}\n conversation_id={conversation_id}\n conversationDisabled={!!conversation.disabled}\n canDeleteNonAuthoredMessages={canDeleteNonAuthoredMessages || false}\n refetchMessages={refetch}\n inReplyScreen={inReplyScreen}\n replyRootAuthorName={reply_root_author_name}\n isSystemMessage={isSystemMessage}\n />\n )\n}\n\nfunction MessageActionsScreenContent({\n message,\n conversation_id,\n conversationDisabled,\n canDeleteNonAuthoredMessages,\n refetchMessages,\n inReplyScreen,\n replyRootAuthorName,\n isSystemMessage,\n}: {\n message: MessageResource\n conversation_id: number\n conversationDisabled: boolean\n canDeleteNonAuthoredMessages: boolean\n refetchMessages: () => void\n inReplyScreen?: boolean\n replyRootAuthorName?: string\n isSystemMessage?: boolean\n}) {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const queryClient = useQueryClient()\n const styles = useStyles()\n const { featureEnabled } = useFeatures()\n const expandedLink = message.attachments.find(attachment => attachment.type === 'ExpandedLink')\n const hasExpandedLink = !!expandedLink\n\n const myReactions = message?.reactionCounts\n .filter(reaction => reaction.mine)\n .map(reaction => reaction.value)\n\n const availableReactions = Object.entries(REACTION_EMOJIS).map(([value, emoji]) => {\n return {\n value: value as ReactionCountResource['value'],\n emoji,\n mine: myReactions?.includes(value as ReactionCountResource['value']),\n }\n })\n\n const attachmentForCopy = (): string => {\n const giphyTitleLink = message?.attachments.find(\n attachment => attachment.type === 'giphy'\n )?.titleLink\n\n if (giphyTitleLink) return giphyTitleLink\n return ''\n }\n\n const handleReplyPress = useCallback(() => {\n navigation.goBack()\n // Waits for the modal to be dismissed before pushing the reply screen\n requestAnimationFrame(() => {\n navigation.navigate('ConversationReply', {\n conversation_id,\n reply_root_id: message.replyRootId || message.id,\n reply_root_author_name: replyRootAuthorName,\n })\n })\n }, [navigation, conversation_id, message.id, message.replyRootId, replyRootAuthorName])\n\n const handleCopyPress = async () => {\n const textToCopy = message?.text || attachmentForCopy()\n if (textToCopy) {\n await Clipboard.setStringAsync(textToCopy)\n Haptic.notificationSuccess()\n }\n navigation.goBack()\n }\n\n const handleReportPress = useCallback(() => {\n Haptic.impactLight()\n navigation.navigate('MessageReport', {\n conversation_id,\n message_id: message.id,\n })\n }, [navigation, conversation_id, message.id])\n\n const { handleReactionToggle, isPending } = useMessageReactionToggle({\n conversation_id,\n message,\n })\n\n const deleteMessage = useCallback(() => {\n const url = `/me/conversations/${conversation_id}/messages/${message.id}/`\n\n return apiClient.chat.delete({ url })\n }, [apiClient, conversation_id, message.id])\n\n const { mutate: handleDeleteMessage } = useMutation({\n mutationFn: deleteMessage,\n mutationKey: ['deleteMessage', message.id],\n onSuccess: () => {\n applyMessageDeletionToCaches(queryClient, conversation_id, message)\n if (message.replyRootId) {\n queryClient.invalidateQueries({\n queryKey: getThreadedMessagesQueryKey(conversation_id, message.replyRootId),\n })\n }\n refetchMessages()\n Haptic.notificationSuccess()\n },\n onError: () => {\n Alert.alert('Oops', 'We were unable to delete this message. Please try again.')\n },\n })\n\n const handleDeleteConfirm = useCallback(() => {\n Alert.alert('Delete message', 'Are you sure you want to permanently delete this message?', [\n { text: 'Cancel', style: 'cancel' },\n {\n text: 'Delete',\n style: 'destructive',\n onPress: () => {\n handleDeleteMessage()\n navigation.goBack()\n },\n },\n ])\n }, [handleDeleteMessage, navigation])\n\n const handleEditPress = useCallback(() => {\n const state = navigation.getState?.()\n const targetRouteName = inReplyScreen ? 'ConversationReply' : 'Conversation'\n const targetRoute = state?.routes?.find(r => r.name === targetRouteName)\n const params = omitBy(\n {\n ...(targetRoute?.params || {}),\n conversation_id,\n editing_message_id: message.id,\n },\n isNil\n )\n navigation.dispatch(StackActions.popTo(targetRouteName, params))\n }, [navigation, conversation_id, message.id, inReplyScreen])\n\n const handleViewReadReceiptsPress = useCallback(() => {\n Haptic.impactLight()\n const params = omitBy(\n {\n conversation_id,\n message_id: message.id,\n },\n isNil\n )\n navigation.dispatch(StackActions.popTo('MessageReadReceipts', params))\n }, [navigation, conversation_id, message.id])\n\n const removeLinkPreview = useCallback(() => {\n const url = `/me/conversations/${conversation_id}/messages/${message.id}/remove_expanded_link`\n const data = {\n data: { type: 'ExpandedLink', attributes: { expanded_link_id: expandedLink?.id } },\n }\n\n return apiClient.chat.post({ url, data })\n }, [apiClient, conversation_id, message.id, expandedLink])\n\n const { mutate: handleRemoveLinkPreview } = useMutation({\n mutationFn: removeLinkPreview,\n onSuccess: () => {\n refetchMessages()\n Haptic.notificationSuccess()\n navigation.goBack()\n },\n onError: () => {\n Alert.alert('Oops', 'We were unable to remove the preview. Please try again.')\n },\n })\n\n const handleRemoveLinkPreviewConfirm = useCallback(() => {\n Alert.alert('Remove link preview?', 'This will remove the image preview but retain the link', [\n { text: 'Cancel', style: 'cancel' },\n { text: 'Remove', style: 'destructive', onPress: () => handleRemoveLinkPreview() },\n ])\n }, [handleRemoveLinkPreview])\n\n const showReportMessageAction =\n !message?.mine && featureEnabled(availableFeatures.message_reporting)\n const showDeleteMessageAction =\n !conversationDisabled && (message?.mine || canDeleteNonAuthoredMessages)\n\n return (\n <FormSheet.Root style={styles.formSheetContent}>\n {!conversationDisabled && (\n <View style={styles.reactionList}>\n {availableReactions.map((reaction, index) => (\n <Reaction\n key={index}\n reaction={reaction}\n onPress={() => {\n Haptic.impactLight()\n handleReactionToggle({\n value: reaction.value,\n mine: reaction.mine,\n })\n navigation.goBack()\n }}\n />\n ))}\n </View>\n )}\n {!isSystemMessage && (\n <View style={styles.actions}>\n {!inReplyScreen && !conversationDisabled && (\n <FormSheet.Action\n onPress={handleReplyPress}\n title=\"Reply to message\"\n iconName=\"registrations.undo\"\n accessibilityHint=\"Navigates to the reply screen\"\n accessibilityRole=\"link\"\n />\n )}\n <FormSheet.Action\n onPress={handleCopyPress}\n title=\"Copy text\"\n iconName=\"services.fileCopy\"\n accessibilityHint=\"Copies text and links to clipboard\"\n />\n {showReportMessageAction && (\n <FormSheet.Action\n onPress={handleReportPress}\n title=\"Report message\"\n iconName=\"chat.reportMessageO\"\n accessibilityHint=\"Opens a form to report this message\"\n />\n )}\n {message?.mine && !conversationDisabled && (\n <FormSheet.Action\n onPress={() => handleEditPress()}\n title=\"Edit message\"\n iconName=\"accounts.editor\"\n accessibilityHint=\"Opens existing text in the message form input.\"\n />\n )}\n {message?.mine && (\n <FormSheet.Action\n onPress={() => handleViewReadReceiptsPress()}\n title=\"View read receipts\"\n iconName=\"general.checkPerson\"\n accessibilityHint=\"Opens a modal with a list of people who read your message.\"\n />\n )}\n {message?.mine && hasExpandedLink && !conversationDisabled && (\n <FormSheet.Action\n onPress={() => handleRemoveLinkPreviewConfirm()}\n title=\"Remove link preview\"\n iconName=\"general.brokenLink\"\n accessibilityHint=\"Removes an expanded link preview from the message.\"\n />\n )}\n {showDeleteMessageAction && (\n <FormSheet.Action\n onPress={() => handleDeleteConfirm()}\n title=\"Delete message\"\n iconName=\"publishing.trash\"\n appearance=\"danger\"\n disabled={isPending}\n accessibilityHint=\"Opens a confirmation alert to delete this message permanently.\"\n />\n )}\n </View>\n )}\n </FormSheet.Root>\n )\n}\n\nconst Reaction = ({\n reaction,\n onPress,\n}: {\n reaction: { value: ReactionCountResource['value']; emoji: string; mine: boolean | undefined }\n onPress: () => void\n}) => {\n const styles = useStyles()\n const reactionStyles = useReactionStyles({ mine: reaction.mine ? 1 : 0 })\n\n const { colors } = useTheme()\n const baseRippleColor = reaction.mine ? colors.interaction : colors.fillColorNeutral060\n const androidRippleColor = useCreateAndroidRippleColor({ color: baseRippleColor })\n\n return (\n <PlatformPressable\n key={reaction.value}\n style={[reactionStyles.reaction, styles.reaction]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n onPress={onPress}\n >\n <Text style={styles.reactionEmoji} allowFontScaling={false}>\n {REACTION_EMOJIS[reaction.value]}\n </Text>\n </PlatformPressable>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const fontScale = useFontScale({ maxFontSizeMultiplier: 1.3 })\n\n const btnBorderWidth = 1\n const baseSize = 46 * Math.max(1, fontScale)\n const reactionBtnSize = Platform.select({\n ios: baseSize,\n android: baseSize + btnBorderWidth * 2,\n })\n\n return StyleSheet.create({\n formSheetContent: {\n paddingTop: 16,\n },\n reactionList: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n gap: 16,\n paddingTop: 8,\n paddingBottom: 16,\n borderBottomColor: colors.borderColorDefaultBase,\n borderBottomWidth: 1,\n },\n reaction: {\n height: reactionBtnSize,\n width: reactionBtnSize,\n borderWidth: btnBorderWidth,\n borderRadius: 32,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n reactionEmoji: {\n fontSize: 24,\n textAlign: 'center',\n },\n actions: {\n paddingTop: 4,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member_ability.d.ts","sourceRoot":"","sources":["../../../src/types/resources/member_ability.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,eAAe,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,4BAA4B,EAAE,OAAO,CAAA;IACrC,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,0BAA0B,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"member_ability.d.ts","sourceRoot":"","sources":["../../../src/types/resources/member_ability.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,eAAe,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,4BAA4B,EAAE,OAAO,CAAA;IACrC,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,0BAA0B,EAAE,OAAO,CAAA;IACnC,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;CACtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member_ability.js","names":[],"sources":["../../../src/types/resources/member_ability.ts"],"sourcesContent":["export interface MemberAbilityResource {\n type: 'MemberAbility'\n canUpdate: boolean\n canDelete: boolean\n canDeleteNonAuthoredMessages: boolean\n leader: boolean\n canReply: boolean\n canMessageAvailableMembers: boolean\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"member_ability.js","names":[],"sources":["../../../src/types/resources/member_ability.ts"],"sourcesContent":["export interface MemberAbilityResource {\n type: 'MemberAbility'\n canUpdate: boolean\n canDelete: boolean\n canDeleteNonAuthoredMessages: boolean\n leader: boolean\n canReply: boolean\n canMessageAvailableMembers: boolean\n canArchive: boolean\n canUnarchive: boolean\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ConversationResource } from '../types/resources/conversation';
|
|
2
|
+
export declare const ARCHIVED_DISABLED_REASON = "archived";
|
|
3
|
+
export declare const isArchivedConversation: (conversation: Pick<ConversationResource, "disabledReason">) => boolean;
|
|
4
|
+
export declare const archivedConversationMessage: (conversation: Pick<ConversationResource, "disabledMessage">) => string;
|
|
5
|
+
//# sourceMappingURL=archived_conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archived_conversation.d.ts","sourceRoot":"","sources":["../../src/utils/archived_conversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAE3E,eAAO,MAAM,wBAAwB,aAAa,CAAA;AAIlD,eAAO,MAAM,sBAAsB,GACjC,cAAc,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,YACC,CAAA;AAE7D,eAAO,MAAM,2BAA2B,GACtC,cAAc,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,WACA,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const ARCHIVED_DISABLED_REASON = 'archived';
|
|
2
|
+
const DEFAULT_ARCHIVED_MESSAGE = 'This conversation is archived.';
|
|
3
|
+
export const isArchivedConversation = conversation => conversation.disabledReason === ARCHIVED_DISABLED_REASON;
|
|
4
|
+
export const archivedConversationMessage = conversation => conversation.disabledMessage || DEFAULT_ARCHIVED_MESSAGE;
|
|
5
|
+
//# sourceMappingURL=archived_conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archived_conversation.js","names":["ARCHIVED_DISABLED_REASON","DEFAULT_ARCHIVED_MESSAGE","isArchivedConversation","conversation","disabledReason","archivedConversationMessage","disabledMessage"],"sources":["../../src/utils/archived_conversation.ts"],"sourcesContent":["import type { ConversationResource } from '../types/resources/conversation'\n\nexport const ARCHIVED_DISABLED_REASON = 'archived'\n\nconst DEFAULT_ARCHIVED_MESSAGE = 'This conversation is archived.'\n\nexport const isArchivedConversation = (\n conversation: Pick<ConversationResource, 'disabledReason'>\n) => conversation.disabledReason === ARCHIVED_DISABLED_REASON\n\nexport const archivedConversationMessage = (\n conversation: Pick<ConversationResource, 'disabledMessage'>\n) => conversation.disabledMessage || DEFAULT_ARCHIVED_MESSAGE\n"],"mappings":"AAEA,OAAO,MAAMA,wBAAwB,GAAG,UAAU;AAElD,MAAMC,wBAAwB,GAAG,gCAAgC;AAEjE,OAAO,MAAMC,sBAAsB,GACjCC,YAA0D,IACvDA,YAAY,CAACC,cAAc,KAAKJ,wBAAwB;AAE7D,OAAO,MAAMK,2BAA2B,GACtCF,YAA2D,IACxDA,YAAY,CAACG,eAAe,IAAIL,wBAAwB","ignoreList":[]}
|
package/build/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA"}
|
package/build/utils/index.js
CHANGED
package/build/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/utils/index.ts"],"sourcesContent":["export * from './assert_keys_are_numbers'\nexport * from './attachment_kind'\nexport * from './chat_type_label'\nexport * from './cache'\nexport * from './client'\nexport * from './convert_attachments_for_create'\nexport * from './destructure_chat_group_graph_id'\nexport * from './host_bridge'\nexport * from './liquid_glass'\nexport * from './native_adapters'\nexport * from './pluralize'\nexport * from './conversation_safety_constants'\nexport * from './reaction_constants'\nexport * from './session'\nexport * from './styles'\nexport * from './system_messages'\nexport * from './theme'\nexport * from './uri'\n"],"mappings":"AAAA,cAAc,2BAA2B;AACzC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,kCAAkC;AAChD,cAAc,mCAAmC;AACjD,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,cAAc,aAAa;AAC3B,cAAc,iCAAiC;AAC/C,cAAc,sBAAsB;AACpC,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,mBAAmB;AACjC,cAAc,SAAS;AACvB,cAAc,OAAO","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/utils/index.ts"],"sourcesContent":["export * from './archived_conversation'\nexport * from './assert_keys_are_numbers'\nexport * from './attachment_kind'\nexport * from './chat_type_label'\nexport * from './cache'\nexport * from './client'\nexport * from './convert_attachments_for_create'\nexport * from './destructure_chat_group_graph_id'\nexport * from './host_bridge'\nexport * from './liquid_glass'\nexport * from './native_adapters'\nexport * from './pluralize'\nexport * from './conversation_safety_constants'\nexport * from './reaction_constants'\nexport * from './session'\nexport * from './styles'\nexport * from './system_messages'\nexport * from './theme'\nexport * from './uri'\n"],"mappings":"AAAA,cAAc,yBAAyB;AACvC,cAAc,2BAA2B;AACzC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,kCAAkC;AAChD,cAAc,mCAAmC;AACjD,cAAc,eAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,cAAc,aAAa;AAC3B,cAAc,iCAAiC;AAC/C,cAAc,sBAAsB;AACpC,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,mBAAmB;AACjC,cAAc,SAAS;AACvB,cAAc,OAAO","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ import { HapticAdapter } from './haptic';
|
|
|
5
5
|
import { ImagePickerAdapter } from './image_picker';
|
|
6
6
|
import { LinkingAdapter } from './linking';
|
|
7
7
|
import { LogAdapter } from './log';
|
|
8
|
+
import { MenuAdapter } from './menu';
|
|
8
9
|
import { StorageAdapter } from './storage_adapter';
|
|
9
10
|
import { VideoAdapter } from './video';
|
|
10
11
|
type ChatConfigurations = {
|
|
@@ -16,6 +17,7 @@ type ChatConfigurations = {
|
|
|
16
17
|
log?: LogAdapter;
|
|
17
18
|
linking?: LinkingAdapter;
|
|
18
19
|
haptic?: HapticAdapter;
|
|
20
|
+
menu?: MenuAdapter;
|
|
19
21
|
};
|
|
20
22
|
export declare class ChatAdapters {
|
|
21
23
|
static configure(configurations: ChatConfigurations): void;
|
|
@@ -28,6 +30,7 @@ export declare let DocumentPicker: DocumentPickerAdapter;
|
|
|
28
30
|
export declare let Log: LogAdapter;
|
|
29
31
|
export declare let Linking: LinkingAdapter;
|
|
30
32
|
export declare let Haptic: HapticAdapter;
|
|
33
|
+
export declare let Menu: MenuAdapter;
|
|
31
34
|
export declare let Storage: StorageAdapter;
|
|
32
35
|
export {};
|
|
33
36
|
//# sourceMappingURL=configuration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../src/utils/native_adapters/configuration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,KAAK,kBAAkB,GAAG;IACxB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,kBAAkB,CAAA;IAC/B,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../src/utils/native_adapters/configuration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,KAAK,kBAAkB,GAAG;IACxB,SAAS,EAAE,gBAAgB,CAAA;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,kBAAkB,CAAA;IAC/B,cAAc,CAAC,EAAE,qBAAqB,CAAA;IACtC,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,qBAAa,YAAY;IACvB,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB;CAWpD;AAMD,eAAO,IAAI,SAAS,EAAE,gBAMpB,CAAA;AAEF,eAAO,IAAI,KAAK,EAAE,YAKhB,CAAA;AAEF,eAAO,IAAI,KAAK,EAAE,YAQhB,CAAA;AAEF,eAAO,IAAI,WAAW,EAAE,kBAStB,CAAA;AAEF,eAAO,IAAI,cAAc,EAAE,qBAAmD,CAAA;AAE9E,eAAO,IAAI,GAAG,EAAE,UAA6B,CAAA;AAE7C,eAAO,IAAI,OAAO,EAAE,cAA8C,CAAA;AAElE,eAAO,IAAI,MAAM,EAAE,aAAmC,CAAA;AAEtD,eAAO,IAAI,IAAI,EAAE,WAA+B,CAAA;AAEhD,eAAO,IAAI,OAAO,gBAIhB,CAAA"}
|
|
@@ -7,6 +7,7 @@ import { HapticAdapter } from './haptic';
|
|
|
7
7
|
import { ImagePickerAdapter } from './image_picker';
|
|
8
8
|
import { LinkingAdapter } from './linking';
|
|
9
9
|
import { LogAdapter } from './log';
|
|
10
|
+
import { MenuAdapter } from './menu';
|
|
10
11
|
import { StorageAdapter } from './storage_adapter';
|
|
11
12
|
import { VideoAdapter } from './video';
|
|
12
13
|
export class ChatAdapters {
|
|
@@ -19,6 +20,7 @@ export class ChatAdapters {
|
|
|
19
20
|
Log = configurations.log || new LogAdapter();
|
|
20
21
|
Linking = configurations.linking || new LinkingAdapter(RNLinking);
|
|
21
22
|
Haptic = configurations.haptic || new HapticAdapter();
|
|
23
|
+
Menu = configurations.menu || new MenuAdapter();
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
const methodMissing = () => {
|
|
@@ -65,6 +67,7 @@ export let DocumentPicker = new DocumentPickerAdapter();
|
|
|
65
67
|
export let Log = new LogAdapter();
|
|
66
68
|
export let Linking = new LinkingAdapter(RNLinking);
|
|
67
69
|
export let Haptic = new HapticAdapter();
|
|
70
|
+
export let Menu = new MenuAdapter();
|
|
68
71
|
export let Storage = new StorageAdapter({
|
|
69
72
|
getItem: AsyncStorage.getItem,
|
|
70
73
|
setItem: AsyncStorage.setItem,
|