@viewberapp/chat 0.0.13 → 0.0.16
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/dist/CachedChat.d.ts +11 -11
- package/dist/CachedChat.js +44 -17
- package/dist/CachedChat.js.map +1 -1
- package/dist/Chat.d.ts +13 -2
- package/dist/Chat.js +41 -11
- package/dist/Chat.js.map +1 -1
- package/dist/ChatSubscription.d.ts +10 -6
- package/dist/ChatSubscription.js +15 -5
- package/dist/ChatSubscription.js.map +1 -1
- package/dist/react/useChat.js +6 -3
- package/dist/react/useChat.js.map +1 -1
- package/package.json +2 -2
package/dist/CachedChat.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { AxiosInstance } from "axios";
|
|
2
2
|
import { PresenceChannel } from "laravel-echo";
|
|
3
3
|
import ChatSubscription from "./ChatSubscription";
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
4
|
+
export interface CachedChatParams {
|
|
5
|
+
axios: AxiosInstance;
|
|
6
|
+
channel: PresenceChannel;
|
|
7
|
+
leave: () => void;
|
|
8
|
+
}
|
|
9
9
|
export default class CachedChat {
|
|
10
10
|
private axios;
|
|
11
11
|
private messages;
|
|
12
12
|
private subscriptions;
|
|
13
13
|
private channel;
|
|
14
|
-
|
|
14
|
+
private _leave;
|
|
15
|
+
constructor({ axios, channel, leave }: CachedChatParams);
|
|
15
16
|
addSubscription(subscription: ChatSubscription): void;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
protected handleChannelError(error: any): void;
|
|
17
|
+
cancelSubscription(subscription: ChatSubscription): void;
|
|
18
|
+
cancelAllSubscriptions(): void;
|
|
19
|
+
leave(): void;
|
|
20
|
+
cancelAllSubscriptionsAndLeave(): void;
|
|
21
21
|
}
|
package/dist/CachedChat.js
CHANGED
|
@@ -1,35 +1,62 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
class CachedChat {
|
|
4
|
-
constructor(axios, channel) {
|
|
4
|
+
constructor({ axios, channel, leave }) {
|
|
5
5
|
this.axios = axios;
|
|
6
6
|
this.messages = [];
|
|
7
7
|
this.subscriptions = [];
|
|
8
8
|
this.channel = channel;
|
|
9
|
+
this._leave = leave;
|
|
9
10
|
channel
|
|
10
|
-
.here(
|
|
11
|
-
.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
.here((users) => {
|
|
12
|
+
this.subscriptions.forEach((subscription) => {
|
|
13
|
+
if (subscription.getStatus() === 'active') {
|
|
14
|
+
subscription.event('onHere', users);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
})
|
|
18
|
+
.joining((user) => {
|
|
19
|
+
this.subscriptions.forEach((subscription) => {
|
|
20
|
+
if (subscription.getStatus() === 'active') {
|
|
21
|
+
subscription.event('onUserJoining', user);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
})
|
|
25
|
+
.leaving((user) => {
|
|
26
|
+
this.subscriptions.forEach((subscription) => {
|
|
27
|
+
if (subscription.getStatus() === 'active') {
|
|
28
|
+
subscription.event('onUserLeaving', user);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
})
|
|
32
|
+
.listen('.chat.message.created', (event) => {
|
|
33
|
+
this.subscriptions.forEach((subscription) => {
|
|
34
|
+
if (subscription.getStatus() === 'active') {
|
|
35
|
+
subscription.event('onMessage', event);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
})
|
|
39
|
+
.error((error) => {
|
|
40
|
+
console.error(error);
|
|
41
|
+
});
|
|
15
42
|
}
|
|
16
43
|
addSubscription(subscription) {
|
|
17
44
|
this.subscriptions.push(subscription);
|
|
18
45
|
}
|
|
19
|
-
|
|
20
|
-
|
|
46
|
+
cancelSubscription(subscription) {
|
|
47
|
+
subscription.setStatus('cancelled');
|
|
21
48
|
}
|
|
22
|
-
|
|
23
|
-
this.subscriptions.forEach(
|
|
49
|
+
cancelAllSubscriptions() {
|
|
50
|
+
this.subscriptions.forEach(subscription => {
|
|
51
|
+
this.cancelSubscription(subscription);
|
|
52
|
+
});
|
|
24
53
|
}
|
|
25
|
-
|
|
26
|
-
this.
|
|
54
|
+
leave() {
|
|
55
|
+
this._leave();
|
|
27
56
|
}
|
|
28
|
-
|
|
29
|
-
this.
|
|
30
|
-
|
|
31
|
-
handleChannelError(error) {
|
|
32
|
-
console.error(error);
|
|
57
|
+
cancelAllSubscriptionsAndLeave() {
|
|
58
|
+
this.cancelAllSubscriptions();
|
|
59
|
+
this.leave();
|
|
33
60
|
}
|
|
34
61
|
}
|
|
35
62
|
exports.default = CachedChat;
|
package/dist/CachedChat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"CachedChat.js","sourceRoot":"","sources":["../src/CachedChat.ts"],"names":[],"mappings":";;AAUA,MAAqB,UAAU;IAO3B,YAAY,EAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAmB;QACjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,OAAO;aACF,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA8B,EAAE,EAAE;gBAC1D,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE;oBACvC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;iBACvC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA8B,EAAE,EAAE;gBAC1D,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE;oBACvC,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;iBAC7C;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA8B,EAAE,EAAE;gBAC1D,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE;oBACvC,YAAY,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;iBAC7C;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,MAAM,CAAC,uBAAuB,EAAE,CAAC,KAAU,EAAE,EAAE;YAC5C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAA8B,EAAE,EAAE;gBAC1D,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,EAAE;oBACvC,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;iBAC1C;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACX,CAAC;IAED,eAAe,CAAC,YAA8B;QAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB,CAAC,YAA8B;QAC7C,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,sBAAsB;QAClB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YACtC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,8BAA8B;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;CACJ;AArED,6BAqEC"}
|
package/dist/Chat.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Echo from "laravel-echo";
|
|
2
2
|
import { Logger } from "./Logger";
|
|
3
|
+
import CachedChat from "./CachedChat";
|
|
3
4
|
import { AxiosInstance } from 'axios';
|
|
4
5
|
import ChatSubscription from "./ChatSubscription";
|
|
5
6
|
export interface ChatOptions {
|
|
@@ -14,6 +15,9 @@ export interface ChatOptions {
|
|
|
14
15
|
export interface ConstructPusherConfig {
|
|
15
16
|
jwtToken?: string;
|
|
16
17
|
}
|
|
18
|
+
export interface LoginOptions {
|
|
19
|
+
jwtToken?: string;
|
|
20
|
+
}
|
|
17
21
|
export declare type GetReturnValue = {
|
|
18
22
|
subscription: ChatSubscription;
|
|
19
23
|
error?: undefined;
|
|
@@ -45,14 +49,21 @@ export declare type GetChatIdFromAppointmentIdReturnValue = {
|
|
|
45
49
|
chatId?: undefined;
|
|
46
50
|
error: ChatError;
|
|
47
51
|
};
|
|
52
|
+
export declare type GetChatReturnValue = {
|
|
53
|
+
chat: CachedChat;
|
|
54
|
+
error?: undefined;
|
|
55
|
+
} | {
|
|
56
|
+
chat?: undefined;
|
|
57
|
+
error: ChatError;
|
|
58
|
+
};
|
|
48
59
|
export interface ChatError {
|
|
49
60
|
code: ChatErrorCode;
|
|
50
61
|
}
|
|
51
|
-
export declare type ChatErrorCode = 'error' | 'unauthorized' | 'chat_not_initialized';
|
|
62
|
+
export declare type ChatErrorCode = 'error' | 'unauthorized' | 'chat_not_initialized' | 'echo_is_not_defined';
|
|
52
63
|
declare const Chat: {
|
|
53
64
|
init: (_options: ChatOptions) => void;
|
|
54
65
|
isInitialized: () => boolean;
|
|
55
|
-
login: () => void;
|
|
66
|
+
login: ({ jwtToken }: LoginOptions) => void;
|
|
56
67
|
logout: () => void;
|
|
57
68
|
get: (id: number) => Promise<GetReturnValue>;
|
|
58
69
|
appointment: (appointmentId: number) => Promise<GetReturnValue>;
|
package/dist/Chat.js
CHANGED
|
@@ -43,24 +43,44 @@ const Chat = (function () {
|
|
|
43
43
|
const isInitialized = () => {
|
|
44
44
|
return initialized;
|
|
45
45
|
};
|
|
46
|
-
const login = () => {
|
|
46
|
+
const login = ({ jwtToken }) => {
|
|
47
|
+
if (echo) {
|
|
48
|
+
logout();
|
|
49
|
+
}
|
|
50
|
+
options.jwtToken = jwtToken;
|
|
51
|
+
echo = new laravel_echo_1.default({
|
|
52
|
+
broadcaster: 'pusher',
|
|
53
|
+
client: options.constructPusher({
|
|
54
|
+
jwtToken: options.jwtToken
|
|
55
|
+
})
|
|
56
|
+
});
|
|
47
57
|
};
|
|
48
58
|
const logout = () => {
|
|
59
|
+
for (const chatId in chats) {
|
|
60
|
+
if (Object.prototype.hasOwnProperty.call(chats, chatId)) {
|
|
61
|
+
chats[chatId].cancelAllSubscriptionsAndLeave();
|
|
62
|
+
delete chats[chatId];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
echo === null || echo === void 0 ? void 0 : echo.disconnect();
|
|
66
|
+
echo = undefined;
|
|
49
67
|
};
|
|
50
68
|
const get = (id) => __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
const chat = getChat(id);
|
|
52
|
-
|
|
69
|
+
const { chat, error: getChatError } = getChat(id);
|
|
70
|
+
if (getChatError) {
|
|
71
|
+
return { error: getChatError };
|
|
72
|
+
}
|
|
73
|
+
let { messages, error: getLatestChatMessagesError } = yield getLatestChatMessages(id, {
|
|
53
74
|
headers: options.jwtToken
|
|
54
75
|
? { 'Authorization': `Bearer ${options.jwtToken}` }
|
|
55
76
|
: undefined
|
|
56
77
|
});
|
|
57
78
|
console.log('MESSAGES', messages);
|
|
58
|
-
if (
|
|
59
|
-
return { error };
|
|
79
|
+
if (getLatestChatMessagesError) {
|
|
80
|
+
return { error: getLatestChatMessagesError };
|
|
60
81
|
}
|
|
61
|
-
const subscription = new ChatSubscription_1.default({
|
|
62
|
-
status: 'active'
|
|
63
|
-
destroy: destroyChatSubscription
|
|
82
|
+
const subscription = new ChatSubscription_1.default(chat, {
|
|
83
|
+
status: 'active'
|
|
64
84
|
});
|
|
65
85
|
chat.addSubscription(subscription);
|
|
66
86
|
return { subscription };
|
|
@@ -130,12 +150,22 @@ const Chat = (function () {
|
|
|
130
150
|
}
|
|
131
151
|
});
|
|
132
152
|
const getChat = (chatId) => {
|
|
153
|
+
if (!echo) {
|
|
154
|
+
return { error: {
|
|
155
|
+
code: 'echo_is_not_defined'
|
|
156
|
+
} };
|
|
157
|
+
}
|
|
133
158
|
if (!(chatId.toString() in chats)) {
|
|
134
|
-
chats[chatId] = new CachedChat_1.default(
|
|
159
|
+
chats[chatId] = new CachedChat_1.default({
|
|
160
|
+
axios,
|
|
161
|
+
channel: echo.join(getChannelName(chatId)),
|
|
162
|
+
leave: () => echo === null || echo === void 0 ? void 0 : echo.leave(getChannelName(chatId))
|
|
163
|
+
});
|
|
135
164
|
}
|
|
136
|
-
return chats[chatId];
|
|
165
|
+
return { chat: chats[chatId] };
|
|
137
166
|
};
|
|
138
|
-
const
|
|
167
|
+
const getChannelName = (chatId) => {
|
|
168
|
+
return `chat.${chatId}`;
|
|
139
169
|
};
|
|
140
170
|
return {
|
|
141
171
|
init,
|
package/dist/Chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../src/Chat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,gEAAgC;AAChC,qCAAiD;AACjD,8DAAsC;AACtC,kDAAwC;AACxC,0EAAkD;
|
|
1
|
+
{"version":3,"file":"Chat.js","sourceRoot":"","sources":["../src/Chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
import CachedChat from "./CachedChat";
|
|
2
|
+
export declare type ChatSubscriptionStatus = 'active' | 'cancelled';
|
|
2
3
|
export interface ChatSubscriptionOptions {
|
|
3
4
|
status: ChatSubscriptionStatus;
|
|
4
|
-
destroy: (subscription: ChatSubscription) => void;
|
|
5
5
|
}
|
|
6
6
|
export interface ChatSubscriptionEventHandlers {
|
|
7
7
|
onMessage?: (event: any) => void;
|
|
8
8
|
onHere?: (event: any) => void;
|
|
9
9
|
onUserJoining?: (event: any) => void;
|
|
10
10
|
onUserLeaving?: (event: any) => void;
|
|
11
|
+
onStatusChange?: (status: ChatSubscriptionStatus) => void;
|
|
11
12
|
}
|
|
12
13
|
export default class ChatSubscription {
|
|
14
|
+
private chat;
|
|
13
15
|
private status;
|
|
14
|
-
private options;
|
|
15
16
|
private eventHandlers;
|
|
16
|
-
constructor(options: ChatSubscriptionOptions);
|
|
17
|
+
constructor(chat: CachedChat, options: ChatSubscriptionOptions);
|
|
18
|
+
getStatus(): ChatSubscriptionStatus;
|
|
19
|
+
setStatus(status: ChatSubscriptionStatus): void;
|
|
17
20
|
onMessage(handler: ChatSubscriptionEventHandlers['onMessage']): this;
|
|
18
21
|
onHere(handler: ChatSubscriptionEventHandlers['onHere']): this;
|
|
19
22
|
onUserJoining(handler: ChatSubscriptionEventHandlers['onUserJoining']): this;
|
|
20
23
|
onUserLeaving(handler: ChatSubscriptionEventHandlers['onUserLeaving']): this;
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
onStatusChange(handler: ChatSubscriptionEventHandlers['onStatusChange']): this;
|
|
25
|
+
event(name: keyof ChatSubscriptionEventHandlers, data: any): void;
|
|
26
|
+
cancel(): void;
|
|
23
27
|
}
|
package/dist/ChatSubscription.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
class ChatSubscription {
|
|
4
|
-
constructor(options) {
|
|
4
|
+
constructor(chat, options) {
|
|
5
|
+
this.chat = chat;
|
|
5
6
|
this.status = options.status;
|
|
6
7
|
this.eventHandlers = {};
|
|
7
|
-
|
|
8
|
+
}
|
|
9
|
+
getStatus() {
|
|
10
|
+
return this.status;
|
|
11
|
+
}
|
|
12
|
+
setStatus(status) {
|
|
13
|
+
this.status = status;
|
|
8
14
|
}
|
|
9
15
|
onMessage(handler) {
|
|
10
16
|
this.eventHandlers.onMessage = handler;
|
|
@@ -22,12 +28,16 @@ class ChatSubscription {
|
|
|
22
28
|
this.eventHandlers.onUserLeaving = handler;
|
|
23
29
|
return this;
|
|
24
30
|
}
|
|
25
|
-
|
|
31
|
+
onStatusChange(handler) {
|
|
32
|
+
this.eventHandlers.onStatusChange = handler;
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
event(name, data) {
|
|
26
36
|
var _a, _b;
|
|
27
37
|
(_b = (_a = this.eventHandlers)[name]) === null || _b === void 0 ? void 0 : _b.call(_a, data);
|
|
28
38
|
}
|
|
29
|
-
|
|
30
|
-
this.
|
|
39
|
+
cancel() {
|
|
40
|
+
this.chat.cancelSubscription(this);
|
|
31
41
|
}
|
|
32
42
|
}
|
|
33
43
|
exports.default = ChatSubscription;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSubscription.js","sourceRoot":"","sources":["../src/ChatSubscription.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ChatSubscription.js","sourceRoot":"","sources":["../src/ChatSubscription.ts"],"names":[],"mappings":";;AAkBA,MAAqB,gBAAgB;IAKjC,YAAY,IAAgB,EAAE,OAAgC;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,MAA8B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,OAAmD;QACzD,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,OAAO,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,OAAgD;QACnD,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,OAAuD;QACjE,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,OAAO,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,OAAuD;QACjE,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,OAAO,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,OAAwD;QACnE,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,OAAO,CAAC;QAC5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAyC,EAAE,IAAS;;QACtD,MAAA,MAAA,IAAI,CAAC,aAAa,EAAC,IAAI,CAAC,mDAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACJ;AAnDD,mCAmDC"}
|
package/dist/react/useChat.js
CHANGED
|
@@ -19,6 +19,9 @@ const useChat = (id, { idType }) => {
|
|
|
19
19
|
const handleMessage = (event) => {
|
|
20
20
|
console.log('handleMessage', event);
|
|
21
21
|
};
|
|
22
|
+
const handleStatusChange = (status) => {
|
|
23
|
+
console.log('status change', status);
|
|
24
|
+
};
|
|
22
25
|
(0, react_1.useEffect)(() => {
|
|
23
26
|
const method = idType === 'appointment' ? 'appointment' : 'get';
|
|
24
27
|
Chat_1.default[method](id).then(({ subscription, error }) => {
|
|
@@ -32,10 +35,10 @@ const useChat = (id, { idType }) => {
|
|
|
32
35
|
});
|
|
33
36
|
}, []);
|
|
34
37
|
(0, react_1.useEffect)(() => {
|
|
35
|
-
var _a, _b, _c;
|
|
36
|
-
(_c = (_b = (_a = subscription === null || subscription === void 0 ? void 0 : subscription.onHere(handleHere)) === null || _a === void 0 ? void 0 : _a.onUserJoining(handleUserJoining)) === null || _b === void 0 ? void 0 : _b.onUserLeaving(handleUserLeaving)) === null || _c === void 0 ? void 0 : _c.onMessage(handleMessage);
|
|
38
|
+
var _a, _b, _c, _d;
|
|
39
|
+
(_d = (_c = (_b = (_a = subscription === null || subscription === void 0 ? void 0 : subscription.onHere(handleHere)) === null || _a === void 0 ? void 0 : _a.onUserJoining(handleUserJoining)) === null || _b === void 0 ? void 0 : _b.onUserLeaving(handleUserLeaving)) === null || _c === void 0 ? void 0 : _c.onMessage(handleMessage)) === null || _d === void 0 ? void 0 : _d.onStatusChange(handleStatusChange);
|
|
37
40
|
return () => {
|
|
38
|
-
subscription === null || subscription === void 0 ? void 0 : subscription.
|
|
41
|
+
subscription === null || subscription === void 0 ? void 0 : subscription.cancel();
|
|
39
42
|
};
|
|
40
43
|
}, [subscription]);
|
|
41
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../src/react/useChat.ts"],"names":[],"mappings":";;;;;AAAA,mDAA2B;AAC3B,iCAA0C;AAO1C,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,MAAM,EAAkB,EAAE,EAAE;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAA8B,CAAC;IAE/E,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,IAAS,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,IAAS,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,KAAU,EAAE,EAAE;QACjC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,MAAM,GAAG,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,cAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,YAAY,EAAE,KAAK,EAAC,EAAE,EAAE;YAC5C,IAAI,KAAK,EAAE;gBAEP,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5B,OAAO;aACV;YACD,eAAe,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACX,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CACN,MAAM,CAAC,UAAU,CAAC,0CAClB,aAAa,CAAC,iBAAiB,CAAC,0CAChC,aAAa,CAAC,iBAAiB,CAAC,0CAChC,SAAS,CAAC,aAAa,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../src/react/useChat.ts"],"names":[],"mappings":";;;;;AAAA,mDAA2B;AAC3B,iCAA0C;AAO1C,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,MAAM,EAAkB,EAAE,EAAE;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAA8B,CAAC;IAE/E,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,IAAS,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,CAAC,IAAS,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,KAAU,EAAE,EAAE;QACjC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,CAAC,MAA8B,EAAE,EAAE;QAC1D,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,MAAM,GAAG,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,cAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,YAAY,EAAE,KAAK,EAAC,EAAE,EAAE;YAC5C,IAAI,KAAK,EAAE;gBAEP,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5B,OAAO;aACV;YACD,eAAe,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACX,MAAA,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CACN,MAAM,CAAC,UAAU,CAAC,0CAClB,aAAa,CAAC,iBAAiB,CAAC,0CAChC,aAAa,CAAC,iBAAiB,CAAC,0CAChC,SAAS,CAAC,aAAa,CAAC,0CACxB,cAAc,CAAC,kBAAkB,CAAC,CAAA;QAExC,OAAO,GAAG,EAAE;YACR,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,EAAE,CAAC;QAC3B,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACvB,CAAC,CAAA;AAED,kBAAe,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viewberapp/chat",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"description": "Viewber chat",
|
|
5
5
|
"author": "Jacob <jacob.chen@viewber.co.uk>",
|
|
6
6
|
"homepage": "https://bitbucket.org/ezadr/viewberjs#readme",
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"react": "^16.14.0",
|
|
40
40
|
"rollbar": "^2.25.0"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "aafbf7790a2507ae46cfcdb6a6a791c0db3b1f27"
|
|
43
43
|
}
|