@subiz/widget-v4 4.1.78 → 4.1.80
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/compiled_src/bot.js +1 -1
- package/compiled_src/call/call.js +2 -2
- package/compiled_src/chatbox/AgentsAvatar.js +1 -1
- package/compiled_src/chatbox/AudioAttachments.js +1 -1
- package/compiled_src/chatbox/ButtonAttachments.js +1 -1
- package/compiled_src/chatbox/Buttons.js +1 -1
- package/compiled_src/chatbox/ChatButton.js +1 -1
- package/compiled_src/chatbox/DropdownSelect.js +2 -2
- package/compiled_src/chatbox/Emoji.js +1 -1
- package/compiled_src/chatbox/Event.js +1 -1
- package/compiled_src/chatbox/Events.js +1 -1
- package/compiled_src/chatbox/FileAttachments.js +1 -1
- package/compiled_src/chatbox/FormAttachment.js +1 -1
- package/compiled_src/chatbox/FormAttachments.js +1 -1
- package/compiled_src/chatbox/FormSubmitAttachments.js +1 -1
- package/compiled_src/chatbox/GenericTemplateAttachments.js +1 -1
- package/compiled_src/chatbox/Header.js +1 -1
- package/compiled_src/chatbox/ImageAttachments.js +2 -2
- package/compiled_src/chatbox/InfoMessage.js +1 -1
- package/compiled_src/chatbox/ListField.js +1 -1
- package/compiled_src/chatbox/MessageInput.js +2 -2
- package/compiled_src/chatbox/Order.js +2 -2
- package/compiled_src/chatbox/OrderAttachments.js +1 -1
- package/compiled_src/chatbox/ProductAttachments.js +1 -1
- package/compiled_src/chatbox/QuickReplies.js +1 -1
- package/compiled_src/chatbox/Rating.js +2 -2
- package/compiled_src/chatbox/TextMessage.js +1 -1
- package/compiled_src/chatbox/Typing.js +1 -1
- package/compiled_src/chatbox/VideoAttachments.js +1 -1
- package/compiled_src/chatbox/Widget.js +2 -2
- package/compiled_src/chatbox/main.js +1 -1
- package/compiled_src/chatbox/releaseAnimation.js +1 -1
- package/compiled_src/chatbox/time.js +2 -2
- package/compiled_src/common.js +1 -1
- package/compiled_src/contact/contact.js +2 -2
- package/compiled_src/lib.js +2 -2
- package/compiled_src/notif/notif.js +2 -2
- package/compiled_src/order/address_picker.js +2 -2
- package/compiled_src/order/icon.js +1 -1
- package/compiled_src/order/index.js +1 -1
- package/compiled_src/order/order.js +2 -2
- package/compiled_src/plugin.js +1 -1
- package/compiled_src/popup/countdown.js +2 -2
- package/compiled_src/popup/popup.js +2 -2
- package/compiled_src/popup/tick.core.commonjs.js +1 -1
- package/compiled_src/store/api.js +3 -3
- package/compiled_src/store/api_fake.js +2 -2
- package/compiled_src/store/store.js +53 -20
- package/dist/127.js +273 -0
- package/dist/132.js +2796 -0
- package/dist/185.js +1885 -0
- package/dist/18ffe1df25b.127.js +1 -0
- package/dist/18ffe1df25b.132.js +1 -0
- package/dist/18ffe1df25b.185.js +1 -0
- package/dist/18ffe1df25b.27.js +1 -0
- package/dist/18ffe1df25b.278.js +1 -0
- package/dist/18ffe1df25b.459.js +1 -0
- package/dist/18ffe1df25b.490.js +1 -0
- package/dist/18ffe1df25b.74.js +1 -0
- package/dist/18ffe1df25b.997.js +1 -0
- package/dist/18ffe1df25b.app.js +1 -0
- package/dist/18ffe1df25b.index.html +33 -0
- package/dist/18ffe1df25b.library.html +33 -0
- package/dist/18ffe1df25b.library.js +1 -0
- package/dist/18ffe1df25b.preview.html +759 -0
- package/dist/18ffe1df25b.preview.js +1 -0
- package/dist/18ffe1df25b.screenshoot.js +1 -0
- package/dist/18ffe1df25b.webview.js +1 -0
- package/dist/27.js +107 -0
- package/dist/278.js +406 -0
- package/dist/459.js +107 -0
- package/dist/490.js +304 -0
- package/dist/74.js +372 -0
- package/dist/997.js +107 -0
- package/dist/HASH +1 -0
- package/dist/assets/img/Facebook.64607ec.png +0 -0
- package/dist/assets/img/Zalo.6845707.png +0 -0
- package/dist/assets/img/award1a.1a58e10.png +0 -0
- package/dist/assets/img/award3a.3b74423.png +0 -0
- package/dist/assets/img/award4a.ed6ccd4.png +0 -0
- package/dist/assets/img/award5.39eb7ae.png +0 -0
- package/dist/assets/img/bubble_default.7d5e4ab.svg +20 -0
- package/dist/assets/img/caret.998eb8f.svg +1 -0
- package/dist/assets/img/convos_empty.2353007.svg +72 -0
- package/dist/assets/img/default.06e6ee0.jpg +0 -0
- package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
- package/dist/assets/img/done_gray.d7e8203.svg +4 -0
- package/dist/assets/img/done_green.b817fd4.svg +4 -0
- package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
- package/dist/assets/img/empty.29bed2d.svg +23 -0
- package/dist/assets/img/empty_1.0b98af0.svg +11 -0
- package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
- package/dist/assets/img/external-link.90577cc.svg +1 -0
- package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
- package/dist/assets/img/ghn.070f8e3.svg +17 -0
- package/dist/assets/img/ghtk.326eac1.svg +18 -0
- package/dist/assets/img/image_default.be0698b.png +0 -0
- package/dist/assets/img/info.ebce7ea.svg +1 -0
- package/dist/assets/img/loader.37000a7.svg +1 -0
- package/dist/assets/img/loading_static.a27f0ac.svg +10 -0
- package/dist/assets/img/main-service1.d536cc2.png +0 -0
- package/dist/assets/img/main-service2.9b99549.png +0 -0
- package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
- package/dist/assets/img/package.8d37d0f.svg +5 -0
- package/dist/assets/img/package_fade.763c001.svg +1 -0
- package/dist/assets/img/rating--average.1ea492c.svg +12 -0
- package/dist/assets/img/rating--great.e3d712e.svg +16 -0
- package/dist/assets/img/rating--poor.2938a25.svg +12 -0
- package/dist/assets/img/search.f9705ff.svg +1 -0
- package/dist/assets/img/send.6db52a9.svg +3 -0
- package/dist/assets/img/shop.f7dc7d8.svg +1 -0
- package/dist/assets/img/shop_faded.df7845a.svg +1 -0
- package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
- package/dist/assets/img/x.26fdfa3.svg +5 -0
- package/dist/malicious-app.js +15 -0
- package/dist/screenshoot.html +7 -0
- package/dist/screenshoot.js +10415 -0
- package/package.json +8 -8
- package/src/chatbox/Events.js +1 -1
- package/src/chatbox/time.js +1 -1
- package/src/store/api.js +1 -1
- package/src/store/store.js +55 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subiz/widget-v4",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.80",
|
|
4
4
|
"main": "./compiled_src/lib.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "npx webpack serve --config webpack.dev.js",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"lib": "rm -rf compiled_src && npx babel --out-dir=compiled_src src"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@subiz/ajax": "^3.0.
|
|
12
|
+
"@subiz/ajax": "^3.0.16",
|
|
13
13
|
"@subiz/flow": "^1.1.0",
|
|
14
14
|
"@subiz/storage": "0.0.8",
|
|
15
15
|
"@subiz/wsclient": "^4.0.24",
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
"preact": "10.19.3"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@babel/cli": "^7.24.
|
|
26
|
-
"@babel/core": "^7.24.
|
|
25
|
+
"@babel/cli": "^7.24.7",
|
|
26
|
+
"@babel/core": "^7.24.7",
|
|
27
27
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
28
|
-
"@babel/plugin-transform-react-jsx": "^7.
|
|
29
|
-
"@babel/preset-env": "^7.24.
|
|
28
|
+
"@babel/plugin-transform-react-jsx": "^7.24.7",
|
|
29
|
+
"@babel/preset-env": "^7.24.7",
|
|
30
30
|
"babel-loader": "^9.1.3",
|
|
31
31
|
"babel-plugin-syntax-jsx": "^6.18.0",
|
|
32
32
|
"html-webpack-plugin": "^5.6.0",
|
|
33
|
-
"puppeteer": "^22.
|
|
34
|
-
"webpack": "^5.
|
|
33
|
+
"puppeteer": "^22.12.0",
|
|
34
|
+
"webpack": "^5.92.1",
|
|
35
35
|
"webpack-bundle-analyzer": "^4.10.2",
|
|
36
36
|
"webpack-cli": "^5.1.4",
|
|
37
37
|
"webpack-dev-server": "^5.0.4"
|
package/src/chatbox/Events.js
CHANGED
|
@@ -161,6 +161,7 @@ export default class Events extends Com {
|
|
|
161
161
|
let events = this.props.store.listEvents(this.props.cid)
|
|
162
162
|
if (sb.size(events) === 0) {
|
|
163
163
|
let cid = this.props.cid
|
|
164
|
+
|
|
164
165
|
let {error} = await this.props.store.fetchMoreEvents(cid)
|
|
165
166
|
this.setState({loading: false})
|
|
166
167
|
if (cid !== this.props.cid) return // out dated
|
|
@@ -173,7 +174,6 @@ export default class Events extends Com {
|
|
|
173
174
|
this.props.store.fetchMoreEvents(this.props.cid)
|
|
174
175
|
this.setState({error: false})
|
|
175
176
|
this.scrollToBottom()
|
|
176
|
-
|
|
177
177
|
sb.setTimeout(() => this.setState({loading: false}), 50)
|
|
178
178
|
}
|
|
179
179
|
|
package/src/chatbox/time.js
CHANGED
|
@@ -39,7 +39,7 @@ export default class Time extends Com {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
if (!t && this.props.time > 0) t = ago(this.props.time, new sb.Date().getTime(), this.props.t)
|
|
42
|
-
} else t = sb.shortTime(this.props.time, this.props.tzoffset, Date.now(), forceLocale)
|
|
42
|
+
} else t = sb.shortTime(this.props.time, this.props.tzoffset, sb.Date.now(), forceLocale)
|
|
43
43
|
|
|
44
44
|
if (this.props.uppercase) t = t.toUpperCase()
|
|
45
45
|
|
package/src/store/api.js
CHANGED
|
@@ -63,7 +63,7 @@ export default class {
|
|
|
63
63
|
.addQuery('x-user-ref', this.ref)
|
|
64
64
|
.setParser('json')
|
|
65
65
|
.get(`/accounts/${this.accid}/users/${this.ref}`)
|
|
66
|
-
if (outuser.error && sb.get(outuser, 'body.code', '').indexOf('locked_account') != -1) break
|
|
66
|
+
if (outuser.error && sb.get(outuser, 'body.error.code', '').indexOf('locked_account') != -1) break
|
|
67
67
|
|
|
68
68
|
if (!sb.get(outuser, 'body.id')) {
|
|
69
69
|
let sleeptime = Math.min(2000 + i * 400, 60000)
|
package/src/store/store.js
CHANGED
|
@@ -316,26 +316,39 @@ export default class Store {
|
|
|
316
316
|
list_districts = (p) => this.api.list_districts(p)
|
|
317
317
|
list_wards = (p) => this.api.list_wards(p)
|
|
318
318
|
|
|
319
|
+
outofmsgM = {}
|
|
320
|
+
|
|
319
321
|
listEvents = (id) => {
|
|
320
322
|
if (!id || id === '*' || typeof id !== 'string') return
|
|
321
|
-
if (!this.isInsync('events' + id)) {
|
|
322
|
-
sb.setTimeout(async () => {
|
|
323
|
-
await this.readyGate.entry()
|
|
324
|
-
await this.reconnectGate.entry(undefined, true)
|
|
325
|
-
if (this.isInsync('events' + id)) return this.reconnectGate.open()
|
|
326
|
-
this.markSync('events' + id)
|
|
327
|
-
await this.chain.reload(id, (type, anchor, limit) => this.listmessageapi(type, anchor, limit))
|
|
328
|
-
this.pubsub.publish('account')
|
|
329
|
-
return this.reconnectGate.open()
|
|
330
|
-
}, 10)
|
|
331
|
-
}
|
|
332
323
|
return this.chain.listM(id)
|
|
333
324
|
}
|
|
334
325
|
|
|
335
326
|
fetchMoreEvents = async (convoid) => {
|
|
336
|
-
|
|
337
|
-
this.
|
|
338
|
-
|
|
327
|
+
if (!this.isInsync('events' + convoid)) {
|
|
328
|
+
await this.readyGate.entry()
|
|
329
|
+
await this.reconnectGate.entry(undefined, true)
|
|
330
|
+
if (this.isInsync('events' + convoid)) return this.reconnectGate.open()
|
|
331
|
+
this.markSync('events' + convoid)
|
|
332
|
+
|
|
333
|
+
// reset anchor
|
|
334
|
+
await this.chain.reload(convoid, () => {
|
|
335
|
+
return [[], '']
|
|
336
|
+
})
|
|
337
|
+
let out = await this._doFetchMsg(convoid)
|
|
338
|
+
this.reconnectGate.open()
|
|
339
|
+
return out
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
return this._doFetchMsg(convoid)
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
_doFetchMsg = async (convoid) => {
|
|
346
|
+
let {error} = await this.chain.fetchMore(convoid, 150, async (type, anchor, limit) => {
|
|
347
|
+
if (this.outofmsgM[convoid]) return [[], '']
|
|
348
|
+
let [events, newanchor, error, outofmsg] = await this.listmessageapi(type, anchor, limit)
|
|
349
|
+
if (outofmsg) this.outofmsgM[convoid] = true
|
|
350
|
+
return [events, newanchor, error]
|
|
351
|
+
})
|
|
339
352
|
this.pubsub.publish('account')
|
|
340
353
|
return {error}
|
|
341
354
|
}
|
|
@@ -510,9 +523,23 @@ export default class Store {
|
|
|
510
523
|
// send seen
|
|
511
524
|
this.api.markAsSeen(id, lastmsgsent.id)
|
|
512
525
|
|
|
526
|
+
// fire own event so guest code can update unread number
|
|
527
|
+
this.pubsub.publish('events', {
|
|
528
|
+
created: sb.Date.now(),
|
|
529
|
+
type: 'message_pong',
|
|
530
|
+
by: {type: 'user'},
|
|
531
|
+
data: {
|
|
532
|
+
message: {
|
|
533
|
+
conversation_id: id,
|
|
534
|
+
id: '*',
|
|
535
|
+
pongs: [{type: 'seen', created: sb.Date.now()}],
|
|
536
|
+
},
|
|
537
|
+
},
|
|
538
|
+
})
|
|
539
|
+
|
|
513
540
|
let convo = this.cache.match('convo_' + id) || {}
|
|
514
541
|
let mem = sb.find(convo.members, (m) => m.id === user.id)
|
|
515
|
-
if (mem) mem.seen_at = Date.now()
|
|
542
|
+
if (mem) mem.seen_at = sb.Date.now()
|
|
516
543
|
this._setConvo(convo)
|
|
517
544
|
this.g_haveSentSeenM[lastmsgsent.id] = true
|
|
518
545
|
})
|
|
@@ -754,8 +781,8 @@ export default class Store {
|
|
|
754
781
|
let members = sb.get(ev, 'data.conversation.members', [])
|
|
755
782
|
let me = sb.find(members, (m) => m.id === this.cache.match('user').id)
|
|
756
783
|
if (me) {
|
|
757
|
-
await this.chain.reload(cid, (type, anchor, limit) => this.listmessageapi(type, anchor, limit))
|
|
758
|
-
this.markSync('events' + cid)
|
|
784
|
+
// await this.chain.reload(cid, (type, anchor, limit) => this.listmessageapi(type, anchor, limit)) // ?
|
|
785
|
+
// this.markSync('events' + cid)
|
|
759
786
|
if (!alreadyFetched) {
|
|
760
787
|
let {body: apiconvo} = await this.api.getConversation(cid)
|
|
761
788
|
if (apiconvo) {
|
|
@@ -769,7 +796,10 @@ export default class Store {
|
|
|
769
796
|
|
|
770
797
|
if (ev.type === 'message_sent') {
|
|
771
798
|
if (sb.get(ev, 'by.id') !== user.id) {
|
|
772
|
-
this.
|
|
799
|
+
if (!this._alreadyReceived[ev.id]) {
|
|
800
|
+
this._alreadyReceived[ev.id] = true
|
|
801
|
+
this.api.markAsReceived(cid, ev.id)
|
|
802
|
+
}
|
|
773
803
|
}
|
|
774
804
|
}
|
|
775
805
|
|
|
@@ -782,6 +812,7 @@ export default class Store {
|
|
|
782
812
|
}
|
|
783
813
|
}
|
|
784
814
|
|
|
815
|
+
_alreadyReceived = {} // dont dup receive
|
|
785
816
|
async restConvoEvent(ev) {
|
|
786
817
|
let user = this.cache.match('user')
|
|
787
818
|
let cid = sb.convoOfEv(ev)
|
|
@@ -1068,11 +1099,15 @@ export default class Store {
|
|
|
1068
1099
|
|
|
1069
1100
|
let pongbyme = sb.find(sb.get(ev, 'data.message.pongs'), (p) => p.member_id === user.id)
|
|
1070
1101
|
if (pongbyme) break
|
|
1071
|
-
this.
|
|
1102
|
+
if (!this._alreadyReceived[ev.id]) {
|
|
1103
|
+
this._alreadyReceived[ev.id] = true
|
|
1104
|
+
this.api.markAsReceived(convoid, ev.id)
|
|
1105
|
+
}
|
|
1072
1106
|
break
|
|
1073
1107
|
}
|
|
1074
1108
|
|
|
1075
|
-
|
|
1109
|
+
let outofmsg = sb.size(events) < limit
|
|
1110
|
+
return [events, anchor, undefined, outofmsg]
|
|
1076
1111
|
}
|
|
1077
1112
|
|
|
1078
1113
|
timeDiff = 0
|
|
@@ -1244,7 +1279,6 @@ function getGaTrackingIds() {
|
|
|
1244
1279
|
|
|
1245
1280
|
function sendToFBPixel(category, action, label) {
|
|
1246
1281
|
if (!window.fbq) return
|
|
1247
|
-
|
|
1248
1282
|
window.fbq('trackCustom', category, {action: action, label: label})
|
|
1249
1283
|
}
|
|
1250
1284
|
|