Skip to content

Commit 4059b28

Browse files
committed
2.3.8 Fix to prevent iOS delay clicking bugs
1 parent 198b88d commit 4059b28

File tree

12 files changed

+182
-86
lines changed

12 files changed

+182
-86
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cordova-template-framework7-vue-webpack",
3-
"version": "2.3.7",
3+
"version": "2.3.8",
44
"description": "Cordova template with framework7, vue 2 and webpack 2.",
55
"main": "index.js",
66
"scripts": {

template_src/package.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
"babel-plugin-transform-runtime": "^6.23.0",
1717
"babel-preset-env": "^1.6.1",
1818
"cheerio": "^1.0.0-rc.2",
19-
"chokidar": "^2.0.4",
19+
"chokidar": "^2.1.5",
2020
"clean-webpack-plugin": "^1.0.0",
21-
"css-loader": "^2.1.0",
21+
"css-loader": "^2.1.1",
2222
"current-device": "^0.8.0",
2323
"epipebomb": "^1.0.0",
2424
"extract-text-webpack-plugin": "4.0.0-beta.0",
@@ -30,27 +30,28 @@
3030
"sass-loader": "^7.1.0",
3131
"style-loader": "^0.23.1",
3232
"svg-url-loader": "^2.0.2",
33-
"uglify-js": "^3.2.0",
33+
"uglify-js": "^3.5.3",
3434
"uglifyjs-webpack-plugin": "^2.0.1",
3535
"url-loader": "^1.1.2",
3636
"vue-hot-reload-api": "^2.0.11",
3737
"vue-html-loader": "^1.2.4",
3838
"vue-loader": "^15.4.2",
3939
"vue-style-loader": "^4.1.2",
40-
"vue-template-compiler": "^2.2.4",
40+
"vue-template-compiler": "^2.6.10",
4141
"webpack": "^4.20.2",
42-
"webpack-cli": "^3.1.2",
42+
"webpack-cli": "^3.3.0",
4343
"webpack-dev-server": "^3.1.9",
4444
"webpack-merge": "^4.2.1"
4545
},
4646
"dependencies": {
4747
"font-awesome": "^4.7.0",
48-
"framework7": "^4.0.6",
49-
"framework7-icons": "^2.1.1",
50-
"framework7-vue": "^4.0.6",
48+
"framework7": "^4.2.0",
49+
"framework7-icons": "^2.3.0",
50+
"framework7-vue": "^4.2.0",
5151
"loglevel": "^1.4.1",
5252
"material-design-icons": "^3.0.1",
53-
"vue": "^2.5.17",
54-
"vuex": "^3.1.0"
53+
"vue": "^2.6.10",
54+
"vuex": "^3.1.0",
55+
"fastclick": "^1.0.6"
5556
}
5657
}
Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<f7-page>
3-
<f7-navbar title="About F7" back-link="Back" sliding></f7-navbar>
3+
<f7-navbar large title="About" title-large="About" back-link="Framework7"></f7-navbar>
44
<f7-block-title>Welcome to Framework7</f7-block-title>
55
<f7-block strong>
66
<p>Framework7 - is a free and open source HTML mobile framework to develop hybrid mobile apps or web apps with iOS or Android (Material) native look and feel. It is also an indispensable prototyping apps tool to show working app prototype as soon as possible in case you need to. Framework7 is created by Vladimir Kharlampidi (iDangero.us).</p>
@@ -11,6 +11,14 @@
1111
</f7-page>
1212
</template>
1313
<script>
14-
export default {
14+
import { f7Page, f7Navbar, f7BlockTitle, f7Block } from 'framework7-vue';
15+
16+
export default {
17+
components: {
18+
f7Page,
19+
f7Navbar,
20+
f7BlockTitle,
21+
f7Block,
22+
},
1523
};
16-
</script>
24+
</script>

template_src/src/assets/vue/pages/chat.vue

Lines changed: 76 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,22 @@
55
<f7-messagebar
66
:placeholder="placeholder"
77
ref="messagebar"
8-
:attachmentsVisible="attachmentsVisible"
9-
:sheetVisible="sheetVisible"
8+
:attachments-visible="attachmentsVisible"
9+
:sheet-visible="sheetVisible"
10+
:value="messageText"
11+
@input="messageText = $event.target.value"
1012
>
1113
<f7-link
12-
icon-if-ios="f7:camera_fill"
13-
icon-if-md="f7:camera_alt"
14+
icon-ios="f7:camera_fill"
15+
icon-aurora="f7:camera_fill"
16+
icon-md="material:camera_alt"
1417
slot="inner-start"
15-
@click="sheetToggle"
18+
@click="sheetVisible = !sheetVisible"
1619
></f7-link>
1720
<f7-link
18-
icon-if-ios="f7:arrow_up_fill"
19-
icon-if-md="material:send"
21+
icon-ios="f7:arrow_up_round_fill"
22+
icon-aurora="f7:arrow_up_round_fill"
23+
icon-md="material:send"
2024
slot="inner-end"
2125
@click="sendMessage"
2226
></f7-link>
@@ -45,23 +49,50 @@
4549
v-for="(message, index) in messagesData"
4650
:key="index"
4751
:type="message.type"
48-
:text="message.text"
4952
:image="message.image"
5053
:name="message.name"
5154
:avatar="message.avatar"
5255
:first="isFirstMessage(message, index)"
5356
:last="isLastMessage(message, index)"
5457
:tail="isTailMessage(message, index)"
58+
>
59+
<span slot="text" v-if="message.text" v-html="message.text"></span>
60+
</f7-message>
61+
<f7-message v-if="typingMessage"
62+
type="received"
63+
:typing="true"
64+
:first="true"
65+
:last="true"
66+
:tail="true"
67+
:header="`${typingMessage.name} is typing`"
68+
:avatar="typingMessage.avatar"
5569
></f7-message>
5670
</f7-messages>
5771
</f7-page>
5872
</template>
5973
<script>
74+
import { f7Navbar, f7Page, f7Messages, f7MessagesTitle, f7Message, f7Messagebar, f7Link, f7MessagebarAttachments, f7MessagebarAttachment, f7MessagebarSheet, f7MessagebarSheetImage } from 'framework7-vue';
75+
6076
export default {
77+
components: {
78+
f7Navbar,
79+
f7Page,
80+
f7Messages,
81+
f7MessagesTitle,
82+
f7Message,
83+
f7Messagebar,
84+
f7MessagebarAttachments,
85+
f7MessagebarAttachment,
86+
f7MessagebarSheet,
87+
f7MessagebarSheetImage,
88+
f7Link,
89+
},
6190
data() {
6291
return {
6392
attachments: [],
6493
sheetVisible: false,
94+
typingMessage: null,
95+
messageText: '',
6596
messagesData: [
6697
{
6798
type: 'sent',
@@ -75,13 +106,13 @@
75106
name: 'Kate',
76107
type: 'received',
77108
text: 'Hi, I am good!',
78-
avatar: 'http://lorempixel.com/100/100/people/9',
109+
avatar: 'https://cdn.framework7.io/placeholder/people-100x100-9.jpg',
79110
},
80111
{
81112
name: 'Blue Ninja',
82113
type: 'received',
83114
text: 'Hi there, I am also fine, thanks! And how are you?',
84-
avatar: 'http://lorempixel.com/100/100/people/7',
115+
avatar: 'https://cdn.framework7.io/placeholder/people-100x100-7.jpg',
85116
},
86117
{
87118
type: 'sent',
@@ -93,48 +124,48 @@
93124
},
94125
{
95126
type: 'sent',
96-
image: 'http://lorempixel.com/200/260/cats/4/',
127+
image: 'https://cdn.framework7.io/placeholder/cats-200x260-4.jpg',
97128
98129
},
99130
{
100131
name: 'Kate',
101132
type: 'received',
102133
text: 'Nice!',
103-
avatar: 'http://lorempixel.com/100/100/people/9',
134+
avatar: 'https://cdn.framework7.io/placeholder/people-100x100-9.jpg',
104135
},
105136
{
106137
name: 'Kate',
107138
type: 'received',
108139
text: 'Like it very much!',
109-
avatar: 'http://lorempixel.com/100/100/people/9',
140+
avatar: 'https://cdn.framework7.io/placeholder/people-100x100-9.jpg',
110141
},
111142
{
112143
name: 'Blue Ninja',
113144
type: 'received',
114145
text: 'Awesome!',
115-
avatar: 'http://lorempixel.com/100/100/people/7',
146+
avatar: 'https://cdn.framework7.io/placeholder/people-100x100-7.jpg',
116147
},
117148
],
118149
images: [
119-
'http://lorempixel.com/300/300/cats/1/',
120-
'http://lorempixel.com/200/300/cats/2/',
121-
'http://lorempixel.com/400/300/cats/3/',
122-
'http://lorempixel.com/300/150/cats/4/',
123-
'http://lorempixel.com/150/300/cats/5/',
124-
'http://lorempixel.com/300/300/cats/6/',
125-
'http://lorempixel.com/300/300/cats/7/',
126-
'http://lorempixel.com/200/300/cats/8/',
127-
'http://lorempixel.com/400/300/cats/9/',
128-
'http://lorempixel.com/300/150/cats/10/',
150+
'https://cdn.framework7.io/placeholder/cats-300x300-1.jpg',
151+
'https://cdn.framework7.io/placeholder/cats-200x300-2.jpg',
152+
'https://cdn.framework7.io/placeholder/cats-400x300-3.jpg',
153+
'https://cdn.framework7.io/placeholder/cats-300x150-4.jpg',
154+
'https://cdn.framework7.io/placeholder/cats-150x300-5.jpg',
155+
'https://cdn.framework7.io/placeholder/cats-300x300-6.jpg',
156+
'https://cdn.framework7.io/placeholder/cats-300x300-7.jpg',
157+
'https://cdn.framework7.io/placeholder/cats-200x300-8.jpg',
158+
'https://cdn.framework7.io/placeholder/cats-400x300-9.jpg',
159+
'https://cdn.framework7.io/placeholder/cats-300x150-10.jpg',
129160
],
130161
people: [
131162
{
132163
name: 'Kate Johnson',
133-
avatar: 'http://lorempixel.com/100/100/people/9',
164+
avatar: 'https://cdn.framework7.io/placeholder/people-100x100-9.jpg',
134165
},
135166
{
136167
name: 'Blue Ninja',
137-
avatar: 'http://lorempixel.com/100/100/people/7',
168+
avatar: 'https://cdn.framework7.io/placeholder/people-100x100-7.jpg',
138169
},
139170
],
140171
answers: [
@@ -154,21 +185,6 @@
154185
responseInProgress: false,
155186
};
156187
},
157-
// Resize page when attachments or sheet become visible
158-
watch: {
159-
attachmentsVisible() {
160-
const self = this;
161-
self.$nextTick(() => {
162-
self.messagebar.resizePage();
163-
});
164-
},
165-
sheetVisible() {
166-
const self = this;
167-
self.$nextTick(() => {
168-
self.messagebar.resizePage();
169-
});
170-
},
171-
},
172188
computed: {
173189
attachmentsVisible() {
174190
const self = this;
@@ -179,6 +195,13 @@
179195
return self.attachments.length > 0 ? 'Add comment or Send' : 'Message';
180196
},
181197
},
198+
mounted() {
199+
const self = this;
200+
self.$f7ready(() => {
201+
self.messagebar = self.$refs.messagebar.f7Messagebar;
202+
self.messages = self.$refs.messages.f7Messages;
203+
});
204+
},
182205
methods: {
183206
isFirstMessage(message, index) {
184207
const self = this;
@@ -201,10 +224,6 @@
201224
if (!nextMessage || nextMessage.type !== message.type || nextMessage.name !== message.name) return true;
202225
return false;
203226
},
204-
sheetToggle() {
205-
const self = this;
206-
self.sheetVisible = !self.sheetVisible;
207-
},
208227
deleteAttachment(image) {
209228
const self = this;
210229
const index = self.attachments.indexOf(image);
@@ -224,24 +243,28 @@
224243
},
225244
sendMessage() {
226245
const self = this;
227-
const text = self.messagebar.getValue().replace(/\n/g, '<br>').trim();
246+
const text = self.messageText.replace(/\n/g, '<br>').trim();
228247
const messagesToSend = [];
229248
self.attachments.forEach((attachment) => {
230249
messagesToSend.push({
231250
image: attachment,
232251
});
233252
});
234-
if (text.trim().length) {
253+
if (text.length) {
235254
messagesToSend.push({
236255
text,
237256
});
238257
}
258+
if (messagesToSend.length === 0) {
259+
return;
260+
}
261+
239262
// Reset attachments
240263
self.attachments = [];
241264
// Hide sheet
242265
self.sheetVisible = false;
243266
// Clear area
244-
self.messagebar.clear();
267+
self.messageText = '';
245268
// Focus area
246269
if (text.length) self.messagebar.focus();
247270
// Send message
@@ -253,29 +276,22 @@
253276
setTimeout(() => {
254277
const answer = self.answers[Math.floor(Math.random() * self.answers.length)];
255278
const person = self.people[Math.floor(Math.random() * self.people.length)];
256-
self.messages.showTyping({
257-
header: `${person.name} is typing`,
279+
self.typingMessage = {
280+
name: person.name,
258281
avatar: person.avatar,
259-
});
282+
};
260283
setTimeout(() => {
261284
self.messagesData.push({
262285
text: answer,
263286
type: 'received',
264287
name: person.name,
265288
avatar: person.avatar,
266289
});
267-
self.messages.hideTyping();
290+
self.typingMessage = null;
268291
self.responseInProgress = false;
269292
}, 4000);
270293
}, 1000);
271-
}
294+
},
272295
},
273-
mounted() {
274-
this.$f7ready((f7) => {
275-
const self = this;
276-
self.messagebar = self.$refs.messagebar.f7Messagebar;
277-
self.messages = self.$refs.messages.f7Messages;
278-
})
279-
}
280296
};
281297
</script>

template_src/src/assets/vue/pages/color-themes.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,17 @@
2424
</f7-page>
2525
</template>
2626
<script>
27+
import { f7Page, f7Block, f7BlockTitle, f7Navbar, f7Row, f7Col, f7Button } from "framework7-vue";
2728
export default {
29+
components: {
30+
f7Page,
31+
f7Block,
32+
f7BlockTitle,
33+
f7Navbar,
34+
f7Row,
35+
f7Col,
36+
f7Button
37+
},
2838
data() {
2939
const colors = [
3040
'red',

template_src/src/assets/vue/pages/dynamic-route.vue

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,13 @@
2727
</template>
2828

2929
<script>
30-
export default {}
30+
import { f7Page, f7Navbar, f7Block, f7Link } from "framework7-vue";
31+
export default {
32+
components: {
33+
f7Page,
34+
f7Navbar,
35+
f7Block,
36+
f7Link
37+
}
38+
}
3139
</script>

0 commit comments

Comments
 (0)