This commit is contained in:
syuilo 2022-12-30 13:52:40 +09:00
parent 632c7d2ac6
commit 93d3cc310d
11 changed files with 26 additions and 13 deletions

View file

@ -1,6 +1,8 @@
<template>
<div class="tdflqwzn" :class="{ isMe }">
<XReaction v-for="(count, reaction) in note.reactions" :key="reaction" :reaction="reaction" :count="count" :is-initial="initialReactions.has(reaction)" :note="note"/>
<TransitionGroup :name="$store.state.animation ? 'x' : ''">
<XReaction v-for="(count, reaction) in note.reactions" :key="reaction" :reaction="reaction" :count="count" :is-initial="initialReactions.has(reaction)" :note="note"/>
</TransitionGroup>
</div>
</template>
@ -20,6 +22,17 @@ const isMe = computed(() => $i && $i.id === props.note.userId);
</script>
<style lang="scss" scoped>
.x-move, .x-enter-active, .x-leave-active {
transition: opacity 0.2s cubic-bezier(0,.5,.5,1), transform 0.2s cubic-bezier(0,.5,.5,1) !important;
}
.x-enter-from, .x-leave-to {
opacity: 0;
transform: scale(0.7);
}
.x-leave-active {
position: absolute;
}
.tdflqwzn {
margin: 4px -2px 0 -2px;

View file

@ -7,7 +7,7 @@
<iframe ref="tweet" scrolling="no" frameborder="no" :style="{ position: 'relative', width: '100%', height: `${tweetHeight}px` }" :src="`https://platform.twitter.com/embed/index.html?embedId=${embedId}&amp;hideCard=false&amp;hideThread=false&amp;lang=en&amp;theme=${$store.state.darkMode ? 'dark' : 'light'}&amp;id=${tweetId}`"></iframe>
</div>
<div v-else class="mk-url-preview">
<Transition :name="$store.state.animation ? 'zoom' : ''" mode="out-in">
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" mode="out-in">
<component :is="self ? 'MkA' : 'a'" v-if="!fetching" class="link" :class="{ compact }" :[attr]="self ? url.substr(local.length) : url" rel="nofollow noopener" :target="target" :title="url">
<div v-if="thumbnail" class="thumbnail" :style="`background-image: url('${thumbnail}')`">
</div>

View file

@ -1,6 +1,6 @@
<template>
<div class="fgmtyycl" :style="{ zIndex, top: top + 'px', left: left + 'px' }">
<Transition :name="$store.state.animation ? 'zoom' : ''" @after-leave="emit('closed')">
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" @after-leave="emit('closed')">
<MkUrlPreview v-if="showing" class="_popup _shadow" :url="url"/>
</Transition>
</div>

View file

@ -1,5 +1,5 @@
<template>
<Transition :name="$store.state.animation ? 'zoom' : ''" appear>
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" appear>
<div class="mjndxjcg">
<img src="https://xn--931a.moe/assets/error.jpg" class="_ghost"/>
<p><i class="ti ti-alert-triangle"></i> {{ i18n.ts.somethingHappened }}</p>

View file

@ -1,6 +1,6 @@
<template>
<MkLoading v-if="!loaded"/>
<Transition :name="$store.state.animation ? 'zoom' : ''" appear>
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" appear>
<div v-show="loaded" class="mjndxjch">
<img src="https://xn--931a.moe/assets/error.jpg" class="_ghost"/>
<p><b><i class="ti ti-alert-triangle"></i> {{ i18n.ts.pageLoadError }}</b></p>

View file

@ -1,6 +1,6 @@
<template>
<div class="wbrkwale">
<Transition :name="$store.state.animation ? 'zoom' : ''" mode="out-in">
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" mode="out-in">
<MkLoading v-if="fetching"/>
<div v-else class="instances">
<MkA v-for="(instance, i) in instances" :key="instance.id" v-tooltip.mfm.noDelay="`${instance.name}\n${instance.host}\n${instance.softwareName} ${instance.softwareVersion}`" :to="`/instance-info/${instance.host}`" class="instance">

View file

@ -1,6 +1,6 @@
<template>
<div>
<Transition :name="$store.state.animation ? 'zoom' : ''" mode="out-in">
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" mode="out-in">
<MkLoading v-if="fetching"/>
<div v-else :class="$style.root" class="_panel">
<MkA v-for="user in moderators" :key="user.id" class="user" :to="`/user-info/${user.id}`">

View file

@ -1,6 +1,6 @@
<template>
<div>
<Transition :name="$store.state.animation ? 'zoom' : ''" mode="out-in">
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" mode="out-in">
<MkLoading v-if="fetching"/>
<div v-else :class="$style.root">
<div class="item _panel users">

View file

@ -1,6 +1,6 @@
<template>
<div :class="$style.root">
<Transition :name="$store.state.animation ? 'zoom' : ''" mode="out-in">
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" mode="out-in">
<MkLoading v-if="fetching"/>
<div v-else class="users">
<MkA v-for="(user, i) in newUsers" :key="user.id" :to="`/user-info/${user.id}`" class="user">

View file

@ -3,7 +3,7 @@
<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="700">
<div class="mk-list-page">
<Transition :name="$store.state.animation ? 'zoom' : ''" mode="out-in">
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" mode="out-in">
<div v-if="list" class="_section">
<div class="_content">
<MkButton inline @click="addUser()">{{ i18n.ts.addUser }}</MkButton>
@ -13,7 +13,7 @@
</div>
</Transition>
<Transition :name="$store.state.animation ? 'zoom' : ''" mode="out-in">
<Transition :name="$store.state.animation ? '_transition_zoom' : ''" mode="out-in">
<div v-if="list" class="_section members _gap">
<div class="_title">{{ i18n.ts.members }}</div>
<div class="_content">

View file

@ -512,10 +512,10 @@ hr {
transition-timing-function: cubic-bezier(0,.5,.5,1);
}
.zoom-enter-active, .zoom-leave-active {
._transition_zoom-enter-active, ._transition_zoom-leave-active {
transition: opacity 0.5s, transform 0.5s !important;
}
.zoom-enter-from, .zoom-leave-to {
._transition_zoom-enter-from, ._transition_zoom-leave-to {
opacity: 0;
transform: scale(0.9);
}