forked from FoundKeyGang/FoundKey
アニメーション停止箇所の追加 (#4138)
This commit is contained in:
parent
7b7359fbdc
commit
4162981081
5 changed files with 48 additions and 12 deletions
|
@ -5,9 +5,9 @@
|
||||||
|
|
||||||
<p :class="$style.fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>
|
<p :class="$style.fetching" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>
|
||||||
<div :class="$style.stream" v-if="!fetching && images.length > 0">
|
<div :class="$style.stream" v-if="!fetching && images.length > 0">
|
||||||
<div v-for="image in images"
|
<div v-for="(image, i) in images" :key="i"
|
||||||
:class="$style.img"
|
:class="$style.img"
|
||||||
:style="`background-image: url(${image.thumbnailUrl || image.url})`"
|
:style="`background-image: url(${thumbnail(image)})`"
|
||||||
draggable="true"
|
draggable="true"
|
||||||
@dragstart="onDragstart(image, $event)"
|
@dragstart="onDragstart(image, $event)"
|
||||||
></div>
|
></div>
|
||||||
|
@ -20,6 +20,7 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import define from '../../../common/define-widget';
|
import define from '../../../common/define-widget';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
|
import { getStaticImageUrl } from '../../scripts/get-static-image-url';
|
||||||
|
|
||||||
export default define({
|
export default define({
|
||||||
name: 'photo-stream',
|
name: 'photo-stream',
|
||||||
|
@ -77,6 +78,12 @@ export default define({
|
||||||
e.dataTransfer.effectAllowed = 'move';
|
e.dataTransfer.effectAllowed = 'move';
|
||||||
e.dataTransfer.setData('mk_drive_file', JSON.stringify(file));
|
e.dataTransfer.setData('mk_drive_file', JSON.stringify(file));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
thumbnail(image: any): string {
|
||||||
|
return this.$store.state.device.disableShowingAnimatedImages
|
||||||
|
? getStaticImageUrl(image.thumbnailUrl)
|
||||||
|
: image.thumbnailUrl;
|
||||||
|
},
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
<p class="title"><fa icon="camera"/>{{ $t('title') }}</p>
|
<p class="title"><fa icon="camera"/>{{ $t('title') }}</p>
|
||||||
<p class="initializing" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('loading') }}<mk-ellipsis/></p>
|
<p class="initializing" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('loading') }}<mk-ellipsis/></p>
|
||||||
<div class="stream" v-if="!fetching && images.length > 0">
|
<div class="stream" v-if="!fetching && images.length > 0">
|
||||||
<div v-for="image in images" class="img"
|
<div v-for="(image, i) in images" :key="i" class="img"
|
||||||
:style="`background-image: url(${image.thumbnailUrl})`"
|
:style="`background-image: url(${thumbnail(image)})`"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
<p class="empty" v-if="!fetching && images.length == 0">{{ $t('no-photos') }}</p>
|
<p class="empty" v-if="!fetching && images.length == 0">{{ $t('no-photos') }}</p>
|
||||||
|
@ -14,6 +14,8 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../../i18n';
|
import i18n from '../../../../i18n';
|
||||||
|
import { getStaticImageUrl } from '../../../../common/scripts/get-static-image-url';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
i18n: i18n('desktop/views/pages/user/user.photos.vue'),
|
i18n: i18n('desktop/views/pages/user/user.photos.vue'),
|
||||||
props: ['user'],
|
props: ['user'],
|
||||||
|
@ -44,7 +46,14 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
this.fetching = false;
|
this.fetching = false;
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
methods: {
|
||||||
|
thumbnail(image: any): string {
|
||||||
|
return this.$store.state.device.disableShowingAnimatedImages
|
||||||
|
? getStaticImageUrl(image.thumbnailUrl)
|
||||||
|
: image.thumbnailUrl;
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div class="mk-note-card">
|
<div class="mk-note-card">
|
||||||
<a :href="note | notePage">
|
<a :href="note | notePage">
|
||||||
<header>
|
<header>
|
||||||
<img :src="note.user.avatarUrl" alt="avatar"/>
|
<img :src="avator" alt="avatar"/>
|
||||||
<h3><mk-user-name :user="note.user"/></h3>
|
<h3><mk-user-name :user="note.user"/></h3>
|
||||||
</header>
|
</header>
|
||||||
<div>
|
<div>
|
||||||
|
@ -16,13 +16,19 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import summary from '../../../../../misc/get-note-summary';
|
import summary from '../../../../../misc/get-note-summary';
|
||||||
|
import { getStaticImageUrl } from '../../../common/scripts/get-static-image-url';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: ['note'],
|
props: ['note'],
|
||||||
computed: {
|
computed: {
|
||||||
text(): string {
|
text(): string {
|
||||||
return summary(this.note);
|
return summary(this.note);
|
||||||
}
|
},
|
||||||
|
avator(): string {
|
||||||
|
return this.$store.state.device.disableShowingAnimatedImages
|
||||||
|
? getStaticImageUrl(this.note.user.avatarUrl)
|
||||||
|
: this.note.user.avatarUrl;
|
||||||
|
},
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<mk-ui>
|
<mk-ui>
|
||||||
<template slot="header" v-if="!fetching"><img :src="user.avatarUrl" alt="">
|
<template slot="header" v-if="!fetching"><img :src="avator" alt="">
|
||||||
<mk-user-name :user="user"/>
|
<mk-user-name :user="user"/>
|
||||||
</template>
|
</template>
|
||||||
<main v-if="!fetching">
|
<main v-if="!fetching">
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="top">
|
<div class="top">
|
||||||
<a class="avatar">
|
<a class="avatar">
|
||||||
<img :src="user.avatarUrl" alt="avatar"/>
|
<img :src="avator" alt="avatar"/>
|
||||||
</a>
|
</a>
|
||||||
<button class="menu" ref="menu" @click="menu"><fa icon="ellipsis-h"/></button>
|
<button class="menu" ref="menu" @click="menu"><fa icon="ellipsis-h"/></button>
|
||||||
<mk-follow-button v-if="$store.getters.isSignedIn && $store.state.i.id != user.id" :user="user"/>
|
<mk-follow-button v-if="$store.getters.isSignedIn && $store.state.i.id != user.id" :user="user"/>
|
||||||
|
@ -82,6 +82,7 @@ import parseAcct from '../../../../../misc/acct/parse';
|
||||||
import Progress from '../../../common/scripts/loading';
|
import Progress from '../../../common/scripts/loading';
|
||||||
import XUserMenu from '../../../common/views/components/user-menu.vue';
|
import XUserMenu from '../../../common/views/components/user-menu.vue';
|
||||||
import XHome from './user/home.vue';
|
import XHome from './user/home.vue';
|
||||||
|
import { getStaticImageUrl } from '../../../common/scripts/get-static-image-url';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
i18n: i18n('mobile/views/pages/user.vue'),
|
i18n: i18n('mobile/views/pages/user.vue'),
|
||||||
|
@ -99,6 +100,11 @@ export default Vue.extend({
|
||||||
age(): number {
|
age(): number {
|
||||||
return age(this.user.profile.birthday);
|
return age(this.user.profile.birthday);
|
||||||
},
|
},
|
||||||
|
avator(): string {
|
||||||
|
return this.$store.state.device.disableShowingAnimatedImages
|
||||||
|
? getStaticImageUrl(this.user.avatarUrl)
|
||||||
|
: this.user.avatarUrl;
|
||||||
|
},
|
||||||
style(): any {
|
style(): any {
|
||||||
if (this.user.bannerUrl == null) return {};
|
if (this.user.bannerUrl == null) return {};
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
<div class="root photos">
|
<div class="root photos">
|
||||||
<p class="initializing" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>
|
<p class="initializing" v-if="fetching"><fa icon="spinner" pulse fixed-width/>{{ $t('@.loading') }}<mk-ellipsis/></p>
|
||||||
<div class="stream" v-if="!fetching && images.length > 0">
|
<div class="stream" v-if="!fetching && images.length > 0">
|
||||||
<a v-for="image in images"
|
<a v-for="(image, i) in images" :key="i"
|
||||||
class="img"
|
class="img"
|
||||||
:style="`background-image: url(${image.media.thumbnailUrl})`"
|
:style="`background-image: url(${thumbnail(image.media)})`"
|
||||||
:href="image.note | notePage"
|
:href="image.note | notePage"
|
||||||
></a>
|
></a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -15,6 +15,7 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../../i18n';
|
import i18n from '../../../../i18n';
|
||||||
|
import { getStaticImageUrl } from '../../../../common/scripts/get-static-image-url';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
i18n: i18n('mobile/views/pages/user/home.photos.vue'),
|
i18n: i18n('mobile/views/pages/user/home.photos.vue'),
|
||||||
|
@ -50,7 +51,14 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
this.fetching = false;
|
this.fetching = false;
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
methods: {
|
||||||
|
thumbnail(image: any): string {
|
||||||
|
return this.$store.state.device.disableShowingAnimatedImages
|
||||||
|
? getStaticImageUrl(image.thumbnailUrl)
|
||||||
|
: image.thumbnailUrl;
|
||||||
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue