This commit is contained in:
syuilo 2018-03-05 20:09:26 +09:00
parent 4294310b2f
commit ff0c76be97
4 changed files with 48 additions and 11 deletions

View File

@ -56,6 +56,7 @@ export default Vue.extend({
},
watch: {
value() {
(this.$el).style.transition = 'all 0.3s';
(this.$refs.input as any).checked = this.checked;
}
},

View File

@ -69,11 +69,21 @@ export default Vue.extend({
margin-right 8px
> footer
padding 16px
text-align center
color #ccc
border-top solid 1px #eaeaea
border-bottom-left-radius 4px
border-bottom-right-radius 4px
> *
display block
margin 0
padding 16px
width 100%
text-align center
color #ccc
border-top solid 1px #eaeaea
border-bottom-left-radius 4px
border-bottom-right-radius 4px
> button
&:hover
background #f5f5f5
&:active
background #eee
</style>

View File

@ -18,6 +18,13 @@
<x-profile/>
</section>
<section class="web" v-show="page == 'web'">
<h1>動作</h1>
<mk-switch v-model="fetchOnScroll" @change="onChangeFetchOnScroll" text="スクロールで自動読み込み">
<span>ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます</span>
</mk-switch>
</section>
<section class="web" v-show="page == 'web'">
<h1>デザイン</h1>
<div class="div">
@ -186,6 +193,7 @@ export default Vue.extend({
version,
latestVersion: undefined,
checkingForUpdate: false,
fetchOnScroll: true,
autoWatch: true,
enableSounds: localStorage.getItem('enableSounds') == 'true',
lang: localStorage.getItem('lang') || '',
@ -223,6 +231,16 @@ export default Vue.extend({
if ((this as any).os.i.settings.auto_watch != null) {
this.autoWatch = (this as any).os.i.settings.auto_watch;
this.$watch('os.i.settings.auto_watch', v => {
this.autoWatch = v;
});
}
if ((this as any).os.i.client_settings.fetchOnScroll != null) {
this.fetchOnScroll = (this as any).os.i.client_settings.fetchOnScroll;
this.$watch('os.i.client_settings.fetchOnScroll', v => {
this.fetchOnScroll = v;
});
}
},
methods: {
@ -230,6 +248,12 @@ export default Vue.extend({
this.$router.push('/i/customize-home');
this.$emit('done');
},
onChangeFetchOnScroll(v) {
(this as any).api('i/update_client_setting', {
name: 'fetchOnScroll',
value: v
});
},
onChangeAutoWatch(v) {
(this as any).api('i/update', {
auto_watch: v

View File

@ -8,10 +8,10 @@
%fa:R comments%自分の投稿や自分がフォローしているユーザーの投稿が表示されます
</p>
<mk-posts :posts="posts" ref="timeline">
<div slot="footer">
<template v-if="!moreFetching">%fa:comments%</template>
<button slot="footer" @click="more" :disabled="moreFetching" :style="{ cursor: moreFetching ? 'wait' : 'pointer' }">
<template v-if="!moreFetching">もっと見る</template>
<template v-if="moreFetching">%fa:spinner .pulse .fw%</template>
</div>
</button>
</mk-posts>
</div>
</template>
@ -105,8 +105,10 @@ export default Vue.extend({
this.fetch();
},
onScroll() {
const current = window.scrollY + window.innerHeight;
if (current > document.body.offsetHeight - 8) this.more();
if ((this as any).os.i.client_settings.fetchOnScroll !== false) {
const current = window.scrollY + window.innerHeight;
if (current > document.body.offsetHeight - 8) this.more();
}
},
onKeydown(e) {
if (e.target.tagName != 'INPUT' && e.target.tagName != 'TEXTAREA') {