@subiz/widget-v4 4.1.69 → 4.1.71
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/chatbox/AgentsAvatar.js +102 -108
- package/compiled_src/chatbox/ButtonAttachments.js +16 -23
- package/compiled_src/chatbox/Buttons.js +36 -43
- package/compiled_src/chatbox/ChatButton.js +5 -1
- package/compiled_src/chatbox/Rating.js +1 -1
- package/compiled_src/chatbox/Widget.js +1 -1
- package/dist/132.js +2796 -0
- package/dist/18e74ca84ff.132.js +1 -0
- package/dist/18e74ca84ff.27.js +1 -0
- package/dist/18e74ca84ff.278.js +1 -0
- package/dist/18e74ca84ff.459.js +1 -0
- package/dist/18e74ca84ff.490.js +1 -0
- package/dist/18e74ca84ff.497.js +1 -0
- package/dist/18e74ca84ff.74.js +1 -0
- package/dist/18e74ca84ff.997.js +1 -0
- package/dist/18e74ca84ff.app.js +1 -0
- package/dist/18e74ca84ff.index.html +33 -0
- package/dist/18e74ca84ff.library.html +33 -0
- package/dist/18e74ca84ff.library.js +1 -0
- package/dist/18e74ca84ff.preview.html +759 -0
- package/dist/18e74ca84ff.preview.js +1 -0
- package/dist/18e74ca84ff.screenshoot.js +1 -0
- package/dist/18e74ca84ff.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/497.js +6721 -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 +6354 -0
- package/package.json +1 -1
- package/src/chatbox/AgentsAvatar.js +118 -134
- package/src/chatbox/ButtonAttachments.js +13 -20
- package/src/chatbox/Buttons.js +29 -37
- package/src/chatbox/ChatButton.js +6 -1
- package/src/chatbox/Rating.js +1 -1
- package/src/chatbox/Widget.js +2 -1
package/package.json
CHANGED
|
@@ -3,161 +3,98 @@ import {Com} from '../common.js'
|
|
|
3
3
|
import {h} from 'preact'
|
|
4
4
|
|
|
5
5
|
// ['mode', 'tooltipPos', 'agent_ids', 'border'],
|
|
6
|
-
export default
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
render() {
|
|
12
|
-
let accountSetting = this.props.plugin.chatbox
|
|
13
|
-
let acc = this.props.store.matchAccount() || {}
|
|
14
|
-
var tooltippos = this.props.tooltipPos || 'bottom'
|
|
15
|
-
var mode = this.props.mode || 'primary'
|
|
16
|
-
|
|
17
|
-
if (accountSetting && accountSetting.hide_agent_profile) {
|
|
18
|
-
return (
|
|
19
|
-
<div class={`group-avatar group-avatar--${mode}`}>
|
|
20
|
-
<div class='d-inline-block pos-relative' data-tooltip={acc.name} data-tooltip-position={tooltippos}>
|
|
21
|
-
<img
|
|
22
|
-
width={35}
|
|
23
|
-
height={35}
|
|
24
|
-
alt='agent avatar left'
|
|
25
|
-
class='avatar group-avatar--agent-left'
|
|
26
|
-
src={this.props.store.replaceFileUrl(acc.logo_url) || require('../../assets/img/image_default.png')}
|
|
27
|
-
/>
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
30
|
-
)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
let agentM = this.props.store.matchAgent('*')
|
|
34
|
-
var agents = sb.map(this.props.agent_ids, (id) => agentM[id])
|
|
35
|
-
if (this.props.agent_ids === undefined || sb.size(this.props.agent_ids) === 0) {
|
|
36
|
-
var agids = sb.get(accountSetting, 'header.agent_ids', [])
|
|
37
|
-
agids = sb.filter(agids, (id) => !!agentM[id])
|
|
38
|
-
if (agids.length !== 0) {
|
|
39
|
-
agents = sb.map(agids, (id) => agentM[id])
|
|
40
|
-
} else {
|
|
41
|
-
agents = sb.filter(agentM, (agent) => agent.type === 'agent')
|
|
42
|
-
}
|
|
43
|
-
}
|
|
6
|
+
export default function AgentsAvatar(props) {
|
|
7
|
+
let accountSetting = props.plugin.chatbox
|
|
8
|
+
let acc = props.store.matchAccount() || {}
|
|
9
|
+
var tooltippos = props.tooltipPos || 'bottom'
|
|
10
|
+
var mode = props.mode || 'primary'
|
|
44
11
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
src={this.props.store.replaceFileUrl(acc.logo_url) || require('../../assets/img/image_default.png')}
|
|
57
|
-
/>
|
|
58
|
-
</div>
|
|
12
|
+
if (accountSetting && accountSetting.hide_agent_profile) {
|
|
13
|
+
return (
|
|
14
|
+
<div class={`group-avatar group-avatar--${mode}`}>
|
|
15
|
+
<div class='d-inline-block pos-relative' data-tooltip={acc.name} data-tooltip-position={tooltippos}>
|
|
16
|
+
<img
|
|
17
|
+
width={35}
|
|
18
|
+
height={35}
|
|
19
|
+
alt='agent avatar left'
|
|
20
|
+
class='avatar group-avatar--agent-left'
|
|
21
|
+
src={props.store.replaceFileUrl(acc.logo_url) || require('../../assets/img/image_default.png')}
|
|
22
|
+
/>
|
|
59
23
|
</div>
|
|
60
|
-
|
|
61
|
-
|
|
24
|
+
</div>
|
|
25
|
+
)
|
|
26
|
+
}
|
|
62
27
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
data-tooltip-position={tooltippos}
|
|
73
|
-
>
|
|
74
|
-
<img
|
|
75
|
-
width={35}
|
|
76
|
-
height={35}
|
|
77
|
-
class={`avatar ${groupClass}`}
|
|
78
|
-
alt='agent avatar'
|
|
79
|
-
src={this.props.store.replaceFileUrl(agent.avatar_url) || require('../../assets/img/default_avatar.png')}
|
|
80
|
-
/>
|
|
81
|
-
</div>
|
|
82
|
-
</div>
|
|
83
|
-
)
|
|
28
|
+
let agentM = props.store.matchAgent('*')
|
|
29
|
+
var agents = sb.map(props.agent_ids, (id) => agentM[id])
|
|
30
|
+
if (props.agent_ids === undefined || sb.size(props.agent_ids) === 0) {
|
|
31
|
+
var agids = sb.get(accountSetting, 'header.agent_ids', [])
|
|
32
|
+
agids = sb.filter(agids, (id) => !!agentM[id])
|
|
33
|
+
if (agids.length !== 0) {
|
|
34
|
+
agents = sb.map(agids, (id) => agentM[id])
|
|
35
|
+
} else {
|
|
36
|
+
agents = sb.filter(agentM, (agent) => agent.type === 'agent')
|
|
84
37
|
}
|
|
38
|
+
}
|
|
85
39
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
<div class=
|
|
92
|
-
<
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
height={35}
|
|
100
|
-
alt='agent avatar left'
|
|
101
|
-
class='avatar group-avatar--agent-left'
|
|
102
|
-
src={
|
|
103
|
-
this.props.store.replaceFileUrl(leftAgent.avatar_url) || require('../../assets/img/default_avatar.png')
|
|
104
|
-
}
|
|
105
|
-
/>
|
|
106
|
-
</div>
|
|
107
|
-
<div
|
|
108
|
-
class='d-inline-block pos-relative'
|
|
109
|
-
data-tooltip={rightAgent.fullname || acc.name}
|
|
110
|
-
data-tooltip-position={tooltippos}
|
|
111
|
-
>
|
|
112
|
-
<img
|
|
113
|
-
alt='agent avatar right'
|
|
114
|
-
width={35}
|
|
115
|
-
height={35}
|
|
116
|
-
class='avatar group-avatar--agent-right'
|
|
117
|
-
src={
|
|
118
|
-
this.props.store.replaceFileUrl(rightAgent.avatar_url) || require('../../assets/img/default_avatar.png')
|
|
119
|
-
}
|
|
120
|
-
/>
|
|
121
|
-
</div>
|
|
40
|
+
agents = sb.filter(agents, (ag) => !!ag)
|
|
41
|
+
if (agents.length === 0) {
|
|
42
|
+
// use account avatar
|
|
43
|
+
return (
|
|
44
|
+
<div class={`group-avatar group-avatar--${mode}`}>
|
|
45
|
+
<div class='d-inline-block pos-relative' data-tooltip={acc.name} data-tooltip-position={tooltippos}>
|
|
46
|
+
<img
|
|
47
|
+
width={35}
|
|
48
|
+
height={35}
|
|
49
|
+
alt='agent avatar left'
|
|
50
|
+
class='avatar group-avatar--agent-left'
|
|
51
|
+
src={props.store.replaceFileUrl(acc.logo_url) || require('../../assets/img/image_default.png')}
|
|
52
|
+
/>
|
|
122
53
|
</div>
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
// >=3 agent
|
|
54
|
+
</div>
|
|
55
|
+
)
|
|
56
|
+
}
|
|
127
57
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
58
|
+
// 1 agent
|
|
59
|
+
if (agents.length === 1) {
|
|
60
|
+
var agent = agents[0]
|
|
61
|
+
var groupClass = mode === 'primary' ? 'group-avatar--agent-middle' : 'group-avatar--agent-left'
|
|
131
62
|
return (
|
|
132
63
|
<div class={`group-avatar group-avatar--${mode}`}>
|
|
133
64
|
<div
|
|
134
65
|
class='d-inline-block pos-relative'
|
|
135
|
-
data-tooltip={
|
|
66
|
+
data-tooltip={agent.fullname || acc.name}
|
|
136
67
|
data-tooltip-position={tooltippos}
|
|
137
68
|
>
|
|
138
69
|
<img
|
|
139
70
|
width={35}
|
|
140
71
|
height={35}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
src={
|
|
144
|
-
this.props.store.replaceFileUrl(leftAgent.avatar_url) || require('../../assets/img/default_avatar.png')
|
|
145
|
-
}
|
|
72
|
+
class={`avatar ${groupClass}`}
|
|
73
|
+
alt='agent avatar'
|
|
74
|
+
src={props.store.replaceFileUrl(agent.avatar_url) || require('../../assets/img/default_avatar.png')}
|
|
146
75
|
/>
|
|
147
76
|
</div>
|
|
77
|
+
</div>
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// 2 agent
|
|
82
|
+
if (agents.length === 2) {
|
|
83
|
+
let leftAgent = agents[0]
|
|
84
|
+
let rightAgent = agents[1]
|
|
85
|
+
return (
|
|
86
|
+
<div class={`group-avatar group-avatar--${mode}`}>
|
|
148
87
|
<div
|
|
149
88
|
class='d-inline-block pos-relative'
|
|
150
|
-
data-tooltip={
|
|
89
|
+
data-tooltip={leftAgent.fullname || acc.name}
|
|
151
90
|
data-tooltip-position={tooltippos}
|
|
152
91
|
>
|
|
153
92
|
<img
|
|
154
|
-
alt='agent avatar middle'
|
|
155
93
|
width={35}
|
|
156
94
|
height={35}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
95
|
+
alt='agent avatar left'
|
|
96
|
+
class='avatar group-avatar--agent-left'
|
|
97
|
+
src={props.store.replaceFileUrl(leftAgent.avatar_url) || require('../../assets/img/default_avatar.png')}
|
|
161
98
|
/>
|
|
162
99
|
</div>
|
|
163
100
|
<div
|
|
@@ -166,16 +103,63 @@ export default class AgentsAvatar extends Com {
|
|
|
166
103
|
data-tooltip-position={tooltippos}
|
|
167
104
|
>
|
|
168
105
|
<img
|
|
106
|
+
alt='agent avatar right'
|
|
169
107
|
width={35}
|
|
170
108
|
height={35}
|
|
171
|
-
alt='agent avatar right'
|
|
172
109
|
class='avatar group-avatar--agent-right'
|
|
173
|
-
src={
|
|
174
|
-
this.props.store.replaceFileUrl(rightAgent.avatar_url) || require('../../assets/img/default_avatar.png')
|
|
175
|
-
}
|
|
110
|
+
src={props.store.replaceFileUrl(rightAgent.avatar_url) || require('../../assets/img/default_avatar.png')}
|
|
176
111
|
/>
|
|
177
112
|
</div>
|
|
178
113
|
</div>
|
|
179
114
|
)
|
|
180
115
|
}
|
|
116
|
+
|
|
117
|
+
// >=3 agent
|
|
118
|
+
|
|
119
|
+
let leftAgent = agents[0]
|
|
120
|
+
let middleAgent = agents[1]
|
|
121
|
+
let rightAgent = agents[2]
|
|
122
|
+
return (
|
|
123
|
+
<div class={`group-avatar group-avatar--${mode}`}>
|
|
124
|
+
<div
|
|
125
|
+
class='d-inline-block pos-relative'
|
|
126
|
+
data-tooltip={leftAgent.fullname || acc.name}
|
|
127
|
+
data-tooltip-position={tooltippos}
|
|
128
|
+
>
|
|
129
|
+
<img
|
|
130
|
+
width={35}
|
|
131
|
+
height={35}
|
|
132
|
+
alt='agent avatar left'
|
|
133
|
+
class='avatar group-avatar--agent-left'
|
|
134
|
+
src={props.store.replaceFileUrl(leftAgent.avatar_url) || require('../../assets/img/default_avatar.png')}
|
|
135
|
+
/>
|
|
136
|
+
</div>
|
|
137
|
+
<div
|
|
138
|
+
class='d-inline-block pos-relative'
|
|
139
|
+
data-tooltip={middleAgent.fullname || acc.name}
|
|
140
|
+
data-tooltip-position={tooltippos}
|
|
141
|
+
>
|
|
142
|
+
<img
|
|
143
|
+
alt='agent avatar middle'
|
|
144
|
+
width={35}
|
|
145
|
+
height={35}
|
|
146
|
+
class='avatar group-avatar--agent-middle'
|
|
147
|
+
src={props.store.replaceFileUrl(middleAgent.avatar_url) || require('../../assets/img/default_avatar.png')}
|
|
148
|
+
/>
|
|
149
|
+
</div>
|
|
150
|
+
<div
|
|
151
|
+
class='d-inline-block pos-relative'
|
|
152
|
+
data-tooltip={rightAgent.fullname || acc.name}
|
|
153
|
+
data-tooltip-position={tooltippos}
|
|
154
|
+
>
|
|
155
|
+
<img
|
|
156
|
+
width={35}
|
|
157
|
+
height={35}
|
|
158
|
+
alt='agent avatar right'
|
|
159
|
+
class='avatar group-avatar--agent-right'
|
|
160
|
+
src={props.store.replaceFileUrl(rightAgent.avatar_url) || require('../../assets/img/default_avatar.png')}
|
|
161
|
+
/>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
)
|
|
181
165
|
}
|
|
@@ -1,26 +1,19 @@
|
|
|
1
1
|
import Buttons from './Buttons.js'
|
|
2
2
|
import sb from '../util/index.js'
|
|
3
|
-
import {
|
|
4
|
-
import { h } from 'preact'
|
|
3
|
+
import {h} from 'preact'
|
|
5
4
|
|
|
6
|
-
export default
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
export default function ButtonAttachments(props) {
|
|
6
|
+
// dont support user sent button yet
|
|
7
|
+
let byType = sb.get(props.ev, 'by.type')
|
|
8
|
+
if (byType === 'user') return null
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
// filter out all button
|
|
11
|
+
let buttons = []
|
|
12
|
+
let attachments = sb.get(props.ev, 'data.message.attachments', [])
|
|
13
|
+
sb.each(attachments, (att, i) => {
|
|
14
|
+
if (!att || sb.get(att, 'type') !== 'button') return
|
|
15
|
+
sb.each(sb.get(att, 'buttons') || [], (btn) => buttons.push(btn))
|
|
16
|
+
})
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
let buttons = []
|
|
18
|
-
let attachments = sb.get(this.props.ev, 'data.message.attachments', [])
|
|
19
|
-
sb.each(attachments, (att, i) => {
|
|
20
|
-
if (!att || sb.get(att, 'type') !== 'button') return
|
|
21
|
-
sb.each(sb.get(att, 'buttons') || [], btn => buttons.push(btn))
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
return <Buttons store={this.props.store} buttons={buttons} t={this.props.t}/>
|
|
25
|
-
}
|
|
18
|
+
return <Buttons store={props.store} buttons={buttons} t={props.t} />
|
|
26
19
|
}
|
package/src/chatbox/Buttons.js
CHANGED
|
@@ -1,44 +1,36 @@
|
|
|
1
1
|
import sb from '../util/index.js'
|
|
2
|
-
import {Com} from '../common.js'
|
|
3
2
|
import {h} from 'preact'
|
|
4
3
|
|
|
5
|
-
export default
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
export default function Buttons(props) {
|
|
5
|
+
if (sb.size(props.buttons) === 0) return null
|
|
6
|
+
var $buttons = sb.map(props.buttons, (button, index) => {
|
|
7
|
+
if (button.type === 'call_button') {
|
|
8
|
+
return (
|
|
9
|
+
<a class='url-button-attachment' href={'tel:' + button.phone_number} key={index} title={button.title}>
|
|
10
|
+
{props.t.i18n(button.i18n_title) || button.title}
|
|
11
|
+
</a>
|
|
12
|
+
)
|
|
13
|
+
}
|
|
9
14
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
</a>
|
|
18
|
-
)
|
|
19
|
-
}
|
|
15
|
+
if (button.type === 'url_button') {
|
|
16
|
+
return (
|
|
17
|
+
<a class='url-button-attachment' href={button.url} target='_blank' key={index} title={button.title}>
|
|
18
|
+
{props.t.i18n(button.i18n_title) || button.title || button.url}
|
|
19
|
+
</a>
|
|
20
|
+
)
|
|
21
|
+
}
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
if (button.type === 'postback_button') {
|
|
24
|
+
return (
|
|
25
|
+
<a class='url-button-attachment' href='javascript:;' onClick={(_) => props.onSelect(button)}>
|
|
26
|
+
{props.t.i18n(button.i18n_title) || button.title}
|
|
27
|
+
</a>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
)
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (button.type === 'widget_ask_desktop_notify_button') return null
|
|
38
|
-
if (button.type === 'widget_ask_contact_info_button') return null
|
|
39
|
-
return null
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
return <div class='button-attachments'>{$buttons}</div>
|
|
43
|
-
}
|
|
31
|
+
if (button.type === 'widget_ask_desktop_notify_button') return null
|
|
32
|
+
if (button.type === 'widget_ask_contact_info_button') return null
|
|
33
|
+
return null
|
|
34
|
+
})
|
|
35
|
+
return <div class='button-attachments'>{$buttons}</div>
|
|
44
36
|
}
|
|
@@ -128,7 +128,12 @@ export default class ChatButton extends Com {
|
|
|
128
128
|
|
|
129
129
|
let greeting = sb.get(accountSetting, 'greeting', {})
|
|
130
130
|
let text = this.props.t.i18n(sb.get(greeting, 'greeting', {})) || greeting.message
|
|
131
|
-
|
|
131
|
+
|
|
132
|
+
let enabled = greeting.enabled
|
|
133
|
+
if (this.props.store.isMobile()) {
|
|
134
|
+
enabled = enabled && !sb.get(greeting, 'mobile_disabled')
|
|
135
|
+
}
|
|
136
|
+
if (!text || !enabled) {
|
|
132
137
|
this.setState({previewEvent: {}})
|
|
133
138
|
return
|
|
134
139
|
}
|
package/src/chatbox/Rating.js
CHANGED
|
@@ -121,7 +121,7 @@ export default class Rating extends Com {
|
|
|
121
121
|
let foundUser = false
|
|
122
122
|
sb.map(this.props.store.listEvents(this.props.cid), (ev) => {
|
|
123
123
|
if (!ev || !ev.by) return
|
|
124
|
-
if (ev.by.type == 'user') foundUser = true
|
|
124
|
+
if (ev.by.type == 'user' && ev.type == 'message_sent') foundUser = true
|
|
125
125
|
if (ev.type === 'conversation_state_updated' && sb.get(ev, 'data.conversation.state') === 'ended') {
|
|
126
126
|
ended = ev
|
|
127
127
|
}
|
package/src/chatbox/Widget.js
CHANGED
|
@@ -258,7 +258,8 @@ export default class Widget extends Com {
|
|
|
258
258
|
}
|
|
259
259
|
|
|
260
260
|
this.setState({formData})
|
|
261
|
-
|
|
261
|
+
// dont steal focus on mobile or trying to override form
|
|
262
|
+
if (!this.props.store.isMobile() && !form._updated) this.focusInput()
|
|
262
263
|
}
|
|
263
264
|
|
|
264
265
|
onBooleanChange(key, e) {
|