@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.
Files changed (144) hide show
  1. package/compiled_src/bot.js +1 -1
  2. package/compiled_src/call/call.js +2 -2
  3. package/compiled_src/chatbox/AgentsAvatar.js +1 -1
  4. package/compiled_src/chatbox/AudioAttachments.js +1 -1
  5. package/compiled_src/chatbox/ButtonAttachments.js +1 -1
  6. package/compiled_src/chatbox/Buttons.js +1 -1
  7. package/compiled_src/chatbox/ChatButton.js +1 -1
  8. package/compiled_src/chatbox/DropdownSelect.js +2 -2
  9. package/compiled_src/chatbox/Emoji.js +1 -1
  10. package/compiled_src/chatbox/Event.js +1 -1
  11. package/compiled_src/chatbox/Events.js +1 -1
  12. package/compiled_src/chatbox/FileAttachments.js +1 -1
  13. package/compiled_src/chatbox/FormAttachment.js +1 -1
  14. package/compiled_src/chatbox/FormAttachments.js +1 -1
  15. package/compiled_src/chatbox/FormSubmitAttachments.js +1 -1
  16. package/compiled_src/chatbox/GenericTemplateAttachments.js +1 -1
  17. package/compiled_src/chatbox/Header.js +1 -1
  18. package/compiled_src/chatbox/ImageAttachments.js +2 -2
  19. package/compiled_src/chatbox/InfoMessage.js +1 -1
  20. package/compiled_src/chatbox/ListField.js +1 -1
  21. package/compiled_src/chatbox/MessageInput.js +2 -2
  22. package/compiled_src/chatbox/Order.js +2 -2
  23. package/compiled_src/chatbox/OrderAttachments.js +1 -1
  24. package/compiled_src/chatbox/ProductAttachments.js +1 -1
  25. package/compiled_src/chatbox/QuickReplies.js +1 -1
  26. package/compiled_src/chatbox/Rating.js +2 -2
  27. package/compiled_src/chatbox/TextMessage.js +1 -1
  28. package/compiled_src/chatbox/Typing.js +1 -1
  29. package/compiled_src/chatbox/VideoAttachments.js +1 -1
  30. package/compiled_src/chatbox/Widget.js +2 -2
  31. package/compiled_src/chatbox/main.js +1 -1
  32. package/compiled_src/chatbox/releaseAnimation.js +1 -1
  33. package/compiled_src/chatbox/time.js +2 -2
  34. package/compiled_src/common.js +1 -1
  35. package/compiled_src/contact/contact.js +2 -2
  36. package/compiled_src/lib.js +2 -2
  37. package/compiled_src/notif/notif.js +2 -2
  38. package/compiled_src/order/address_picker.js +2 -2
  39. package/compiled_src/order/icon.js +1 -1
  40. package/compiled_src/order/index.js +1 -1
  41. package/compiled_src/order/order.js +2 -2
  42. package/compiled_src/plugin.js +1 -1
  43. package/compiled_src/popup/countdown.js +2 -2
  44. package/compiled_src/popup/popup.js +2 -2
  45. package/compiled_src/popup/tick.core.commonjs.js +1 -1
  46. package/compiled_src/store/api.js +3 -3
  47. package/compiled_src/store/api_fake.js +2 -2
  48. package/compiled_src/store/store.js +53 -20
  49. package/dist/127.js +273 -0
  50. package/dist/132.js +2796 -0
  51. package/dist/185.js +1885 -0
  52. package/dist/18ffe1df25b.127.js +1 -0
  53. package/dist/18ffe1df25b.132.js +1 -0
  54. package/dist/18ffe1df25b.185.js +1 -0
  55. package/dist/18ffe1df25b.27.js +1 -0
  56. package/dist/18ffe1df25b.278.js +1 -0
  57. package/dist/18ffe1df25b.459.js +1 -0
  58. package/dist/18ffe1df25b.490.js +1 -0
  59. package/dist/18ffe1df25b.74.js +1 -0
  60. package/dist/18ffe1df25b.997.js +1 -0
  61. package/dist/18ffe1df25b.app.js +1 -0
  62. package/dist/18ffe1df25b.index.html +33 -0
  63. package/dist/18ffe1df25b.library.html +33 -0
  64. package/dist/18ffe1df25b.library.js +1 -0
  65. package/dist/18ffe1df25b.preview.html +759 -0
  66. package/dist/18ffe1df25b.preview.js +1 -0
  67. package/dist/18ffe1df25b.screenshoot.js +1 -0
  68. package/dist/18ffe1df25b.webview.js +1 -0
  69. package/dist/27.js +107 -0
  70. package/dist/278.js +406 -0
  71. package/dist/459.js +107 -0
  72. package/dist/490.js +304 -0
  73. package/dist/74.js +372 -0
  74. package/dist/997.js +107 -0
  75. package/dist/HASH +1 -0
  76. package/dist/assets/img/Facebook.64607ec.png +0 -0
  77. package/dist/assets/img/Zalo.6845707.png +0 -0
  78. package/dist/assets/img/award1a.1a58e10.png +0 -0
  79. package/dist/assets/img/award3a.3b74423.png +0 -0
  80. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  81. package/dist/assets/img/award5.39eb7ae.png +0 -0
  82. package/dist/assets/img/bubble_default.7d5e4ab.svg +20 -0
  83. package/dist/assets/img/caret.998eb8f.svg +1 -0
  84. package/dist/assets/img/convos_empty.2353007.svg +72 -0
  85. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  86. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  87. package/dist/assets/img/done_gray.d7e8203.svg +4 -0
  88. package/dist/assets/img/done_green.b817fd4.svg +4 -0
  89. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  90. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  91. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  92. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  93. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  94. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  95. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  96. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  97. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  98. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  99. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  100. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  101. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  102. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  103. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  104. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  105. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  106. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  107. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  108. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  109. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  110. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  111. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  112. package/dist/assets/img/empty.29bed2d.svg +23 -0
  113. package/dist/assets/img/empty_1.0b98af0.svg +11 -0
  114. package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
  115. package/dist/assets/img/external-link.90577cc.svg +1 -0
  116. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  117. package/dist/assets/img/ghn.070f8e3.svg +17 -0
  118. package/dist/assets/img/ghtk.326eac1.svg +18 -0
  119. package/dist/assets/img/image_default.be0698b.png +0 -0
  120. package/dist/assets/img/info.ebce7ea.svg +1 -0
  121. package/dist/assets/img/loader.37000a7.svg +1 -0
  122. package/dist/assets/img/loading_static.a27f0ac.svg +10 -0
  123. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  124. package/dist/assets/img/main-service2.9b99549.png +0 -0
  125. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  126. package/dist/assets/img/package.8d37d0f.svg +5 -0
  127. package/dist/assets/img/package_fade.763c001.svg +1 -0
  128. package/dist/assets/img/rating--average.1ea492c.svg +12 -0
  129. package/dist/assets/img/rating--great.e3d712e.svg +16 -0
  130. package/dist/assets/img/rating--poor.2938a25.svg +12 -0
  131. package/dist/assets/img/search.f9705ff.svg +1 -0
  132. package/dist/assets/img/send.6db52a9.svg +3 -0
  133. package/dist/assets/img/shop.f7dc7d8.svg +1 -0
  134. package/dist/assets/img/shop_faded.df7845a.svg +1 -0
  135. package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
  136. package/dist/assets/img/x.26fdfa3.svg +5 -0
  137. package/dist/malicious-app.js +15 -0
  138. package/dist/screenshoot.html +7 -0
  139. package/dist/screenshoot.js +10415 -0
  140. package/package.json +8 -8
  141. package/src/chatbox/Events.js +1 -1
  142. package/src/chatbox/time.js +1 -1
  143. package/src/store/api.js +1 -1
  144. 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.78",
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.14",
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.5",
26
- "@babel/core": "^7.24.5",
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.23.4",
29
- "@babel/preset-env": "^7.24.5",
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.9.0",
34
- "webpack": "^5.91.0",
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"
@@ -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
 
@@ -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)
@@ -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
- let {error} = await this.chain.fetchMore(convoid, 50, (type, anchor, limit) =>
337
- this.listmessageapi(type, anchor, limit),
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.api.markAsReceived(cid, ev.id)
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.api.markAsReceived(convoid, ev.id)
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
- return [events, anchor]
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