agora-appbuilder-core 2.3.0-beta.25 → 2.3.0-beta.27
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/package.json +1 -1
- package/template/customization-api/app-state.ts +2 -0
- package/template/customization-api/sub-components.ts +1 -0
- package/template/customization-api/utils.ts +1 -17
- package/template/src/app-state/useMessages.ts +52 -0
- package/template/src/components/chat-notification/useChatNotification.tsx +1 -1
- package/template/src/pages/Create.tsx +1 -1
- package/template/src/subComponents/ChatContainer.tsx +2 -6
- package/template/src/utils/useDeleteMessage.ts +0 -37
- package/template/src/utils/useEditMessage.ts +0 -42
- package/template/src/utils/useGroupMessages.ts +0 -25
- package/template/src/utils/usePrivateMessages.ts +0 -33
- package/template/src/utils/useSendMessage.ts +0 -40
- package/template/src/utils/useSetUnreadMessageCount.ts +0 -44
- package/template/src/utils/useUnreadMessageCount.ts +0 -53
package/package.json
CHANGED
|
@@ -38,3 +38,5 @@ export {useMeetingInfo} from '../src/components/meeting-info/useMeetingInfo';
|
|
|
38
38
|
export type {MeetingInfoContextInterface} from '../src/components/meeting-info/useMeetingInfo';
|
|
39
39
|
export {useChatUIControl} from '../src/components/chat-ui/useChatUIControl';
|
|
40
40
|
export type {ChatUIControlInterface} from '../src/components/chat-ui/useChatUIControl';
|
|
41
|
+
export {useMessages} from '../src/app-state/useMessages';
|
|
42
|
+
export type {messageInterface} from '../src/app-state/useMessages';
|
|
@@ -20,23 +20,6 @@ export {default as useIsPSTN} from '../src/utils/useIsPSTN';
|
|
|
20
20
|
//hook used to get/set username
|
|
21
21
|
export {default as useUserName} from '../src/utils/useUserName';
|
|
22
22
|
|
|
23
|
-
//hooks used to manage messages
|
|
24
|
-
export {default as useGroupMessages} from '../src/utils/useGroupMessages';
|
|
25
|
-
export {default as usePrivateMessages} from '../src/utils/usePrivateMessages';
|
|
26
|
-
export {
|
|
27
|
-
default as useUnreadMessageCount,
|
|
28
|
-
UNREAD_MESSAGE_COUNT_TYPE,
|
|
29
|
-
} from '../src/utils/useUnreadMessageCount';
|
|
30
|
-
export {
|
|
31
|
-
default as useSetUnreadMessageCount,
|
|
32
|
-
SET_UNREAD_MESSAGE_COUNT_TYPE,
|
|
33
|
-
} from '../src/utils/useSetUnreadMessageCount';
|
|
34
|
-
export {
|
|
35
|
-
default as useSendMessage,
|
|
36
|
-
MESSAGE_TYPE,
|
|
37
|
-
} from '../src/utils/useSendMessage';
|
|
38
|
-
export {default as useEditMessage} from '../src/utils/useEditMessage';
|
|
39
|
-
export {default as useDeleteMessage} from '../src/utils/useDeleteMessage';
|
|
40
23
|
export {controlMessageEnum} from '../src/components/ChatContext';
|
|
41
24
|
|
|
42
25
|
//hook to manage audio/video states
|
|
@@ -54,6 +37,7 @@ export {
|
|
|
54
37
|
export {ToggleState} from '../agora-rn-uikit/src/Contexts/PropsContext';
|
|
55
38
|
|
|
56
39
|
//
|
|
40
|
+
export type {SidePanelType} from '../src/subComponents/SidePanelEnum';
|
|
57
41
|
export {useSidePanel} from '../src/utils/useSidePanel';
|
|
58
42
|
|
|
59
43
|
//hooks used for navigation
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {
|
|
2
|
+
individualUnreadMessageCount,
|
|
3
|
+
useChatNotification,
|
|
4
|
+
} from '../components/chat-notification/useChatNotification';
|
|
5
|
+
import {
|
|
6
|
+
messageStoreInterface,
|
|
7
|
+
useChatMessages,
|
|
8
|
+
} from '../components/chat-messages/useChatMessages';
|
|
9
|
+
|
|
10
|
+
export interface messageInterface {
|
|
11
|
+
groupMessages: messageStoreInterface[];
|
|
12
|
+
privateMessages: {
|
|
13
|
+
[key: string]: messageStoreInterface[];
|
|
14
|
+
};
|
|
15
|
+
sendMessage: (msg: string, toUid?: number) => void;
|
|
16
|
+
editMessage: (msgId: string, msg: string, toUid?: number) => void;
|
|
17
|
+
deleteMessage: (msgId: string, toUid?: number) => void;
|
|
18
|
+
groupUnreadCount: number;
|
|
19
|
+
individualUnreadCount: individualUnreadMessageCount;
|
|
20
|
+
setGroupUnreadCount: React.Dispatch<React.SetStateAction<number>>;
|
|
21
|
+
setIndividualUnreadCount: React.Dispatch<
|
|
22
|
+
React.SetStateAction<individualUnreadMessageCount>
|
|
23
|
+
>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export const useMessages: () => messageInterface = () => {
|
|
27
|
+
const {
|
|
28
|
+
deleteChatMessage: deleteMessage,
|
|
29
|
+
editChatMessage: editMessage,
|
|
30
|
+
messageStore: groupMessages,
|
|
31
|
+
privateMessageStore: privateMessages,
|
|
32
|
+
sendChatMessage: sendMessage,
|
|
33
|
+
} = useChatMessages();
|
|
34
|
+
const {
|
|
35
|
+
setUnreadIndividualMessageCount: setIndividualUnreadCount,
|
|
36
|
+
setUnreadGroupMessageCount: setGroupUnreadCount,
|
|
37
|
+
unreadGroupMessageCount: groupUnreadCount,
|
|
38
|
+
unreadIndividualMessageCount: individualUnreadCount,
|
|
39
|
+
} = useChatNotification();
|
|
40
|
+
|
|
41
|
+
return {
|
|
42
|
+
groupMessages,
|
|
43
|
+
privateMessages,
|
|
44
|
+
sendMessage,
|
|
45
|
+
editMessage,
|
|
46
|
+
deleteMessage,
|
|
47
|
+
groupUnreadCount,
|
|
48
|
+
individualUnreadCount,
|
|
49
|
+
setGroupUnreadCount,
|
|
50
|
+
setIndividualUnreadCount,
|
|
51
|
+
};
|
|
52
|
+
};
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import {createHook} from 'customization-implementation';
|
|
13
13
|
import React, {SetStateAction, useState, useEffect} from 'react';
|
|
14
14
|
|
|
15
|
-
interface individualUnreadMessageCount {
|
|
15
|
+
export interface individualUnreadMessageCount {
|
|
16
16
|
[key: number]: number;
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -29,9 +29,8 @@ import {useCustomization} from 'customization-implementation';
|
|
|
29
29
|
import {isValidReactComponent, useIsWeb} from '../utils/common';
|
|
30
30
|
import {useString} from '../utils/useString';
|
|
31
31
|
import {useChatUIControl} from '../components/chat-ui/useChatUIControl';
|
|
32
|
-
import useGroupMessages from '../utils/useGroupMessages';
|
|
33
|
-
import usePrivateMessages from '../utils/usePrivateMessages';
|
|
34
32
|
import {useRender} from 'customization-api';
|
|
33
|
+
import {useChatMessages} from '../components/chat-messages/useChatMessages';
|
|
35
34
|
|
|
36
35
|
/**
|
|
37
36
|
* Chat container is the component which renders all the chat messages
|
|
@@ -42,10 +41,7 @@ const ChatContainer = (props?: {
|
|
|
42
41
|
chatBubble?: React.ComponentType<ChatBubbleProps>;
|
|
43
42
|
}) => {
|
|
44
43
|
const {renderList} = useRender();
|
|
45
|
-
const
|
|
46
|
-
const messageStore = groupMessages();
|
|
47
|
-
const getPrivateMessage = usePrivateMessages();
|
|
48
|
-
const privateMessageStore = getPrivateMessage();
|
|
44
|
+
const {messageStore, privateMessageStore} = useChatMessages();
|
|
49
45
|
const {height, width} = useWindowDimensions();
|
|
50
46
|
const {
|
|
51
47
|
privateActive,
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
********************************************
|
|
3
|
-
Copyright © 2021 Agora Lab, Inc., all rights reserved.
|
|
4
|
-
AppBuilder and all associated components, source code, APIs, services, and documentation
|
|
5
|
-
(the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
|
|
6
|
-
accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
|
|
7
|
-
Use without a license or in violation of any license terms and conditions (including use for
|
|
8
|
-
any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
|
|
9
|
-
information visit https://appbuilder.agora.io.
|
|
10
|
-
*********************************************
|
|
11
|
-
*/
|
|
12
|
-
import {UidType} from '../../agora-rn-uikit';
|
|
13
|
-
import {useChatMessages} from '../components/chat-messages/useChatMessages';
|
|
14
|
-
import {MESSAGE_TYPE} from './useSendMessage';
|
|
15
|
-
|
|
16
|
-
function useDeleteMessage() {
|
|
17
|
-
const {deleteChatMessage} = useChatMessages();
|
|
18
|
-
const deleteMessage = (type: MESSAGE_TYPE, msgId: string, uid?: UidType) => {
|
|
19
|
-
switch (type) {
|
|
20
|
-
case MESSAGE_TYPE.group:
|
|
21
|
-
deleteChatMessage(msgId);
|
|
22
|
-
break;
|
|
23
|
-
case MESSAGE_TYPE.private:
|
|
24
|
-
if (uid) {
|
|
25
|
-
deleteChatMessage(msgId, uid);
|
|
26
|
-
} else {
|
|
27
|
-
console.error('To delete the private message, UID should be passed');
|
|
28
|
-
}
|
|
29
|
-
break;
|
|
30
|
-
default:
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
return deleteMessage;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export default useDeleteMessage;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
********************************************
|
|
3
|
-
Copyright © 2021 Agora Lab, Inc., all rights reserved.
|
|
4
|
-
AppBuilder and all associated components, source code, APIs, services, and documentation
|
|
5
|
-
(the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
|
|
6
|
-
accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
|
|
7
|
-
Use without a license or in violation of any license terms and conditions (including use for
|
|
8
|
-
any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
|
|
9
|
-
information visit https://appbuilder.agora.io.
|
|
10
|
-
*********************************************
|
|
11
|
-
*/
|
|
12
|
-
import {UidType} from '../../agora-rn-uikit';
|
|
13
|
-
import {useChatMessages} from '../components/chat-messages/useChatMessages';
|
|
14
|
-
import {MESSAGE_TYPE} from './useSendMessage';
|
|
15
|
-
|
|
16
|
-
function useEditMessage() {
|
|
17
|
-
const {editChatMessage} = useChatMessages();
|
|
18
|
-
const editMessage = (
|
|
19
|
-
type: MESSAGE_TYPE,
|
|
20
|
-
msgId: string,
|
|
21
|
-
message: string,
|
|
22
|
-
uid?: UidType,
|
|
23
|
-
) => {
|
|
24
|
-
switch (type) {
|
|
25
|
-
case MESSAGE_TYPE.group:
|
|
26
|
-
editChatMessage(msgId, message);
|
|
27
|
-
break;
|
|
28
|
-
case MESSAGE_TYPE.private:
|
|
29
|
-
if (uid) {
|
|
30
|
-
editChatMessage(msgId, message, uid);
|
|
31
|
-
} else {
|
|
32
|
-
console.error('To edit the private message, UID should be passed');
|
|
33
|
-
}
|
|
34
|
-
break;
|
|
35
|
-
default:
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
return editMessage;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export default useEditMessage;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
********************************************
|
|
3
|
-
Copyright © 2021 Agora Lab, Inc., all rights reserved.
|
|
4
|
-
AppBuilder and all associated components, source code, APIs, services, and documentation
|
|
5
|
-
(the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
|
|
6
|
-
accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
|
|
7
|
-
Use without a license or in violation of any license terms and conditions (including use for
|
|
8
|
-
any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
|
|
9
|
-
information visit https://appbuilder.agora.io.
|
|
10
|
-
*********************************************
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import {useChatMessages} from '../components/chat-messages/useChatMessages';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* This hook will fetch the group messages
|
|
17
|
-
* @returns groupMessageData
|
|
18
|
-
*/
|
|
19
|
-
function useGroupMessages() {
|
|
20
|
-
const {messageStore} = useChatMessages();
|
|
21
|
-
const groupMessages = () => messageStore;
|
|
22
|
-
return groupMessages;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export default useGroupMessages;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
********************************************
|
|
3
|
-
Copyright © 2021 Agora Lab, Inc., all rights reserved.
|
|
4
|
-
AppBuilder and all associated components, source code, APIs, services, and documentation
|
|
5
|
-
(the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
|
|
6
|
-
accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
|
|
7
|
-
Use without a license or in violation of any license terms and conditions (including use for
|
|
8
|
-
any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
|
|
9
|
-
information visit https://appbuilder.agora.io.
|
|
10
|
-
*********************************************
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import {useChatMessages} from '../components/chat-messages/useChatMessages';
|
|
14
|
-
import {UidType} from '../../agora-rn-uikit';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* This hook will return function to find the private message by uid
|
|
18
|
-
* @returns private message
|
|
19
|
-
*/
|
|
20
|
-
function usePrivateMessages() {
|
|
21
|
-
const {privateMessageStore} = useChatMessages();
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* @param uid - User id
|
|
25
|
-
* @returns If uid is passed then it will return particular private message data
|
|
26
|
-
* otherwise it will return whole private message store
|
|
27
|
-
*/
|
|
28
|
-
const privateMessages = (uid?: UidType) =>
|
|
29
|
-
uid ? privateMessageStore[uid] : privateMessageStore;
|
|
30
|
-
return privateMessages;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export default usePrivateMessages;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
********************************************
|
|
3
|
-
Copyright © 2021 Agora Lab, Inc., all rights reserved.
|
|
4
|
-
AppBuilder and all associated components, source code, APIs, services, and documentation
|
|
5
|
-
(the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
|
|
6
|
-
accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
|
|
7
|
-
Use without a license or in violation of any license terms and conditions (including use for
|
|
8
|
-
any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
|
|
9
|
-
information visit https://appbuilder.agora.io.
|
|
10
|
-
*********************************************
|
|
11
|
-
*/
|
|
12
|
-
import {UidType} from '../../agora-rn-uikit';
|
|
13
|
-
import {useChatMessages} from '../components/chat-messages/useChatMessages';
|
|
14
|
-
|
|
15
|
-
export enum MESSAGE_TYPE {
|
|
16
|
-
group,
|
|
17
|
-
private,
|
|
18
|
-
}
|
|
19
|
-
function useSendMessage() {
|
|
20
|
-
const {sendChatMessage} = useChatMessages();
|
|
21
|
-
const sendMessage = (type: MESSAGE_TYPE, message: string, uid?: UidType) => {
|
|
22
|
-
switch (type) {
|
|
23
|
-
case MESSAGE_TYPE.group:
|
|
24
|
-
sendChatMessage(message);
|
|
25
|
-
break;
|
|
26
|
-
case MESSAGE_TYPE.private:
|
|
27
|
-
if (uid) {
|
|
28
|
-
sendChatMessage(message, uid);
|
|
29
|
-
} else {
|
|
30
|
-
console.error('To send the private message, UID should be passed');
|
|
31
|
-
}
|
|
32
|
-
break;
|
|
33
|
-
default:
|
|
34
|
-
break;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
return sendMessage;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export default useSendMessage;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import {UidType} from '../../agora-rn-uikit';
|
|
2
|
-
import {useChatNotification} from '../components/chat-notification/useChatNotification';
|
|
3
|
-
|
|
4
|
-
export enum SET_UNREAD_MESSAGE_COUNT_TYPE {
|
|
5
|
-
setGroupMessageCount,
|
|
6
|
-
setIndividualMessageCount,
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const useSetUnreadMessageCount = () => {
|
|
10
|
-
const {setUnreadIndividualMessageCount, setUnreadGroupMessageCount} =
|
|
11
|
-
useChatNotification();
|
|
12
|
-
const setUnreadMessageCount = (
|
|
13
|
-
type: SET_UNREAD_MESSAGE_COUNT_TYPE,
|
|
14
|
-
count: number,
|
|
15
|
-
uid?: UidType,
|
|
16
|
-
) => {
|
|
17
|
-
switch (type) {
|
|
18
|
-
case SET_UNREAD_MESSAGE_COUNT_TYPE.setGroupMessageCount:
|
|
19
|
-
setUnreadGroupMessageCount(count);
|
|
20
|
-
break;
|
|
21
|
-
case SET_UNREAD_MESSAGE_COUNT_TYPE.setIndividualMessageCount:
|
|
22
|
-
if (uid) {
|
|
23
|
-
setUnreadIndividualMessageCount((prevState) => {
|
|
24
|
-
if (prevState && prevState.hasOwnProperty(uid)) {
|
|
25
|
-
return {
|
|
26
|
-
...prevState,
|
|
27
|
-
[uid]: count,
|
|
28
|
-
};
|
|
29
|
-
} else {
|
|
30
|
-
console.error(`ERROR: Invalid UID`);
|
|
31
|
-
return prevState;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
} else {
|
|
35
|
-
console.error('UID must be passed for setIndividualMessageCount.');
|
|
36
|
-
}
|
|
37
|
-
break;
|
|
38
|
-
default:
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
return setUnreadMessageCount;
|
|
43
|
-
};
|
|
44
|
-
export default useSetUnreadMessageCount;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
********************************************
|
|
3
|
-
Copyright © 2021 Agora Lab, Inc., all rights reserved.
|
|
4
|
-
AppBuilder and all associated components, source code, APIs, services, and documentation
|
|
5
|
-
(the “Materials”) are owned by Agora Lab, Inc. and its licensors. The Materials may not be
|
|
6
|
-
accessed, used, modified, or distributed for any purpose without a license from Agora Lab, Inc.
|
|
7
|
-
Use without a license or in violation of any license terms and conditions (including use for
|
|
8
|
-
any purpose competitive to Agora Lab, Inc.’s business) is strictly prohibited. For more
|
|
9
|
-
information visit https://appbuilder.agora.io.
|
|
10
|
-
*********************************************
|
|
11
|
-
*/
|
|
12
|
-
import {UidType} from '../../agora-rn-uikit';
|
|
13
|
-
import {useChatNotification} from '../components/chat-notification/useChatNotification';
|
|
14
|
-
|
|
15
|
-
export enum UNREAD_MESSAGE_COUNT_TYPE {
|
|
16
|
-
GroupAndPrivateCount,
|
|
17
|
-
GroupCount,
|
|
18
|
-
PrivateCount,
|
|
19
|
-
IndivdualCount,
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function useUnreadMessageCount() {
|
|
23
|
-
const {
|
|
24
|
-
totalUnreadCount,
|
|
25
|
-
unreadGroupMessageCount,
|
|
26
|
-
unreadPrivateMessageCount,
|
|
27
|
-
unreadIndividualMessageCount,
|
|
28
|
-
} = useChatNotification();
|
|
29
|
-
|
|
30
|
-
const unreadMessageCount = (
|
|
31
|
-
type: UNREAD_MESSAGE_COUNT_TYPE,
|
|
32
|
-
uid?: UidType,
|
|
33
|
-
) => {
|
|
34
|
-
switch (type) {
|
|
35
|
-
case UNREAD_MESSAGE_COUNT_TYPE.GroupAndPrivateCount:
|
|
36
|
-
return totalUnreadCount;
|
|
37
|
-
case UNREAD_MESSAGE_COUNT_TYPE.GroupCount:
|
|
38
|
-
return unreadGroupMessageCount;
|
|
39
|
-
case UNREAD_MESSAGE_COUNT_TYPE.PrivateCount:
|
|
40
|
-
return unreadPrivateMessageCount;
|
|
41
|
-
case UNREAD_MESSAGE_COUNT_TYPE.IndivdualCount:
|
|
42
|
-
return uid && unreadIndividualMessageCount[uid]
|
|
43
|
-
? unreadIndividualMessageCount[uid]
|
|
44
|
-
: 0;
|
|
45
|
-
default:
|
|
46
|
-
return 0;
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
return unreadMessageCount;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export default useUnreadMessageCount;
|