@ethora/chat-component-rn 26.7.1 → 26.7.3
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/CHANGELOG.md +9 -0
- package/README.md +22 -0
- package/lib/commonjs/assets/icons.js +2 -2
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +60 -3
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +18 -0
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageList.js +9 -3
- package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
- package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +110 -37
- package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +16 -14
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +130 -125
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +0 -10
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +12 -0
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/historyPreloadScheduler.js +65 -2
- package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/commonjs/helpers/shallowEqual.js +36 -0
- package/lib/commonjs/helpers/shallowEqual.js.map +1 -0
- package/lib/commonjs/hooks/useChatWrapperInit.js +15 -0
- package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
- package/lib/commonjs/hooks/useComposing.js +27 -0
- package/lib/commonjs/hooks/useComposing.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +27 -1
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js +6 -1
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/commonjs/main.js +6 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +6 -2
- package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +2 -2
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/assets/icons.js +1 -1
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +61 -4
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +19 -1
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/MessageList.js +9 -3
- package/lib/module/components/MainComponents/MessageList.js.map +1 -1
- package/lib/module/components/Menu/HeaderRoomListMenu.js +110 -38
- package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js +16 -14
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +130 -125
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +1 -11
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/context/xmppProvider.js +12 -0
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/historyPreloadScheduler.js +66 -3
- package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/module/helpers/shallowEqual.js +31 -0
- package/lib/module/helpers/shallowEqual.js.map +1 -0
- package/lib/module/hooks/useChatWrapperInit.js +15 -0
- package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
- package/lib/module/hooks/useComposing.js +28 -1
- package/lib/module/hooks/useComposing.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +28 -2
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/hooks/useUnreadMessagesCounter.js +6 -1
- package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/module/main.js +1 -1
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +6 -2
- package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +1 -1
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/typescript/assets/icons.d.ts +4 -0
- package/lib/typescript/assets/icons.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageList.d.ts +10 -1
- package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +3 -0
- package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
- package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
- package/lib/typescript/helpers/shallowEqual.d.ts +11 -0
- package/lib/typescript/helpers/shallowEqual.d.ts.map +1 -0
- package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
- package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +1 -0
- package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
- package/lib/typescript/main.d.ts +1 -1
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +1 -0
- package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts +1 -0
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts +1 -0
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +13 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/assets/icons.tsx +19 -0
- package/src/components/MainComponents/ChatRoom.tsx +63 -1
- package/src/components/MainComponents/ChatWrapper.tsx +19 -1
- package/src/components/MainComponents/MessageList.tsx +19 -2
- package/src/components/Menu/HeaderRoomListMenu.tsx +105 -11
- package/src/components/Modals/AttachSheet/AttachSheet.tsx +16 -14
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +8 -6
- package/src/components/styled/SendInput.tsx +0 -10
- package/src/context/xmppProvider.tsx +14 -0
- package/src/helpers/historyPreloadScheduler.ts +80 -3
- package/src/helpers/shallowEqual.ts +33 -0
- package/src/hooks/useChatWrapperInit.ts +15 -0
- package/src/hooks/useComposing.tsx +37 -1
- package/src/hooks/useSendMessage.tsx +32 -2
- package/src/hooks/useUnreadMessagesCounter.ts +11 -0
- package/src/main.ts +1 -1
- package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +17 -3
- package/src/networking/xmppClient.ts +5 -1
- package/src/roomStore/roomsSlice.ts +1 -1
- package/src/types/types.ts +22 -0
|
@@ -1,12 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useMemo } from 'react';
|
|
4
|
-
import { Animated, Text, TouchableOpacity, TouchableWithoutFeedback, StyleSheet, Dimensions, View } from 'react-native';
|
|
5
|
-
import { AddNewIcon, ProfileIcon, SettingIcon } from '../../assets/icons';
|
|
4
|
+
import { Alert, Animated, Text, TouchableOpacity, TouchableWithoutFeedback, StyleSheet, Dimensions, View } from 'react-native';
|
|
5
|
+
import { AddNewIcon, LogoutIcon, ProfileIcon, SettingIcon } from '../../assets/icons';
|
|
6
6
|
import { useDispatch } from 'react-redux';
|
|
7
7
|
import { setActiveModal } from '../../roomStore/chatSettingsSlice';
|
|
8
8
|
import { MODAL_TYPES } from '../../helpers/constants/MODAL_TYPES';
|
|
9
|
+
import { useChatSettingState } from '../../hooks/useChatSettingState';
|
|
10
|
+
import { useLogout } from '../../hooks/useLogout';
|
|
9
11
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
12
|
+
const DEFAULT_LOGOUT_LABEL = 'Sign out';
|
|
13
|
+
const confirmLogout = (confirm, label) => {
|
|
14
|
+
if (confirm === false) {
|
|
15
|
+
return Promise.resolve(true);
|
|
16
|
+
}
|
|
17
|
+
const copy = typeof confirm === 'object' && confirm ? confirm : {};
|
|
18
|
+
return new Promise(resolve => {
|
|
19
|
+
Alert.alert(copy.title ?? label, copy.message ?? 'Are you sure you want to sign out?', [{
|
|
20
|
+
text: copy.cancelText ?? 'Cancel',
|
|
21
|
+
style: 'cancel',
|
|
22
|
+
onPress: () => resolve(false)
|
|
23
|
+
}, {
|
|
24
|
+
text: copy.confirmText ?? label,
|
|
25
|
+
style: 'destructive',
|
|
26
|
+
onPress: () => resolve(true)
|
|
27
|
+
}], {
|
|
28
|
+
cancelable: true,
|
|
29
|
+
onDismiss: () => resolve(false)
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
export const runLogoutFlow = async (logoutConfig, performLogout) => {
|
|
34
|
+
const label = logoutConfig.label ?? DEFAULT_LOGOUT_LABEL;
|
|
35
|
+
const confirmed = await confirmLogout(logoutConfig.confirm ?? true, label);
|
|
36
|
+
if (!confirmed) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (logoutConfig.onBeforeLogout) {
|
|
40
|
+
try {
|
|
41
|
+
const proceed = await logoutConfig.onBeforeLogout();
|
|
42
|
+
if (proceed === false) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
} catch (e) {
|
|
46
|
+
console.warn('HeaderRoomListMenu: onBeforeLogout threw, logout cancelled', e);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
await performLogout(); // never rejects (see useLogout)
|
|
51
|
+
if (logoutConfig.onAfterLogout) {
|
|
52
|
+
try {
|
|
53
|
+
await logoutConfig.onAfterLogout();
|
|
54
|
+
} catch (e) {
|
|
55
|
+
console.warn('HeaderRoomListMenu: onAfterLogout threw', e);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
10
59
|
const {
|
|
11
60
|
width
|
|
12
61
|
} = Dimensions.get('window');
|
|
@@ -17,46 +66,66 @@ export const HeaderRoomListMenu = ({
|
|
|
17
66
|
closeDrawer
|
|
18
67
|
}) => {
|
|
19
68
|
const dispatch = useDispatch();
|
|
69
|
+
const {
|
|
70
|
+
config
|
|
71
|
+
} = useChatSettingState();
|
|
72
|
+
const performLogout = useLogout();
|
|
73
|
+
const logoutConfig = config?.logout?.enabled ? config.logout : undefined;
|
|
74
|
+
const primaryColor = config?.colors?.primary ?? '#0052CD';
|
|
20
75
|
const drawerTranslateX = drawerAnimation.interpolate({
|
|
21
76
|
inputRange: [0, 1],
|
|
22
77
|
outputRange: [width, 0]
|
|
23
78
|
});
|
|
24
|
-
const menuOptions = useMemo(() =>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
79
|
+
const menuOptions = useMemo(() => {
|
|
80
|
+
const options = [{
|
|
81
|
+
label: 'New Chat',
|
|
82
|
+
icon: /*#__PURE__*/_jsx(AddNewIcon, {
|
|
83
|
+
color: "#8C8C8C"
|
|
84
|
+
}),
|
|
85
|
+
onClick: () => {
|
|
86
|
+
dispatch(setActiveModal(MODAL_TYPES.NEW_CHAT));
|
|
87
|
+
console.log('New chat clicked');
|
|
88
|
+
},
|
|
89
|
+
styles: {
|
|
90
|
+
color: '#141414'
|
|
91
|
+
}
|
|
92
|
+
}, {
|
|
93
|
+
label: 'Profile',
|
|
94
|
+
icon: /*#__PURE__*/_jsx(ProfileIcon, {
|
|
95
|
+
color: "#8C8C8C"
|
|
96
|
+
}),
|
|
97
|
+
onClick: () => {
|
|
98
|
+
dispatch(setActiveModal(MODAL_TYPES.PROFILE));
|
|
99
|
+
console.log('Profile clicked');
|
|
100
|
+
}
|
|
101
|
+
}, {
|
|
102
|
+
label: 'Settings',
|
|
103
|
+
icon: /*#__PURE__*/_jsx(SettingIcon, {
|
|
104
|
+
color: "#8C8C8C"
|
|
105
|
+
}),
|
|
106
|
+
onClick: () => {
|
|
107
|
+
dispatch(setActiveModal(MODAL_TYPES.SETTINGS));
|
|
108
|
+
console.log('Settings clicked');
|
|
109
|
+
}
|
|
110
|
+
}];
|
|
111
|
+
if (logoutConfig) {
|
|
112
|
+
options.push({
|
|
113
|
+
label: logoutConfig.label ?? DEFAULT_LOGOUT_LABEL,
|
|
114
|
+
icon: /*#__PURE__*/_jsx(LogoutIcon, {
|
|
115
|
+
color: primaryColor
|
|
116
|
+
}),
|
|
117
|
+
styles: {
|
|
118
|
+
color: primaryColor
|
|
119
|
+
},
|
|
120
|
+
closesDrawer: true,
|
|
121
|
+
onClick: () => {
|
|
122
|
+
closeDrawer();
|
|
123
|
+
runLogoutFlow(logoutConfig, performLogout).catch(() => {});
|
|
124
|
+
}
|
|
125
|
+
});
|
|
35
126
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
icon: /*#__PURE__*/_jsx(ProfileIcon, {
|
|
39
|
-
color: "#8C8C8C"
|
|
40
|
-
}),
|
|
41
|
-
onClick: () => {
|
|
42
|
-
dispatch(setActiveModal(MODAL_TYPES.PROFILE));
|
|
43
|
-
console.log('Profile clicked');
|
|
44
|
-
}
|
|
45
|
-
}, {
|
|
46
|
-
label: 'Settings',
|
|
47
|
-
icon: /*#__PURE__*/_jsx(SettingIcon, {
|
|
48
|
-
color: "#8C8C8C"
|
|
49
|
-
}),
|
|
50
|
-
onClick: () => {
|
|
51
|
-
dispatch(setActiveModal(MODAL_TYPES.SETTINGS));
|
|
52
|
-
console.log('Settings clicked');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
// {
|
|
56
|
-
// label: "Logout",
|
|
57
|
-
// onClick: handleLogout,
|
|
58
|
-
// },
|
|
59
|
-
], []);
|
|
127
|
+
return options;
|
|
128
|
+
}, [dispatch, logoutConfig, performLogout, primaryColor, closeDrawer]);
|
|
60
129
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
61
130
|
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
62
131
|
style: [styles.drawer, {
|
|
@@ -68,9 +137,12 @@ export const HeaderRoomListMenu = ({
|
|
|
68
137
|
style: styles.menuItemWrapper,
|
|
69
138
|
children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
70
139
|
style: styles.menuItem,
|
|
140
|
+
testID: `header-menu-${option.label}`,
|
|
71
141
|
onPress: () => {
|
|
72
142
|
option.onClick();
|
|
73
|
-
|
|
143
|
+
if (!option.closesDrawer) {
|
|
144
|
+
closeDrawer();
|
|
145
|
+
}
|
|
74
146
|
},
|
|
75
147
|
children: [/*#__PURE__*/_jsx(View, {
|
|
76
148
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","Animated","Text","TouchableOpacity","TouchableWithoutFeedback","StyleSheet","Dimensions","View","AddNewIcon","ProfileIcon","SettingIcon","useDispatch","setActiveModal","MODAL_TYPES","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","width","get","HeaderRoomListMenu","isDrawerOpen","drawerAnimation","overlayAnimation","closeDrawer","dispatch","drawerTranslateX","interpolate","inputRange","outputRange","menuOptions","
|
|
1
|
+
{"version":3,"names":["React","useMemo","Alert","Animated","Text","TouchableOpacity","TouchableWithoutFeedback","StyleSheet","Dimensions","View","AddNewIcon","LogoutIcon","ProfileIcon","SettingIcon","useDispatch","setActiveModal","MODAL_TYPES","useChatSettingState","useLogout","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_LOGOUT_LABEL","confirmLogout","confirm","label","Promise","resolve","copy","alert","title","message","text","cancelText","style","onPress","confirmText","cancelable","onDismiss","runLogoutFlow","logoutConfig","performLogout","confirmed","onBeforeLogout","proceed","e","console","warn","onAfterLogout","width","get","HeaderRoomListMenu","isDrawerOpen","drawerAnimation","overlayAnimation","closeDrawer","dispatch","config","logout","enabled","undefined","primaryColor","colors","primary","drawerTranslateX","interpolate","inputRange","outputRange","menuOptions","options","icon","color","onClick","NEW_CHAT","log","styles","PROFILE","SETTINGS","push","closesDrawer","catch","children","drawer","transform","translateX","map","option","index","menuItemWrapper","menuItem","testID","alignItems","length","divider","overlay","opacity","create","display","flexDirection","padding","fontSize","marginLeft","height","backgroundColor","position","top","bottom","right","shadowColor","shadowOpacity","shadowOffset","shadowRadius","elevation","zIndex","drawerTitle","fontWeight","marginBottom","drawerItem","left","flex"],"sourceRoot":"../../../../src","sources":["components/Menu/HeaderRoomListMenu.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,12 +24,13 @@ const AttachSheet = ({
|
|
|
24
24
|
config
|
|
25
25
|
} = useChatSettingState();
|
|
26
26
|
const ts = config?.typography?.attachSheet;
|
|
27
|
-
// Pending handler captured on row tap — runs once the EXIT animation
|
|
28
|
-
// finishes so iOS doesn't try to present an image picker over a
|
|
29
|
-
// still-dismissing modal (was the original reason for the
|
|
30
|
-
// platform-split + Modal.onDismiss dance). The animation completion
|
|
31
|
-
// callback now drives this on both platforms.
|
|
32
27
|
const pendingRef = useRef(null);
|
|
28
|
+
const runPending = () => {
|
|
29
|
+
console.log('[timing] runPending', Date.now());
|
|
30
|
+
const fn = pendingRef.current;
|
|
31
|
+
pendingRef.current = null;
|
|
32
|
+
fn?.();
|
|
33
|
+
};
|
|
33
34
|
|
|
34
35
|
// Local "modal stays mounted while animating out" state. The parent
|
|
35
36
|
// controls `visible`; we mirror it but delay unmount until the exit
|
|
@@ -76,8 +77,6 @@ const AttachSheet = ({
|
|
|
76
77
|
if (!mounted) {
|
|
77
78
|
return;
|
|
78
79
|
}
|
|
79
|
-
// Exit: fade the backdrop, slide the sheet down, then unmount and
|
|
80
|
-
// fire any pending picker handler.
|
|
81
80
|
Animated.parallel([Animated.timing(backdropOpacity, {
|
|
82
81
|
toValue: 0,
|
|
83
82
|
duration: 180,
|
|
@@ -95,19 +94,19 @@ const AttachSheet = ({
|
|
|
95
94
|
return;
|
|
96
95
|
} // interrupted (rapid re-open) → leave state alone
|
|
97
96
|
setMounted(false);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
if (Platform.OS !== 'ios') {
|
|
98
|
+
runPending();
|
|
99
|
+
}
|
|
101
100
|
});
|
|
102
101
|
return undefined;
|
|
103
102
|
}, [visible]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
104
103
|
|
|
105
104
|
const trigger = handler => () => {
|
|
106
|
-
|
|
107
|
-
// completion above fires `handler` AFTER the sheet has slid away,
|
|
108
|
-
// so iOS no longer tries to present a picker over a dismissing
|
|
109
|
-
// modal — and Android no longer needs the ad-hoc 150ms setTimeout.
|
|
105
|
+
console.log('[timing] row tap', Date.now());
|
|
110
106
|
pendingRef.current = handler;
|
|
107
|
+
if (Platform.OS === 'ios') {
|
|
108
|
+
setMounted(false);
|
|
109
|
+
}
|
|
111
110
|
onClose();
|
|
112
111
|
};
|
|
113
112
|
const rows = [{
|
|
@@ -138,11 +137,13 @@ const AttachSheet = ({
|
|
|
138
137
|
// Hardware-back / iOS gesture also routes through onClose, which
|
|
139
138
|
// flips `visible` and triggers our exit animation above.
|
|
140
139
|
,
|
|
140
|
+
onDismiss: Platform.OS === 'ios' ? runPending : undefined,
|
|
141
141
|
children: /*#__PURE__*/_jsxs(Animated.View, {
|
|
142
142
|
style: [styles.backdrop, {
|
|
143
143
|
opacity: backdropOpacity
|
|
144
144
|
}],
|
|
145
145
|
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
146
|
+
testID: "attach-backdrop",
|
|
146
147
|
style: StyleSheet.absoluteFill,
|
|
147
148
|
activeOpacity: 1,
|
|
148
149
|
onPress: onClose
|
|
@@ -165,6 +166,7 @@ const AttachSheet = ({
|
|
|
165
166
|
Icon,
|
|
166
167
|
handler
|
|
167
168
|
}, idx) => /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
169
|
+
testID: `attach-row-${label}`,
|
|
168
170
|
activeOpacity: 0.6,
|
|
169
171
|
style: [styles.row, idx < rows.length - 1 && styles.rowDivider],
|
|
170
172
|
onPress: trigger(handler),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","Animated","Easing","Modal","Platform","StyleSheet","Text","TouchableOpacity","View","CameraIcon","DocumentIcon","MediaIcon","useChatSettingState","chatTextStyle","jsx","_jsx","jsxs","_jsxs","SHEET_OFFSCREEN","AttachSheet","visible","onClose","onCamera","onGallery","onDocument","primaryColor","config","ts","typography","attachSheet","pendingRef","mounted","setMounted","backdropOpacity","Value","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useState","Animated","Easing","Modal","Platform","StyleSheet","Text","TouchableOpacity","View","CameraIcon","DocumentIcon","MediaIcon","useChatSettingState","chatTextStyle","jsx","_jsx","jsxs","_jsxs","SHEET_OFFSCREEN","AttachSheet","visible","onClose","onCamera","onGallery","onDocument","primaryColor","config","ts","typography","attachSheet","pendingRef","runPending","console","log","Date","now","fn","current","mounted","setMounted","backdropOpacity","Value","sheetTranslateY","setValue","raf","requestAnimationFrame","parallel","timing","toValue","duration","easing","out","cubic","useNativeDriver","spring","tension","friction","start","cancelAnimationFrame","in","finished","OS","undefined","trigger","handler","rows","label","hint","Icon","transparent","animationType","onRequestClose","onDismiss","children","style","styles","backdrop","opacity","testID","absoluteFill","activeOpacity","onPress","sheet","transform","translateY","grabber","title","map","idx","row","length","rowDivider","iconBubble","backgroundColor","color","width","height","rowText","rowLabel","rowHint","cancelRow","cancelLabel","cancelButton","create","flex","justifyContent","borderTopLeftRadius","borderTopRightRadius","paddingTop","paddingBottom","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","alignSelf","borderRadius","marginBottom","fontSize","fontWeight","letterSpacing","textTransform","paddingHorizontal","flexDirection","alignItems","paddingVertical","borderBottomWidth","hairlineWidth","borderBottomColor","marginRight","marginTop","marginHorizontal"],"sourceRoot":"../../../../../src","sources":["components/Modals/AttachSheet/AttachSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -248,144 +248,149 @@ const ChatProfileModal = ({
|
|
|
248
248
|
})
|
|
249
249
|
})]
|
|
250
250
|
})
|
|
251
|
-
}), /*#__PURE__*/
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
,
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
fontSize: config?.typography?.profile?.title?.fontSize,
|
|
275
|
-
fontWeight: config?.typography?.profile?.title?.fontWeight,
|
|
276
|
-
children: activeRoom.title || activeRoom.name
|
|
277
|
-
}), /*#__PURE__*/_jsxs(UserStatus, {
|
|
278
|
-
style: getElementFont(config, 'profileStatus'),
|
|
279
|
-
children: [activeRoom.usersCnt, ' ', activeRoom.usersCnt > 1 ? 'members' : 'member']
|
|
280
|
-
})]
|
|
281
|
-
}), activeRoom.role === 'moderator' && activeRoom.type === 'group' && /*#__PURE__*/_jsx(_Fragment, {
|
|
282
|
-
children: /*#__PURE__*/_jsx(SelectUsersModal, {})
|
|
283
|
-
}), !config?.disableChatInfo?.disableDescription && /*#__PURE__*/_jsxs(BorderedContainer, {
|
|
284
|
-
children: [/*#__PURE__*/_jsx(LabelData, {
|
|
285
|
-
style: getElementFont(config, 'profileSectionLabel'),
|
|
286
|
-
children: "Description"
|
|
287
|
-
}), /*#__PURE__*/_jsx(Label, {
|
|
288
|
-
children: activeRoom?.description || '—'
|
|
289
|
-
})]
|
|
290
|
-
}), !config?.disableChatInfo?.disableType && /*#__PURE__*/_jsxs(BorderedContainer, {
|
|
291
|
-
children: [/*#__PURE__*/_jsx(LabelData, {
|
|
292
|
-
style: getElementFont(config, 'profileSectionLabel'),
|
|
293
|
-
children: "Chat type"
|
|
294
|
-
}), /*#__PURE__*/_jsx(Label, {
|
|
295
|
-
children: activeRoom.type || '—'
|
|
296
|
-
})]
|
|
297
|
-
}), !config?.disableChatInfo?.hideMembers && /*#__PURE__*/_jsx(BorderedContainer, {
|
|
298
|
-
style: {
|
|
299
|
-
paddingHorizontal: 16,
|
|
300
|
-
paddingVertical: 8
|
|
301
|
-
},
|
|
302
|
-
children: loading ? /*#__PURE__*/_jsx(Loader, {}) : (activeRoom?.roomMembers?.length ?? 0) === 0 ? /*#__PURE__*/_jsx(Label, {
|
|
303
|
-
style: {
|
|
304
|
-
opacity: 0.6,
|
|
305
|
-
textAlign: 'center',
|
|
306
|
-
paddingVertical: 8
|
|
251
|
+
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
252
|
+
style: {
|
|
253
|
+
width: '100%',
|
|
254
|
+
flex: 1
|
|
255
|
+
},
|
|
256
|
+
contentContainerStyle: {
|
|
257
|
+
flexGrow: 1
|
|
258
|
+
},
|
|
259
|
+
showsVerticalScrollIndicator: true,
|
|
260
|
+
children: /*#__PURE__*/_jsxs(CenterContainer, {
|
|
261
|
+
children: [/*#__PURE__*/_jsx(ProfileImagePlaceholder, {
|
|
262
|
+
name: activeRoom.title || activeRoom.name,
|
|
263
|
+
icon: appendFileToken(activeRoom.icon, fileToken)
|
|
264
|
+
// Two gates control whether the icon is editable:
|
|
265
|
+
// 1. role — only non-participants could edit before.
|
|
266
|
+
// 2. NEW: `disableChatInfo.disableIconEdit` — hard kill from
|
|
267
|
+
// config so a consumer can make the icon read-only for
|
|
268
|
+
// everyone (e.g. branded rooms, patient-facing apps).
|
|
269
|
+
// Both must allow it for the picker/remove affordances to show.
|
|
270
|
+
,
|
|
271
|
+
upload: {
|
|
272
|
+
onUpload,
|
|
273
|
+
active: !config?.disableChatInfo?.disableIconEdit && activeRoom?.role !== 'participant'
|
|
307
274
|
},
|
|
308
|
-
|
|
309
|
-
|
|
275
|
+
remove: {
|
|
276
|
+
enabled: !config?.disableChatInfo?.disableIconEdit,
|
|
277
|
+
onRemoveClick
|
|
278
|
+
},
|
|
279
|
+
role: activeRoom?.role,
|
|
280
|
+
size: 128
|
|
281
|
+
}), /*#__PURE__*/_jsxs(UserInfo, {
|
|
282
|
+
children: [/*#__PURE__*/_jsx(UserName, {
|
|
283
|
+
fontSize: config?.typography?.profile?.title?.fontSize,
|
|
284
|
+
fontWeight: config?.typography?.profile?.title?.fontWeight,
|
|
285
|
+
children: activeRoom.title || activeRoom.name
|
|
286
|
+
}), /*#__PURE__*/_jsxs(UserStatus, {
|
|
287
|
+
style: getElementFont(config, 'profileStatus'),
|
|
288
|
+
children: [activeRoom.usersCnt, ' ', activeRoom.usersCnt > 1 ? 'members' : 'member']
|
|
289
|
+
})]
|
|
290
|
+
}), activeRoom.role === 'moderator' && activeRoom.type === 'group' && /*#__PURE__*/_jsx(_Fragment, {
|
|
291
|
+
children: /*#__PURE__*/_jsx(SelectUsersModal, {})
|
|
292
|
+
}), !config?.disableChatInfo?.disableDescription && /*#__PURE__*/_jsxs(BorderedContainer, {
|
|
293
|
+
children: [/*#__PURE__*/_jsx(LabelData, {
|
|
294
|
+
style: getElementFont(config, 'profileSectionLabel'),
|
|
295
|
+
children: "Description"
|
|
296
|
+
}), /*#__PURE__*/_jsx(Label, {
|
|
297
|
+
children: activeRoom?.description || '—'
|
|
298
|
+
})]
|
|
299
|
+
}), !config?.disableChatInfo?.disableType && /*#__PURE__*/_jsxs(BorderedContainer, {
|
|
300
|
+
children: [/*#__PURE__*/_jsx(LabelData, {
|
|
301
|
+
style: getElementFont(config, 'profileSectionLabel'),
|
|
302
|
+
children: "Chat type"
|
|
303
|
+
}), /*#__PURE__*/_jsx(Label, {
|
|
304
|
+
children: activeRoom.type || '—'
|
|
305
|
+
})]
|
|
306
|
+
}), !config?.disableChatInfo?.hideMembers && /*#__PURE__*/_jsx(BorderedContainer, {
|
|
310
307
|
style: {
|
|
311
|
-
|
|
308
|
+
paddingHorizontal: 16,
|
|
309
|
+
paddingVertical: 8
|
|
312
310
|
},
|
|
313
|
-
|
|
314
|
-
nestedScrollEnabled: true,
|
|
315
|
-
children: activeRoom?.roomMembers?.map((user, index) => /*#__PURE__*/_jsxs(View, {
|
|
311
|
+
children: loading ? /*#__PURE__*/_jsx(Loader, {}) : (activeRoom?.roomMembers?.length ?? 0) === 0 ? /*#__PURE__*/_jsx(Label, {
|
|
316
312
|
style: {
|
|
317
|
-
|
|
318
|
-
|
|
313
|
+
opacity: 0.6,
|
|
314
|
+
textAlign: 'center',
|
|
315
|
+
paddingVertical: 8
|
|
319
316
|
},
|
|
320
|
-
children:
|
|
317
|
+
children: "Member list unavailable"
|
|
318
|
+
}) : /*#__PURE__*/_jsx(View, {
|
|
319
|
+
children: activeRoom?.roomMembers?.map((user, index) => /*#__PURE__*/_jsxs(View, {
|
|
321
320
|
style: {
|
|
322
|
-
flexDirection: '
|
|
323
|
-
|
|
324
|
-
paddingHorizontal: 8,
|
|
325
|
-
paddingVertical: 0,
|
|
326
|
-
alignItems: 'center',
|
|
327
|
-
width: '100%'
|
|
321
|
+
flexDirection: 'column',
|
|
322
|
+
alignItems: 'flex-start'
|
|
328
323
|
},
|
|
329
|
-
children: [/*#__PURE__*/_jsxs(
|
|
324
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
330
325
|
style: {
|
|
331
326
|
flexDirection: 'row',
|
|
332
|
-
alignItems: 'center',
|
|
333
327
|
justifyContent: 'flex-start',
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
// the popup itself to open on tap — this gate
|
|
341
|
-
// closes the door. Customer-reported #16.
|
|
342
|
-
,
|
|
343
|
-
onPress: config?.disableChatInfo?.disableMemberTap ? undefined : () => handleUserAvatarClick(user),
|
|
344
|
-
disabled: !!config?.disableChatInfo?.disableMemberTap,
|
|
345
|
-
children: [/*#__PURE__*/_jsx(ProfileImagePlaceholder, {
|
|
346
|
-
name: `${user.firstName} ${user.lastName}`,
|
|
347
|
-
size: 40
|
|
348
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
328
|
+
paddingHorizontal: 8,
|
|
329
|
+
paddingVertical: 0,
|
|
330
|
+
alignItems: 'center',
|
|
331
|
+
width: '100%'
|
|
332
|
+
},
|
|
333
|
+
children: [/*#__PURE__*/_jsxs(Pressable, {
|
|
349
334
|
style: {
|
|
350
|
-
flexDirection: '
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
335
|
+
flexDirection: 'row',
|
|
336
|
+
alignItems: 'center',
|
|
337
|
+
justifyContent: 'flex-start',
|
|
338
|
+
gap: 16
|
|
339
|
+
}
|
|
340
|
+
// `disableChatInfo.disableMemberTap` blocks the
|
|
341
|
+
// tap entirely so the user-profile popup never
|
|
342
|
+
// opens. `disableMemberProfileActions` only hid
|
|
343
|
+
// the action buttons INSIDE that popup, leaving
|
|
344
|
+
// the popup itself to open on tap — this gate
|
|
345
|
+
// closes the door. Customer-reported #16.
|
|
346
|
+
,
|
|
347
|
+
onPress: config?.disableChatInfo?.disableMemberTap ? undefined : () => handleUserAvatarClick(user),
|
|
348
|
+
disabled: !!config?.disableChatInfo?.disableMemberTap,
|
|
349
|
+
children: [/*#__PURE__*/_jsx(ProfileImagePlaceholder, {
|
|
350
|
+
name: `${user.firstName} ${user.lastName}`,
|
|
351
|
+
size: 40
|
|
352
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
353
|
+
style: {
|
|
354
|
+
flexDirection: 'column',
|
|
355
|
+
gap: 2,
|
|
356
|
+
alignItems: 'flex-start',
|
|
357
|
+
justifyContent: 'center'
|
|
358
|
+
},
|
|
359
|
+
children: [/*#__PURE__*/_jsxs(Label, {
|
|
360
|
+
style: [{
|
|
361
|
+
fontSize: 16,
|
|
362
|
+
fontWeight: 600
|
|
363
|
+
}, chatTextStyle(config?.typography?.profile?.memberName)],
|
|
364
|
+
children: [user.firstName, " ", user.lastName]
|
|
365
|
+
}), user.last_active && /*#__PURE__*/_jsx(LabelData, {
|
|
366
|
+
style: getElementFont(config, 'profileSectionLabel'),
|
|
367
|
+
children: new Date(user.last_active * 1000).toLocaleString()
|
|
368
|
+
})]
|
|
364
369
|
})]
|
|
370
|
+
}), user.role && user.role !== 'none' && /*#__PURE__*/_jsx(Text, {
|
|
371
|
+
style: {
|
|
372
|
+
backgroundColor: user.ban_status !== 'banned' ? '#F3F6FC' : '#FFEBEE',
|
|
373
|
+
color: user.ban_status !== 'banned' ? '#0052CD' : '#F44336',
|
|
374
|
+
padding: 5,
|
|
375
|
+
borderRadius: 16,
|
|
376
|
+
fontSize: 12
|
|
377
|
+
},
|
|
378
|
+
children: user.role
|
|
379
|
+
}), stateUser.xmppUsername !== user.xmppUsername && activeRoom.role === 'moderator' && activeRoom.type !== 'private' && /*#__PURE__*/_jsx(DropdownMenu, {
|
|
380
|
+
options: menuOptions(user.xmppUsername),
|
|
381
|
+
openButton: /*#__PURE__*/_jsx(Button, {
|
|
382
|
+
onPress: () => {},
|
|
383
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
384
|
+
children: "More Options"
|
|
385
|
+
})
|
|
386
|
+
}),
|
|
387
|
+
onClose: () => console.log('Dropdown closed')
|
|
365
388
|
})]
|
|
366
|
-
}),
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
borderRadius: 16,
|
|
372
|
-
fontSize: 12
|
|
373
|
-
},
|
|
374
|
-
children: user.role
|
|
375
|
-
}), stateUser.xmppUsername !== user.xmppUsername && activeRoom.role === 'moderator' && activeRoom.type !== 'private' && /*#__PURE__*/_jsx(DropdownMenu, {
|
|
376
|
-
options: menuOptions(user.xmppUsername),
|
|
377
|
-
openButton: /*#__PURE__*/_jsx(Button, {
|
|
378
|
-
onPress: () => {},
|
|
379
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
380
|
-
children: "More Options"
|
|
381
|
-
})
|
|
382
|
-
}),
|
|
383
|
-
onClose: () => console.log('Dropdown closed')
|
|
384
|
-
})]
|
|
385
|
-
}), index < (activeRoom?.roomMembers?.length || 0) - 1 && /*#__PURE__*/_jsx(Divider, {})]
|
|
386
|
-
}, user.xmppUsername))
|
|
387
|
-
})
|
|
388
|
-
})]
|
|
389
|
+
}), index < (activeRoom?.roomMembers?.length || 0) - 1 && /*#__PURE__*/_jsx(Divider, {})]
|
|
390
|
+
}, user.xmppUsername))
|
|
391
|
+
})
|
|
392
|
+
})]
|
|
393
|
+
})
|
|
389
394
|
}), /*#__PURE__*/_jsx(DeleteChatModal, {
|
|
390
395
|
isModalOpen: isModalOpen,
|
|
391
396
|
setIsModalOpen: setIsModalOpen
|