Fix issues which are blocking rendering
This commit is contained in:
parent
6f307cd298
commit
85ef5e5f01
|
@ -109,8 +109,7 @@
|
|||
"vue-popperjs": "^2.3.0",
|
||||
"vue-resize": "^2.0.0-alpha.1",
|
||||
"vue-router": "^4.0.14",
|
||||
"vue-shortkey": "^3.1.7",
|
||||
"vue-virtual-scroller": "^2.0.0-alpha.1",
|
||||
"@h3poteto/vue-virtual-scroller": "2.0.0-alpha.1",
|
||||
"vuex": "^4.0.2",
|
||||
"vuex-router-sync": "^6.0.0-rc.1"
|
||||
},
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
</el-row>
|
||||
</el-header>
|
||||
<el-container>
|
||||
<div v-shortkey="['esc']" @shortkey="close"></div>
|
||||
<div></div>
|
||||
<login-form></login-form>
|
||||
</el-container>
|
||||
</el-container>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
:model="form"
|
||||
>
|
||||
<el-form-item :label="$t('login.domain_name_label')" prop="domainName">
|
||||
<el-input v-model="form.domainName" placeholder="mastodon.social" v-shortkey="['enter']" @shortkey="handleKey"></el-input>
|
||||
<el-input v-model="form.domainName" placeholder="mastodon.social"></el-input>
|
||||
</el-form-item>
|
||||
<p class="proxy-info">
|
||||
{{ $t('login.proxy_info') }}<router-link to="/preferences/network">{{ $t('login.proxy_here') }}</router-link>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
</el-row>
|
||||
</el-header>
|
||||
<el-container>
|
||||
<div v-shortkey="['esc']" @shortkey="close"></div>
|
||||
<div></div>
|
||||
<el-aside width="240px" class="menu">
|
||||
<el-menu
|
||||
:default-active="activeRoute()"
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
</el-row>
|
||||
</el-header>
|
||||
<el-container>
|
||||
<div v-shortkey="['esc']" @shortkey="close"></div>
|
||||
<div></div>
|
||||
<el-aside width="240px" class="menu">
|
||||
<el-menu
|
||||
:default-active="activeRoute()"
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
:element-loading-text="$t('message.loading')"
|
||||
element-loading-spinner="el-icon-loading"
|
||||
element-loading-background="rgba(0, 0, 0, 0.8)"
|
||||
v-shortkey="shortcutEnabled ? { help: ['shift', '?'] } : {}"
|
||||
@shortkey="handleKey"
|
||||
>
|
||||
<side-menu></side-menu>
|
||||
<div :class="collapse ? 'page-narrow' : 'page'">
|
||||
|
@ -39,18 +37,18 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
dropTarget: null,
|
||||
droppableVisible: false,
|
||||
droppableVisible: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState({
|
||||
loading: (state) => state.TimelineSpace.loading,
|
||||
collapse: (state) => state.TimelineSpace.SideMenu.collapse,
|
||||
loading: state => state.TimelineSpace.loading,
|
||||
collapse: state => state.TimelineSpace.SideMenu.collapse
|
||||
}),
|
||||
...mapGetters('TimelineSpace/Modals', ['modalOpened']),
|
||||
shortcutEnabled: function () {
|
||||
return !this.modalOpened
|
||||
},
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/close')
|
||||
|
@ -88,20 +86,17 @@ export default {
|
|||
await this.clear()
|
||||
|
||||
try {
|
||||
await this.$store.dispatch(
|
||||
'TimelineSpace/initLoad',
|
||||
this.$route.params.id
|
||||
)
|
||||
await this.$store.dispatch('TimelineSpace/initLoad', this.$route.params.id)
|
||||
} catch (err) {
|
||||
if (err instanceof AccountLoadError) {
|
||||
this.$message({
|
||||
message: this.$t('message.account_load_error'),
|
||||
type: 'error',
|
||||
type: 'error'
|
||||
})
|
||||
} else if (err instanceof TimelineFetchError) {
|
||||
this.$message({
|
||||
message: this.$t('message.timeline_fetch_error'),
|
||||
type: 'error',
|
||||
type: 'error'
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -112,17 +107,14 @@ export default {
|
|||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
this.droppableVisible = false
|
||||
if (
|
||||
e.dataTransfer.files.item(0) === null ||
|
||||
e.dataTransfer.files.item(0) === undefined
|
||||
) {
|
||||
if (e.dataTransfer.files.item(0) === null || e.dataTransfer.files.item(0) === undefined) {
|
||||
return false
|
||||
}
|
||||
const file = e.dataTransfer.files.item(0)
|
||||
if (!file.type.includes('image') && !file.type.includes('video')) {
|
||||
this.$message({
|
||||
message: this.$t('validation.new_toot.attach_image'),
|
||||
type: 'error',
|
||||
type: 'error'
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
@ -133,16 +125,16 @@ export default {
|
|||
.then(() => {
|
||||
Event.$emit('image-uploaded')
|
||||
})
|
||||
.catch((err) => {
|
||||
.catch(err => {
|
||||
if (err instanceof NewTootAttachLength) {
|
||||
this.$message({
|
||||
message: this.$t('validation.new_toot.attach_length', { max: 4 }),
|
||||
type: 'error',
|
||||
type: 'error'
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: this.$t('message.attach_error'),
|
||||
type: 'error',
|
||||
type: 'error'
|
||||
})
|
||||
}
|
||||
})
|
||||
|
@ -168,8 +160,8 @@ export default {
|
|||
this.$store.commit('TimelineSpace/Modals/Shortcut/changeModal', true)
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div id="bookmarks" v-shortkey="shortcutEnabled ? { next: ['j'] } : {}" @shortkey="handleKey">
|
||||
<div v-shortkey="{ linux: ['ctrl', 'r'], mac: ['meta', 'r'] }" @shortkey="reload()"></div>
|
||||
<div id="bookmarks">
|
||||
<div></div>
|
||||
<DynamicScroller :items="bookmarks" :min-item-size="60" id="scroller" class="scroller" ref="scroller">
|
||||
<template v-slot="{ item, index, active }">
|
||||
<DynamicScrollerItem :item="item" :active="active" :size-dependencies="[item.uri]" :data-index="index" :watchData="true">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div id="directmessages" v-shortkey="shortcutEnabled ? { next: ['j'] } : {}" @shortkey="handleKey">
|
||||
<div v-shortkey="{ linux: ['ctrl', 'r'], mac: ['meta', 'r'] }" @shortkey="reload()"></div>
|
||||
<div id="directmessages">
|
||||
<div></div>
|
||||
<DynamicScroller :items="timeline" :min-item-size="86" id="scroller" class="scroller" ref="scroller">
|
||||
<template v-slot="{ item, index, active }">
|
||||
<DynamicScrollerItem :item="item" :active="active" :size-dependencies="[item.uri]" :data-index="index" :watchData="true">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div id="favourites" v-shortkey="shortcutEnabled ? { next: ['j'] } : {}" @shortkey="handleKey">
|
||||
<div v-shortkey="{ linux: ['ctrl', 'r'], mac: ['meta', 'r'] }" @shortkey="reload()"></div>
|
||||
<div id="favourites">
|
||||
<div></div>
|
||||
<DynamicScroller :items="favourites" :min-item-size="60" id="scroller" class="scroller" ref="scroller">
|
||||
<template v-slot="{ item, index, active }">
|
||||
<DynamicScrollerItem :item="item" :active="active" :size-dependencies="[item.uri]" :data-index="index" :watchData="true">
|
||||
|
|
|
@ -9,21 +9,10 @@
|
|||
</el-button>
|
||||
</div>
|
||||
<div class="form-item input">
|
||||
<input
|
||||
v-model="tag"
|
||||
:placeholder="$t('hashtag.tag_name')"
|
||||
class="search-keyword"
|
||||
v-shortkey.avoid
|
||||
v-on:keyup.enter="search"
|
||||
autofocus
|
||||
/>
|
||||
<input v-model="tag" :placeholder="$t('hashtag.tag_name')" class="search-keyword" v-on:keyup.enter="search" autofocus />
|
||||
</div>
|
||||
<div class="form-item" v-show="tagPage()">
|
||||
<el-button
|
||||
type="text"
|
||||
@click="save"
|
||||
:title="$t('hashtag.save_tag')"
|
||||
>
|
||||
<el-button type="text" @click="save" :title="$t('hashtag.save_tag')">
|
||||
<font-awesome-icon icon="thumbtack" />
|
||||
</el-button>
|
||||
</div>
|
||||
|
@ -39,7 +28,7 @@ export default {
|
|||
name: 'hashtag',
|
||||
data() {
|
||||
return {
|
||||
tag: '',
|
||||
tag: ''
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
@ -52,7 +41,7 @@ export default {
|
|||
if (route.name === 'tag') {
|
||||
this.tag = route.params.tag
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
id() {
|
||||
|
@ -69,8 +58,8 @@ export default {
|
|||
},
|
||||
save() {
|
||||
this.$store.dispatch('TimelineSpace/Contents/Hashtag/saveTag', this.tag)
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div name="tag" class="tag-timeline" v-shortkey="shortcutEnabled ? { next: ['j'] } : {}" @shortkey="handleKey">
|
||||
<div v-shortkey="{ linux: ['ctrl', 'r'], mac: ['meta', 'r'] }" @shortkey="reload()"></div>
|
||||
<div name="tag" class="tag-timeline">
|
||||
<div></div>
|
||||
<DynamicScroller :items="timeline" :min-item-size="86" id="scroller" class="scroller" ref="scroller">
|
||||
<template v-slot="{ item, index, active }">
|
||||
<DynamicScrollerItem :item="item" :active="active" :size-dependencies="[item.uri]" :data-index="index" :watchData="true">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div name="list" class="list-timeline" v-shortkey="shortcutEnabled ? { next: ['j'] } : {}" @shortkey="handleKey">
|
||||
<div v-shortkey="{ linux: ['ctrl', 'r'], mac: ['meta', 'r'] }" @shortkey="reload()"></div>
|
||||
<div name="list" class="list-timeline">
|
||||
<div></div>
|
||||
<DynamicScroller :items="timeline" :min-item-size="86" id="scroller" class="scroller" ref="scroller">
|
||||
<template v-slot="{ item, index, active }">
|
||||
<DynamicScrollerItem :item="item" :active="active" :size-dependencies="[item.uri]" :data-index="index" :watchData="true">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div id="local" v-shortkey="shortcutEnabled ? { next: ['j'] } : {}" @shortkey="handleKey">
|
||||
<div v-shortkey="{ linux: ['ctrl', 'r'], mac: ['meta', 'r'] }" @shortkey="reload()"></div>
|
||||
<div id="local">
|
||||
<div></div>
|
||||
<DynamicScroller :items="timeline" :min-item-size="86" id="scroller" class="scroller" ref="scroller">
|
||||
<template v-slot="{ item, index, active }">
|
||||
<DynamicScrollerItem :item="item" :active="active" :size-dependencies="[item.uri]" :data-index="index" :watchData="true">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div id="mentions" v-shortkey="shortcutEnabled ? { next: ['j'] } : {}" @shortkey="handleKey">
|
||||
<div v-shortkey="{ linux: ['ctrl', 'r'], mac: ['meta', 'r'] }" @shortkey="reload()"></div>
|
||||
<div id="mentions">
|
||||
<div></div>
|
||||
<DynamicScroller :items="mentions" :min-item-size="86" id="scroller" class="scroller" ref="scroller">
|
||||
<template v-slot="{ item, index, active }">
|
||||
<template v-if="item.id === 'loading-card'">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div id="notifications" v-shortkey="shortcutEnabled ? { next: ['j'] } : {}" @shortkey="handleKey">
|
||||
<div v-shortkey="{ linux: ['ctrl', 'r'], mac: ['meta', 'r'] }" @shortkey="reload()"></div>
|
||||
<div id="notifications">
|
||||
<div></div>
|
||||
<DynamicScroller :items="handledNotifications" :min-item-size="20" id="scroller" class="scroller" ref="scroller">
|
||||
<template v-slot="{ item, index, active }">
|
||||
<template v-if="item.id === 'loading-card'">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div id="public" v-shortkey="shortcutEnabled ? { next: ['j'] } : {}" @shortkey="handleKey">
|
||||
<div v-shortkey="{ linux: ['ctrl', 'r'], mac: ['meta', 'r'] }" @shortkey="reload()"></div>
|
||||
<div id="public">
|
||||
<div></div>
|
||||
<DynamicScroller :items="timeline" :min-item-size="86" id="scroller" class="scroller" ref="scroller">
|
||||
<template v-slot="{ item, index, active }">
|
||||
<DynamicScrollerItem :item="item" :active="active" :size-dependencies="[item.uri]" :data-index="index" :watchData="true">
|
||||
|
|
|
@ -2,27 +2,10 @@
|
|||
<div id="search">
|
||||
<div class="search-header">
|
||||
<el-form :inline="true">
|
||||
<el-select
|
||||
v-model="target"
|
||||
:placeholder="$t('search.search')"
|
||||
class="search-target"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in searchTargets"
|
||||
:key="item.target"
|
||||
:label="item.label"
|
||||
:value="item.target"
|
||||
>
|
||||
</el-option>
|
||||
<el-select v-model="target" :placeholder="$t('search.search')" class="search-target">
|
||||
<el-option v-for="item in searchTargets" :key="item.target" :label="item.label" :value="item.target"> </el-option>
|
||||
</el-select>
|
||||
<input
|
||||
v-model="query"
|
||||
:placeholder="$t('search.keyword')"
|
||||
class="search-keyword"
|
||||
v-shortkey.avoid
|
||||
v-on:keyup.enter="search"
|
||||
autofocus
|
||||
/>
|
||||
<input v-model="query" :placeholder="$t('search.keyword')" class="search-keyword" v-on:keyup.enter="search" autofocus />
|
||||
<div class="clearfix"></div>
|
||||
</el-form>
|
||||
</div>
|
||||
|
@ -45,7 +28,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
target: 'account',
|
||||
query: '',
|
||||
query: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
@ -54,64 +37,52 @@ export default {
|
|||
return [
|
||||
{
|
||||
target: 'account',
|
||||
label: this.$t('search.account'),
|
||||
label: this.$t('search.account')
|
||||
},
|
||||
{
|
||||
target: 'tag',
|
||||
label: this.$t('search.tag'),
|
||||
label: this.$t('search.tag')
|
||||
},
|
||||
{
|
||||
target: 'toot',
|
||||
label: this.$t('search.toot'),
|
||||
},
|
||||
label: this.$t('search.toot')
|
||||
}
|
||||
]
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
search() {
|
||||
switch (this.target) {
|
||||
case 'account':
|
||||
this.$store
|
||||
.dispatch(
|
||||
'TimelineSpace/Contents/Search/Account/search',
|
||||
this.query
|
||||
)
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
message: this.$t('message.search_error'),
|
||||
type: 'error',
|
||||
})
|
||||
this.$store.dispatch('TimelineSpace/Contents/Search/Account/search', this.query).catch(() => {
|
||||
this.$message({
|
||||
message: this.$t('message.search_error'),
|
||||
type: 'error'
|
||||
})
|
||||
})
|
||||
break
|
||||
case 'tag':
|
||||
this.$store
|
||||
.dispatch(
|
||||
'TimelineSpace/Contents/Search/Tag/search',
|
||||
`#${this.query}`
|
||||
)
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
message: this.$t('message.search_error'),
|
||||
type: 'error',
|
||||
})
|
||||
this.$store.dispatch('TimelineSpace/Contents/Search/Tag/search', `#${this.query}`).catch(() => {
|
||||
this.$message({
|
||||
message: this.$t('message.search_error'),
|
||||
type: 'error'
|
||||
})
|
||||
})
|
||||
break
|
||||
case 'toot':
|
||||
this.$store
|
||||
.dispatch('TimelineSpace/Contents/Search/Toots/search', this.query)
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
message: this.$t('message.search_error'),
|
||||
type: 'error',
|
||||
})
|
||||
this.$store.dispatch('TimelineSpace/Contents/Search/Toots/search', this.query).catch(() => {
|
||||
this.$message({
|
||||
message: this.$t('message.search_error'),
|
||||
type: 'error'
|
||||
})
|
||||
})
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div class="side-bar" v-if="openSideBar" v-shortkey="shortcutEnabled ? { close: ['esc'] } : {}" @shortkey="handleKey">
|
||||
<div class="side-bar" v-if="openSideBar">
|
||||
<div class="header">
|
||||
<font-awesome-icon icon="spinner" />
|
||||
<font-awesome-icon icon="rotate" />
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<el-dialog :title="$t('modals.add_list_member.title')" v-model="addListMemberModal" width="400px" class="add-member">
|
||||
<div class="search-account" :element-loading-background="loadingBackground">
|
||||
<el-form :inline="true">
|
||||
<input v-model="name" placeholder="Account name" class="account-name" v-shortkey="['enter']" @shortkey="search" autofocus />
|
||||
<input v-model="name" placeholder="Account name" class="account-name" autofocus />
|
||||
<el-button type="text" class="search" @click="search">
|
||||
<font-awesome-icon icon="magnifying-glass" />
|
||||
</el-button>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<transition name="image-viewer">
|
||||
<div id="image" v-show="modalOpen" @click="close" :aria-hidden="!modalOpen" aria-modal="true" role="dialog">
|
||||
<div class="image-wrapper" v-shortkey="modalOpen ? { close: ['esc'] } : {}" @shortkey="closeHandle">
|
||||
<div class="image-wrapper">
|
||||
<div class="image-header">
|
||||
<el-button type="text" @click="close" class="close-button">
|
||||
<font-awesome-icon icon="xmark" />
|
||||
|
@ -9,13 +9,11 @@
|
|||
</div>
|
||||
<div class="image-content" role="presentation">
|
||||
<span class="button-area"
|
||||
><el-button type="text" v-show="showLeft" v-shortkey="['arrowleft']" @shortkey="decrementIndex()">
|
||||
<font-awesome-icon icon="arrow-left" /> </el-button
|
||||
><el-button type="text"> <font-awesome-icon icon="arrow-left" /> </el-button
|
||||
></span>
|
||||
<Media :src="imageURL" :type="imageType"></Media>
|
||||
<span class="button-area"
|
||||
><el-button type="text" v-show="showRight" v-shortkey="['arrowright']" @shortkey="incrementIndex()">
|
||||
<font-awesome-icon icon="arrow-right" /> </el-button
|
||||
><el-button type="text"> <font-awesome-icon icon="arrow-right" /> </el-button
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -2,14 +2,7 @@
|
|||
<el-dialog v-model="jumpModal" width="440px" class="jump-modal">
|
||||
<el-form class="jump-form" v-on:submit.prevent="jump">
|
||||
<div class="channel">
|
||||
<input
|
||||
type="text"
|
||||
v-model="channel"
|
||||
:placeholder="$t('modals.jump.jump_to')"
|
||||
ref="channel"
|
||||
v-shortkey="shortcutEnabled ? { next: ['arrowdown'], prev: ['arrowup'], select: ['enter'] } : {}"
|
||||
@shortkey="handleKey"
|
||||
/>
|
||||
<input type="text" v-model="channel" :placeholder="$t('modals.jump.jump_to')" ref="channel" />
|
||||
<ul class="channel-list">
|
||||
<li
|
||||
v-for="c in filterdChannel"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<Quote :message="quoteToMessage" :displayNameStyle="displayNameStyle" v-if="quoteToMessage !== null" ref="quote"></Quote>
|
||||
<div class="spoiler" v-if="showContentWarning" ref="spoiler">
|
||||
<div class="el-input">
|
||||
<input type="text" class="el-input__inner" :placeholder="$t('modals.new_toot.cw')" v-model="spoiler" v-shortkey.avoid />
|
||||
<input type="text" class="el-input__inner" :placeholder="$t('modals.new_toot.cw')" v-model="spoiler" />
|
||||
</div>
|
||||
</div>
|
||||
<Status
|
||||
|
@ -45,7 +45,6 @@
|
|||
:placeholder="$t('modals.new_toot.description')"
|
||||
:value="mediaDescriptions[media.id]"
|
||||
@input="updateDescription(media.id, $event.target.value)"
|
||||
v-shortkey.avoid
|
||||
role="textbox"
|
||||
contenteditable="true"
|
||||
aria-multiline="true"
|
||||
|
|
|
@ -3,22 +3,6 @@
|
|||
<textarea
|
||||
v-model="status"
|
||||
ref="status"
|
||||
v-shortkey="
|
||||
openSuggest
|
||||
? {
|
||||
up: ['arrowup'],
|
||||
down: ['arrowdown'],
|
||||
enter: ['enter'],
|
||||
esc: ['esc']
|
||||
}
|
||||
: {
|
||||
linux: ['ctrl', 'enter'],
|
||||
mac: ['meta', 'enter'],
|
||||
left: ['arrowleft'],
|
||||
right: ['arrowright']
|
||||
}
|
||||
"
|
||||
@shortkey="handleKey"
|
||||
@paste="onPaste"
|
||||
v-on:input="startSuggest"
|
||||
:placeholder="$t('modals.new_toot.status')"
|
||||
|
@ -35,7 +19,6 @@
|
|||
v-for="(item, index) in filteredSuggestion"
|
||||
:key="index"
|
||||
@click="insertItem(item)"
|
||||
@shortkey="insertItem(item)"
|
||||
@mouseover="highlightedIndex = index"
|
||||
:class="{ highlighted: highlightedIndex === index }"
|
||||
>
|
||||
|
|
|
@ -14,11 +14,13 @@
|
|||
<span class="el-dropdown-link">
|
||||
<font-awesome-icon icon="arrow-up" class="el-icon--right" />
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item command="show">{{ $t('side_menu.show_profile') }}</el-dropdown-item>
|
||||
<el-dropdown-item command="edit">{{ $t('side_menu.edit_profile') }}</el-dropdown-item>
|
||||
<el-dropdown-item command="settings">{{ $t('side_menu.settings') }}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="show">{{ $t('side_menu.show_profile') }}</el-dropdown-item>
|
||||
<el-dropdown-item command="edit">{{ $t('side_menu.edit_profile') }}</el-dropdown-item>
|
||||
<el-dropdown-item command="settings">{{ $t('side_menu.settings') }}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -184,7 +186,7 @@
|
|||
<span>{{ $t('side_menu.hashtag') }}</span>
|
||||
</div>
|
||||
</el-menu-item>
|
||||
<template v-if="enabledTemplates.tag">
|
||||
<template v-if="enabledTimelines.tag">
|
||||
<template v-for="tag in tags" :key="tag.tagName">
|
||||
<el-menu-item
|
||||
:index="`/${id()}/hashtag/${tag.tagName}`"
|
||||
|
|
|
@ -1,25 +1,5 @@
|
|||
<template>
|
||||
<div
|
||||
class="status"
|
||||
tabIndex="0"
|
||||
v-shortkey="
|
||||
shortcutEnabled
|
||||
? {
|
||||
next: ['j'],
|
||||
prev: ['k'],
|
||||
right: ['l'],
|
||||
left: ['h'],
|
||||
open: ['o'],
|
||||
profile: ['p'],
|
||||
}
|
||||
: {}
|
||||
"
|
||||
@shortkey="handleStatusControl"
|
||||
ref="status"
|
||||
@click="$emit('select')"
|
||||
role="article"
|
||||
aria-label="favourited toot"
|
||||
>
|
||||
<div class="status" tabIndex="0" ref="status" @click="$emit('select')" role="article" aria-label="favourited toot">
|
||||
<div v-show="filtered(message)" class="filtered">Filtered</div>
|
||||
<div v-show="!filtered(message)" class="favourite">
|
||||
<div class="action">
|
||||
|
@ -32,34 +12,25 @@
|
|||
v-html="
|
||||
$t('notification.favourite.body', {
|
||||
username: username(message.account),
|
||||
interpolation: { escapeValue: false },
|
||||
interpolation: { escapeValue: false }
|
||||
})
|
||||
"
|
||||
></bdi>
|
||||
</span>
|
||||
</div>
|
||||
<div class="action-icon" role="presentation">
|
||||
<FailoverImg
|
||||
:src="message.account.avatar"
|
||||
:alt="`Avatar of ${message.account.username}`"
|
||||
/>
|
||||
<FailoverImg :src="message.account.avatar" :alt="`Avatar of ${message.account.username}`" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="target" v-on:dblclick="openDetail(message.status)">
|
||||
<div class="icon" @click="openUser(message.status.account)">
|
||||
<FailoverImg
|
||||
:src="message.status.account.avatar"
|
||||
:alt="`Avatar of ${message.status.account.username}`"
|
||||
role="presentation"
|
||||
/>
|
||||
<FailoverImg :src="message.status.account.avatar" :alt="`Avatar of ${message.status.account.username}`" role="presentation" />
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="toot-header">
|
||||
<div class="user" @click="openUser(message.status.account)">
|
||||
<span class="display-name"
|
||||
><bdi v-html="username(message.status.account)"></bdi
|
||||
></span>
|
||||
<span class="display-name"><bdi v-html="username(message.status.account)"></bdi></span>
|
||||
</div>
|
||||
<div class="timestamp">
|
||||
{{ parseDatetime(message.status.created_at) }}
|
||||
|
@ -79,14 +50,7 @@
|
|||
>
|
||||
{{ $t('cards.toot.show_more') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
plain
|
||||
type="primary"
|
||||
size="medium"
|
||||
class="spoil-button"
|
||||
@click="showContent = false"
|
||||
>
|
||||
<el-button v-else plain type="primary" size="medium" class="spoil-button" @click="showContent = false">
|
||||
{{ $t('cards.toot.hide') }}
|
||||
</el-button>
|
||||
</div>
|
||||
|
@ -99,9 +63,7 @@
|
|||
</div>
|
||||
<div class="attachments">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && !isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && !isShowAttachments(message.status)"
|
||||
class="show-sensitive"
|
||||
type="info"
|
||||
@click="showAttachments = true"
|
||||
|
@ -110,9 +72,7 @@
|
|||
</el-button>
|
||||
<div v-show="isShowAttachments(message.status)">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && isShowAttachments(message.status)"
|
||||
class="hide-sensitive"
|
||||
type="text"
|
||||
@click="showAttachments = false"
|
||||
|
@ -120,28 +80,10 @@
|
|||
>
|
||||
<font-awesome-icon icon="eye" class="hide" />
|
||||
</el-button>
|
||||
<div
|
||||
class="media"
|
||||
v-bind:key="media.preview_url"
|
||||
v-for="media in mediaAttachments(message.status)"
|
||||
>
|
||||
<FailoverImg
|
||||
:src="media.preview_url"
|
||||
:title="media.description"
|
||||
:readExif="true"
|
||||
/>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-if="media.type == 'gifv'"
|
||||
>GIF</el-tag
|
||||
>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-else-if="media.type == 'video'"
|
||||
>VIDEO</el-tag
|
||||
>
|
||||
<div class="media" v-bind:key="media.preview_url" v-for="media in mediaAttachments(message.status)">
|
||||
<FailoverImg :src="media.preview_url" :title="media.description" :readExif="true" />
|
||||
<el-tag class="media-label" size="mini" v-if="media.type == 'gifv'">GIF</el-tag>
|
||||
<el-tag class="media-label" size="mini" v-else-if="media.type == 'video'">VIDEO</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
@ -175,42 +117,42 @@ export default {
|
|||
name: 'favourite',
|
||||
components: {
|
||||
FailoverImg,
|
||||
LinkPreview,
|
||||
LinkPreview
|
||||
},
|
||||
props: {
|
||||
message: {
|
||||
type: Object,
|
||||
default: {},
|
||||
default: {}
|
||||
},
|
||||
filters: {
|
||||
type: Array,
|
||||
default: [],
|
||||
default: []
|
||||
},
|
||||
focused: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
},
|
||||
overlaid: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showContent: false,
|
||||
showAttachments: false,
|
||||
showAttachments: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState('App', {
|
||||
displayNameStyle: (state) => state.displayNameStyle,
|
||||
timeFormat: (state) => state.timeFormat,
|
||||
language: (state) => state.language,
|
||||
hideAllAttachments: (state) => state.hideAllAttachments,
|
||||
displayNameStyle: state => state.displayNameStyle,
|
||||
timeFormat: state => state.timeFormat,
|
||||
language: state => state.language,
|
||||
hideAllAttachments: state => state.hideAllAttachments
|
||||
}),
|
||||
shortcutEnabled: function () {
|
||||
return this.focused && !this.overlaid
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.focused) {
|
||||
|
@ -228,7 +170,7 @@ export default {
|
|||
this.$refs.status.blur()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
username(account) {
|
||||
|
@ -256,31 +198,17 @@ export default {
|
|||
}
|
||||
const parsedAccount = findAccount(e.target, 'favourite')
|
||||
if (parsedAccount !== null) {
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
this.$store
|
||||
.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/searchAccount',
|
||||
parsedAccount
|
||||
)
|
||||
.then((account) => {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/searchAccount', parsedAccount)
|
||||
.then(account => {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
})
|
||||
.catch((err) => {
|
||||
.catch(err => {
|
||||
console.error(err)
|
||||
this.openLink(e)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
false
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', false)
|
||||
})
|
||||
return parsedAccount.acct
|
||||
}
|
||||
|
@ -293,28 +221,14 @@ export default {
|
|||
}
|
||||
},
|
||||
openUser(account) {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
openDetail(message) {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openTootComponent')
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/TootDetail/changeToot',
|
||||
message
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/TootDetail/changeToot', message)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
mediaAttachments(message) {
|
||||
return message.media_attachments
|
||||
|
@ -329,10 +243,7 @@ export default {
|
|||
return !this.spoilered(message) || this.showContent
|
||||
},
|
||||
sensitive(message) {
|
||||
return (
|
||||
(this.hideAllAttachments || message.sensitive) &&
|
||||
this.mediaAttachments(message).length > 0
|
||||
)
|
||||
return (this.hideAllAttachments || message.sensitive) && this.mediaAttachments(message).length > 0
|
||||
},
|
||||
isShowAttachments(message) {
|
||||
return !this.sensitive(message) || this.showAttachments
|
||||
|
@ -364,8 +275,8 @@ export default {
|
|||
this.openUser(this.message.account)
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,18 +1,5 @@
|
|||
<template>
|
||||
<div
|
||||
class="relationship"
|
||||
tabIndex="0"
|
||||
v-shortkey="
|
||||
shortcutEnabled
|
||||
? { next: ['j'], prev: ['k'], right: ['l'], profile: ['p'] }
|
||||
: {}
|
||||
"
|
||||
@shortkey="handleStatusControl"
|
||||
ref="status"
|
||||
@click="$emit('select')"
|
||||
role="article"
|
||||
aria-label="follow event"
|
||||
>
|
||||
<div class="relationship" tabIndex="0" ref="status" @click="$emit('select')" role="article" aria-label="follow event">
|
||||
<div class="follow">
|
||||
<div class="action">
|
||||
<div class="action-mark">
|
||||
|
@ -24,7 +11,7 @@
|
|||
v-html="
|
||||
$t('notification.follow.body', {
|
||||
username: username(message.account),
|
||||
interpolation: { escapeValue: false },
|
||||
interpolation: { escapeValue: false }
|
||||
})
|
||||
"
|
||||
></bdi>
|
||||
|
@ -47,26 +34,26 @@ import emojify from '~/src/renderer/utils/emojify'
|
|||
export default {
|
||||
name: 'follow',
|
||||
components: {
|
||||
FailoverImg,
|
||||
FailoverImg
|
||||
},
|
||||
props: {
|
||||
message: {
|
||||
type: Object,
|
||||
default: {},
|
||||
default: {}
|
||||
},
|
||||
focused: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
},
|
||||
overlaid: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
default: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
shortcutEnabled: function () {
|
||||
return this.focused && !this.overlaid
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.focused) {
|
||||
|
@ -84,7 +71,7 @@ export default {
|
|||
this.$refs.status.blur()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
username(account) {
|
||||
|
@ -95,17 +82,9 @@ export default {
|
|||
}
|
||||
},
|
||||
openUser(account) {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
handleStatusControl(event) {
|
||||
switch (event.srcKey) {
|
||||
|
@ -122,8 +101,8 @@ export default {
|
|||
this.openUser(this.message.account)
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,18 +1,5 @@
|
|||
<template>
|
||||
<div
|
||||
class="relationship"
|
||||
tabIndex="0"
|
||||
v-shortkey="
|
||||
shortcutEnabled
|
||||
? { next: ['j'], prev: ['k'], right: ['l'], profile: ['p'] }
|
||||
: {}
|
||||
"
|
||||
@shortkey="handleStatusControl"
|
||||
ref="status"
|
||||
@click="$emit('select')"
|
||||
role="article"
|
||||
aria-label="follow event"
|
||||
>
|
||||
<div class="relationship" tabIndex="0" ref="status" @click="$emit('select')" role="article" aria-label="follow event">
|
||||
<div class="follow-request">
|
||||
<div class="action">
|
||||
<div class="action-mark">
|
||||
|
@ -24,7 +11,7 @@
|
|||
v-html="
|
||||
$t('notification.follow_request.body', {
|
||||
username: username(message.account),
|
||||
interpolation: { escapeValue: false },
|
||||
interpolation: { escapeValue: false }
|
||||
})
|
||||
"
|
||||
></bdi>
|
||||
|
@ -47,26 +34,26 @@ import emojify from '~/src/renderer/utils/emojify'
|
|||
export default {
|
||||
name: 'follow-request',
|
||||
components: {
|
||||
FailoverImg,
|
||||
FailoverImg
|
||||
},
|
||||
props: {
|
||||
message: {
|
||||
type: Object,
|
||||
default: {},
|
||||
default: {}
|
||||
},
|
||||
focused: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
},
|
||||
overlaid: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
default: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
shortcutEnabled: function () {
|
||||
return this.focused && !this.overlaid
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.focused) {
|
||||
|
@ -84,7 +71,7 @@ export default {
|
|||
this.$refs.status.blur()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
username(account) {
|
||||
|
@ -95,17 +82,9 @@ export default {
|
|||
}
|
||||
},
|
||||
openUser(account) {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
handleStatusControl(event) {
|
||||
switch (event.srcKey) {
|
||||
|
@ -122,8 +101,8 @@ export default {
|
|||
this.openUser(this.message.account)
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,25 +1,5 @@
|
|||
<template>
|
||||
<div
|
||||
class="status"
|
||||
tabIndex="0"
|
||||
v-shortkey="
|
||||
shortcutEnabled
|
||||
? {
|
||||
next: ['j'],
|
||||
prev: ['k'],
|
||||
right: ['l'],
|
||||
left: ['h'],
|
||||
open: ['o'],
|
||||
profile: ['p'],
|
||||
}
|
||||
: {}
|
||||
"
|
||||
@shortkey="handleStatusControl"
|
||||
ref="status"
|
||||
@click="$emit('select')"
|
||||
role="article"
|
||||
aria-label="poll expired"
|
||||
>
|
||||
<div class="status" tabIndex="0" ref="status" @click="$emit('select')" role="article" aria-label="poll expired">
|
||||
<div v-show="filtered(message)" class="filtered">Filtered</div>
|
||||
<div v-show="!filtered(message)" class="poll-expired">
|
||||
<div class="action">
|
||||
|
@ -32,34 +12,25 @@
|
|||
v-html="
|
||||
$t('notification.poll_expired.body', {
|
||||
username: username(message.account),
|
||||
interpolation: { escapeValue: false },
|
||||
interpolation: { escapeValue: false }
|
||||
})
|
||||
"
|
||||
></bdi>
|
||||
</span>
|
||||
</div>
|
||||
<div class="action-icon" role="presentation">
|
||||
<FailoverImg
|
||||
:src="message.account.avatar"
|
||||
:alt="`Avatar of ${message.account.username}`"
|
||||
/>
|
||||
<FailoverImg :src="message.account.avatar" :alt="`Avatar of ${message.account.username}`" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="target" v-on:dblclick="openDetail(message.status)">
|
||||
<div class="icon" @click="openUser(message.status.account)">
|
||||
<FailoverImg
|
||||
:src="message.status.account.avatar"
|
||||
:alt="`Avatar of ${message.status.account.username}`"
|
||||
role="presentation"
|
||||
/>
|
||||
<FailoverImg :src="message.status.account.avatar" :alt="`Avatar of ${message.status.account.username}`" role="presentation" />
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="toot-header">
|
||||
<div class="user" @click="openUser(message.status.account)">
|
||||
<span class="display-name"
|
||||
><bdi v-html="username(message.status.account)"></bdi
|
||||
></span>
|
||||
<span class="display-name"><bdi v-html="username(message.status.account)"></bdi></span>
|
||||
</div>
|
||||
<div class="timestamp">
|
||||
{{ parseDatetime(message.status.created_at) }}
|
||||
|
@ -79,14 +50,7 @@
|
|||
>
|
||||
{{ $t('cards.toot.show_more') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
plain
|
||||
type="primary"
|
||||
size="medium"
|
||||
class="spoil-button"
|
||||
@click="showContent = false"
|
||||
>
|
||||
<el-button v-else plain type="primary" size="medium" class="spoil-button" @click="showContent = false">
|
||||
{{ $t('cards.toot.hide') }}
|
||||
</el-button>
|
||||
</div>
|
||||
|
@ -99,9 +63,7 @@
|
|||
</div>
|
||||
<div class="attachments">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && !isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && !isShowAttachments(message.status)"
|
||||
class="show-sensitive"
|
||||
type="info"
|
||||
@click="showAttachments = true"
|
||||
|
@ -110,9 +72,7 @@
|
|||
</el-button>
|
||||
<div v-show="isShowAttachments(message.status)">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && isShowAttachments(message.status)"
|
||||
class="hide-sensitive"
|
||||
type="text"
|
||||
@click="showAttachments = false"
|
||||
|
@ -120,28 +80,10 @@
|
|||
>
|
||||
<font-awesome-icon icon="eye" class="hide" />
|
||||
</el-button>
|
||||
<div
|
||||
class="media"
|
||||
v-bind:key="media.preview_url"
|
||||
v-for="media in mediaAttachments(message.status)"
|
||||
>
|
||||
<FailoverImg
|
||||
:src="media.preview_url"
|
||||
:title="media.description"
|
||||
:readExif="true"
|
||||
/>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-if="media.type == 'gifv'"
|
||||
>GIF</el-tag
|
||||
>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-else-if="media.type == 'video'"
|
||||
>VIDEO</el-tag
|
||||
>
|
||||
<div class="media" v-bind:key="media.preview_url" v-for="media in mediaAttachments(message.status)">
|
||||
<FailoverImg :src="media.preview_url" :title="media.description" :readExif="true" />
|
||||
<el-tag class="media-label" size="mini" v-if="media.type == 'gifv'">GIF</el-tag>
|
||||
<el-tag class="media-label" size="mini" v-else-if="media.type == 'video'">VIDEO</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
@ -175,42 +117,42 @@ export default {
|
|||
name: 'poll-expired',
|
||||
components: {
|
||||
FailoverImg,
|
||||
LinkPreview,
|
||||
LinkPreview
|
||||
},
|
||||
props: {
|
||||
message: {
|
||||
type: Object,
|
||||
default: {},
|
||||
default: {}
|
||||
},
|
||||
filters: {
|
||||
type: Array,
|
||||
default: [],
|
||||
default: []
|
||||
},
|
||||
focused: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
},
|
||||
overlaid: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showContent: false,
|
||||
showAttachments: false,
|
||||
showAttachments: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState('App', {
|
||||
displayNameStyle: (state) => state.displayNameStyle,
|
||||
timeFormat: (state) => state.timeFormat,
|
||||
language: (state) => state.language,
|
||||
hideAllAttachments: (state) => state.hideAllAttachments,
|
||||
displayNameStyle: state => state.displayNameStyle,
|
||||
timeFormat: state => state.timeFormat,
|
||||
language: state => state.language,
|
||||
hideAllAttachments: state => state.hideAllAttachments
|
||||
}),
|
||||
shortcutEnabled: function () {
|
||||
return this.focused && !this.overlaid
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.focused) {
|
||||
|
@ -228,7 +170,7 @@ export default {
|
|||
this.$refs.status.blur()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
username(account) {
|
||||
|
@ -256,31 +198,17 @@ export default {
|
|||
}
|
||||
const parsedAccount = findAccount(e.target, 'poll-expired')
|
||||
if (parsedAccount !== null) {
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
this.$store
|
||||
.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/searchAccount',
|
||||
parsedAccount
|
||||
)
|
||||
.then((account) => {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/searchAccount', parsedAccount)
|
||||
.then(account => {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
})
|
||||
.catch((err) => {
|
||||
.catch(err => {
|
||||
console.error(err)
|
||||
this.openLink(e)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
false
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', false)
|
||||
})
|
||||
return parsedAccount.acct
|
||||
}
|
||||
|
@ -293,28 +221,14 @@ export default {
|
|||
}
|
||||
},
|
||||
openUser(account) {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
openDetail(message) {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openTootComponent')
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/TootDetail/changeToot',
|
||||
message
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/TootDetail/changeToot', message)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
mediaAttachments(message) {
|
||||
return message.media_attachments
|
||||
|
@ -329,10 +243,7 @@ export default {
|
|||
return !this.spoilered(message) || this.showContent
|
||||
},
|
||||
sensitive(message) {
|
||||
return (
|
||||
(this.hideAllAttachments || message.sensitive) &&
|
||||
this.mediaAttachments(message).length > 0
|
||||
)
|
||||
return (this.hideAllAttachments || message.sensitive) && this.mediaAttachments(message).length > 0
|
||||
},
|
||||
isShowAttachments(message) {
|
||||
return !this.sensitive(message) || this.showAttachments
|
||||
|
@ -364,8 +275,8 @@ export default {
|
|||
this.openUser(this.message.account)
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,25 +1,5 @@
|
|||
<template>
|
||||
<div
|
||||
class="status"
|
||||
tabIndex="0"
|
||||
v-shortkey="
|
||||
shortcutEnabled
|
||||
? {
|
||||
next: ['j'],
|
||||
prev: ['k'],
|
||||
right: ['l'],
|
||||
left: ['h'],
|
||||
open: ['o'],
|
||||
profile: ['p'],
|
||||
}
|
||||
: {}
|
||||
"
|
||||
@shortkey="handleStatusControl"
|
||||
ref="status"
|
||||
@click="$emit('select')"
|
||||
role="article"
|
||||
aria-label="poll vote"
|
||||
>
|
||||
<div class="status" tabIndex="0" ref="status" @click="$emit('select')" role="article" aria-label="poll vote">
|
||||
<div v-show="filtered(message)" class="filtered">Filtered</div>
|
||||
<div v-show="!filtered(message)" class="poll-vote">
|
||||
<div class="action">
|
||||
|
@ -32,34 +12,25 @@
|
|||
v-html="
|
||||
$t('notification.poll_vote.body', {
|
||||
username: username(message.account),
|
||||
interpolation: { escapeValue: false },
|
||||
interpolation: { escapeValue: false }
|
||||
})
|
||||
"
|
||||
></bdi>
|
||||
</span>
|
||||
</div>
|
||||
<div class="action-icon" role="presentation">
|
||||
<FailoverImg
|
||||
:src="message.account.avatar"
|
||||
:alt="`Avatar of ${message.account.username}`"
|
||||
/>
|
||||
<FailoverImg :src="message.account.avatar" :alt="`Avatar of ${message.account.username}`" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="target" v-on:dblclick="openDetail(message.status)">
|
||||
<div class="icon" @click="openUser(message.status.account)">
|
||||
<FailoverImg
|
||||
:src="message.status.account.avatar"
|
||||
:alt="`Avatar of ${message.status.account.username}`"
|
||||
role="presentation"
|
||||
/>
|
||||
<FailoverImg :src="message.status.account.avatar" :alt="`Avatar of ${message.status.account.username}`" role="presentation" />
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="toot-header">
|
||||
<div class="user" @click="openUser(message.status.account)">
|
||||
<span class="display-name"
|
||||
><bdi v-html="username(message.status.account)"></bdi
|
||||
></span>
|
||||
<span class="display-name"><bdi v-html="username(message.status.account)"></bdi></span>
|
||||
</div>
|
||||
<div class="timestamp">
|
||||
{{ parseDatetime(message.status.created_at) }}
|
||||
|
@ -79,14 +50,7 @@
|
|||
>
|
||||
{{ $t('cards.toot.show_more') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
plain
|
||||
type="primary"
|
||||
size="medium"
|
||||
class="spoil-button"
|
||||
@click="showContent = false"
|
||||
>
|
||||
<el-button v-else plain type="primary" size="medium" class="spoil-button" @click="showContent = false">
|
||||
{{ $t('cards.toot.hide') }}
|
||||
</el-button>
|
||||
</div>
|
||||
|
@ -99,9 +63,7 @@
|
|||
</div>
|
||||
<div class="attachments">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && !isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && !isShowAttachments(message.status)"
|
||||
class="show-sensitive"
|
||||
type="info"
|
||||
@click="showAttachments = true"
|
||||
|
@ -110,9 +72,7 @@
|
|||
</el-button>
|
||||
<div v-show="isShowAttachments(message.status)">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && isShowAttachments(message.status)"
|
||||
class="hide-sensitive"
|
||||
type="text"
|
||||
@click="showAttachments = false"
|
||||
|
@ -120,28 +80,10 @@
|
|||
>
|
||||
<font-awesome-icon icon="eye" class="hide" />
|
||||
</el-button>
|
||||
<div
|
||||
class="media"
|
||||
v-bind:key="media.preview_url"
|
||||
v-for="media in mediaAttachments(message.status)"
|
||||
>
|
||||
<FailoverImg
|
||||
:src="media.preview_url"
|
||||
:title="media.description"
|
||||
:readExif="true"
|
||||
/>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-if="media.type == 'gifv'"
|
||||
>GIF</el-tag
|
||||
>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-else-if="media.type == 'video'"
|
||||
>VIDEO</el-tag
|
||||
>
|
||||
<div class="media" v-bind:key="media.preview_url" v-for="media in mediaAttachments(message.status)">
|
||||
<FailoverImg :src="media.preview_url" :title="media.description" :readExif="true" />
|
||||
<el-tag class="media-label" size="mini" v-if="media.type == 'gifv'">GIF</el-tag>
|
||||
<el-tag class="media-label" size="mini" v-else-if="media.type == 'video'">VIDEO</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
@ -175,42 +117,42 @@ export default {
|
|||
name: 'poll-vote',
|
||||
components: {
|
||||
FailoverImg,
|
||||
LinkPreview,
|
||||
LinkPreview
|
||||
},
|
||||
props: {
|
||||
message: {
|
||||
type: Object,
|
||||
default: {},
|
||||
default: {}
|
||||
},
|
||||
filters: {
|
||||
type: Array,
|
||||
default: [],
|
||||
default: []
|
||||
},
|
||||
focused: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
},
|
||||
overlaid: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showContent: false,
|
||||
showAttachments: false,
|
||||
showAttachments: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState('App', {
|
||||
displayNameStyle: (state) => state.displayNameStyle,
|
||||
timeFormat: (state) => state.timeFormat,
|
||||
language: (state) => state.language,
|
||||
hideAllAttachments: (state) => state.hideAllAttachments,
|
||||
displayNameStyle: state => state.displayNameStyle,
|
||||
timeFormat: state => state.timeFormat,
|
||||
language: state => state.language,
|
||||
hideAllAttachments: state => state.hideAllAttachments
|
||||
}),
|
||||
shortcutEnabled: function () {
|
||||
return this.focused && !this.overlaid
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.focused) {
|
||||
|
@ -228,7 +170,7 @@ export default {
|
|||
this.$refs.status.blur()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
username(account) {
|
||||
|
@ -256,31 +198,17 @@ export default {
|
|||
}
|
||||
const parsedAccount = findAccount(e.target, 'poll-vote')
|
||||
if (parsedAccount !== null) {
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
this.$store
|
||||
.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/searchAccount',
|
||||
parsedAccount
|
||||
)
|
||||
.then((account) => {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/searchAccount', parsedAccount)
|
||||
.then(account => {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
})
|
||||
.catch((err) => {
|
||||
.catch(err => {
|
||||
console.error(err)
|
||||
this.openLink(e)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
false
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', false)
|
||||
})
|
||||
return parsedAccount.acct
|
||||
}
|
||||
|
@ -293,28 +221,14 @@ export default {
|
|||
}
|
||||
},
|
||||
openUser(account) {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
openDetail(message) {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openTootComponent')
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/TootDetail/changeToot',
|
||||
message
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/TootDetail/changeToot', message)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
mediaAttachments(message) {
|
||||
return message.media_attachments
|
||||
|
@ -329,10 +243,7 @@ export default {
|
|||
return !this.spoilered(message) || this.showContent
|
||||
},
|
||||
sensitive(message) {
|
||||
return (
|
||||
(this.hideAllAttachments || message.sensitive) &&
|
||||
this.mediaAttachments(message).length > 0
|
||||
)
|
||||
return (this.hideAllAttachments || message.sensitive) && this.mediaAttachments(message).length > 0
|
||||
},
|
||||
isShowAttachments(message) {
|
||||
return !this.sensitive(message) || this.showAttachments
|
||||
|
@ -364,8 +275,8 @@ export default {
|
|||
this.openUser(this.message.account)
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,25 +1,5 @@
|
|||
<template>
|
||||
<div
|
||||
class="status"
|
||||
tabIndex="0"
|
||||
v-shortkey="
|
||||
shortcutEnabled
|
||||
? {
|
||||
next: ['j'],
|
||||
prev: ['k'],
|
||||
right: ['l'],
|
||||
left: ['h'],
|
||||
open: ['o'],
|
||||
profile: ['p'],
|
||||
}
|
||||
: {}
|
||||
"
|
||||
@shortkey="handleStatusControl"
|
||||
ref="status"
|
||||
@click="$emit('select')"
|
||||
role="article"
|
||||
aria-label="quoted toot"
|
||||
>
|
||||
<div class="status" tabIndex="0" ref="status" @click="$emit('select')" role="article" aria-label="quoted toot">
|
||||
<div v-show="filtered(message)" class="filtered">Filtered</div>
|
||||
<div v-show="!filtered(message)" class="quoted">
|
||||
<div class="action">
|
||||
|
@ -32,30 +12,20 @@
|
|||
v-html="
|
||||
$t('notification.quote.body', {
|
||||
username: username(message.account),
|
||||
interpolation: { escapeValue: false },
|
||||
interpolation: { escapeValue: false }
|
||||
})
|
||||
"
|
||||
></bdi>
|
||||
</span>
|
||||
</div>
|
||||
<div class="action-icon" role="presentation">
|
||||
<FailoverImg
|
||||
:src="message.account.avatar"
|
||||
:alt="`Avatar of ${message.account.username}`"
|
||||
/>
|
||||
<FailoverImg :src="message.account.avatar" :alt="`Avatar of ${message.account.username}`" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="target" v-on:dblclick="openDetail(message.status)">
|
||||
<div
|
||||
class="icon"
|
||||
@click="openUser(message.status.account)"
|
||||
role="presentation"
|
||||
>
|
||||
<FailoverImg
|
||||
:src="message.status.account.avatar"
|
||||
:alt="`Avatar of ${message.status.account.username}`"
|
||||
/>
|
||||
<div class="icon" @click="openUser(message.status.account)" role="presentation">
|
||||
<FailoverImg :src="message.status.account.avatar" :alt="`Avatar of ${message.status.account.username}`" />
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="toot-header">
|
||||
|
@ -71,11 +41,7 @@
|
|||
</div>
|
||||
<div class="content-wrapper">
|
||||
<div class="spoiler" v-show="spoilered(message.status)">
|
||||
<span
|
||||
v-html="
|
||||
emojiText(message.status.spoiler_text, message.status.emojis)
|
||||
"
|
||||
></span>
|
||||
<span v-html="emojiText(message.status.spoiler_text, message.status.emojis)"></span>
|
||||
<el-button
|
||||
v-if="!isShowContent(message.status)"
|
||||
plain
|
||||
|
@ -86,14 +52,7 @@
|
|||
>
|
||||
{{ $t('cards.toot.show_more') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
plain
|
||||
type="primary"
|
||||
size="medium"
|
||||
class="spoil-button"
|
||||
@click="showContent = false"
|
||||
>
|
||||
<el-button v-else plain type="primary" size="medium" class="spoil-button" @click="showContent = false">
|
||||
{{ $t('cards.toot.hide') }}
|
||||
</el-button>
|
||||
</div>
|
||||
|
@ -106,9 +65,7 @@
|
|||
</div>
|
||||
<div class="attachments">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && !isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && !isShowAttachments(message.status)"
|
||||
class="show-sensitive"
|
||||
type="info"
|
||||
@click="showAttachments = true"
|
||||
|
@ -117,9 +74,7 @@
|
|||
</el-button>
|
||||
<div v-show="isShowAttachments(message.status)">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && isShowAttachments(message.status)"
|
||||
class="hide-sensitive"
|
||||
type="text"
|
||||
@click="showAttachments = false"
|
||||
|
@ -127,28 +82,10 @@
|
|||
>
|
||||
<font-awesome-icon icon="eye" class="hide" />
|
||||
</el-button>
|
||||
<div
|
||||
class="media"
|
||||
v-bind:key="media.preview_url"
|
||||
v-for="media in mediaAttachments(message.status)"
|
||||
>
|
||||
<FailoverImg
|
||||
:src="media.preview_url"
|
||||
:title="media.description"
|
||||
:readExif="true"
|
||||
/>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-if="media.type == 'gifv'"
|
||||
>GIF</el-tag
|
||||
>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-else-if="media.type == 'video'"
|
||||
>VIDEO</el-tag
|
||||
>
|
||||
<div class="media" v-bind:key="media.preview_url" v-for="media in mediaAttachments(message.status)">
|
||||
<FailoverImg :src="media.preview_url" :title="media.description" :readExif="true" />
|
||||
<el-tag class="media-label" size="mini" v-if="media.type == 'gifv'">GIF</el-tag>
|
||||
<el-tag class="media-label" size="mini" v-else-if="media.type == 'video'">VIDEO</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
@ -158,12 +95,7 @@
|
|||
:icon="message.status.reblog.account.avatar"
|
||||
:username="username(message.status.reblog.account)"
|
||||
:accountName="''"
|
||||
:body="
|
||||
emojiText(
|
||||
message.status.reblog.content,
|
||||
message.status.reblog.emojis
|
||||
)
|
||||
"
|
||||
:body="emojiText(message.status.reblog.content, message.status.reblog.emojis)"
|
||||
@select="openDetail(message.status.reblog)"
|
||||
/>
|
||||
<LinkPreview
|
||||
|
@ -197,41 +129,41 @@ export default {
|
|||
components: {
|
||||
FailoverImg,
|
||||
LinkPreview,
|
||||
Quote,
|
||||
Quote
|
||||
},
|
||||
props: {
|
||||
message: {
|
||||
type: Object,
|
||||
default: {},
|
||||
default: {}
|
||||
},
|
||||
filters: {
|
||||
type: Array,
|
||||
default: [],
|
||||
default: []
|
||||
},
|
||||
focused: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
},
|
||||
overlaid: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showContent: false,
|
||||
showAttachments: false,
|
||||
showAttachments: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState('App', {
|
||||
timeFormat: (state) => state.timeFormat,
|
||||
language: (state) => state.language,
|
||||
hideAllAttachments: (state) => state.hideAllAttachments,
|
||||
timeFormat: state => state.timeFormat,
|
||||
language: state => state.language,
|
||||
hideAllAttachments: state => state.hideAllAttachments
|
||||
}),
|
||||
shortcutEnabled: function () {
|
||||
return this.focused && !this.overlaid
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.focused) {
|
||||
|
@ -249,7 +181,7 @@ export default {
|
|||
this.$refs.status.blur()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
username(account) {
|
||||
|
@ -277,30 +209,16 @@ export default {
|
|||
}
|
||||
const parsedAccount = findAccount(e.target, 'quoted')
|
||||
if (parsedAccount !== null) {
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
this.$store
|
||||
.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/searchAccount',
|
||||
parsedAccount
|
||||
)
|
||||
.then((account) => {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/searchAccount', parsedAccount)
|
||||
.then(account => {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
})
|
||||
.catch(() => {
|
||||
this.openLink(e)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
false
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', false)
|
||||
})
|
||||
return parsedAccount
|
||||
}
|
||||
|
@ -313,28 +231,14 @@ export default {
|
|||
}
|
||||
},
|
||||
openUser(account) {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
openDetail(message) {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openTootComponent')
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/TootDetail/changeToot',
|
||||
message
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/TootDetail/changeToot', message)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
mediaAttachments(message) {
|
||||
return message.media_attachments
|
||||
|
@ -349,10 +253,7 @@ export default {
|
|||
return !this.spoilered(message) || this.showContent
|
||||
},
|
||||
sensitive(message) {
|
||||
return (
|
||||
(this.hideAllAttachments || message.sensitive) &&
|
||||
this.mediaAttachments(message).length > 0
|
||||
)
|
||||
return (this.hideAllAttachments || message.sensitive) && this.mediaAttachments(message).length > 0
|
||||
},
|
||||
isShowAttachments(message) {
|
||||
return !this.sensitive(message) || this.showAttachments
|
||||
|
@ -381,8 +282,8 @@ export default {
|
|||
this.openUser(this.message.account)
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,25 +1,5 @@
|
|||
<template>
|
||||
<div
|
||||
class="status"
|
||||
tabIndex="0"
|
||||
v-shortkey="
|
||||
shortcutEnabled
|
||||
? {
|
||||
next: ['j'],
|
||||
prev: ['k'],
|
||||
right: ['l'],
|
||||
left: ['h'],
|
||||
open: ['o'],
|
||||
profile: ['p'],
|
||||
}
|
||||
: {}
|
||||
"
|
||||
@shortkey="handleStatusControl"
|
||||
ref="status"
|
||||
@click="$emit('select')"
|
||||
role="article"
|
||||
aria-label="reacted toot"
|
||||
>
|
||||
<div class="status" tabIndex="0" ref="status" @click="$emit('select')" role="article" aria-label="reacted toot">
|
||||
<div v-show="filtered(message)" class="filtered">Filtered</div>
|
||||
<div v-show="!filtered(message)" class="favourite">
|
||||
<div class="action">
|
||||
|
@ -32,34 +12,25 @@
|
|||
v-html="
|
||||
$t('notification.reaction.body', {
|
||||
username: username(message.account),
|
||||
interpolation: { escapeValue: false },
|
||||
interpolation: { escapeValue: false }
|
||||
})
|
||||
"
|
||||
></bdi>
|
||||
</span>
|
||||
</div>
|
||||
<div class="action-icon" role="presentation">
|
||||
<FailoverImg
|
||||
:src="message.account.avatar"
|
||||
:alt="`Avatar of ${message.account.username}`"
|
||||
/>
|
||||
<FailoverImg :src="message.account.avatar" :alt="`Avatar of ${message.account.username}`" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="target" v-on:dblclick="openDetail(message.status)">
|
||||
<div class="icon" @click="openUser(message.status.account)">
|
||||
<FailoverImg
|
||||
:src="message.status.account.avatar"
|
||||
:alt="`Avatar of ${message.status.account.username}`"
|
||||
role="presentation"
|
||||
/>
|
||||
<FailoverImg :src="message.status.account.avatar" :alt="`Avatar of ${message.status.account.username}`" role="presentation" />
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="toot-header">
|
||||
<div class="user" @click="openUser(message.status.account)">
|
||||
<span class="display-name"
|
||||
><bdi v-html="username(message.status.account)"></bdi
|
||||
></span>
|
||||
<span class="display-name"><bdi v-html="username(message.status.account)"></bdi></span>
|
||||
</div>
|
||||
<div class="timestamp">
|
||||
{{ parseDatetime(message.status.created_at) }}
|
||||
|
@ -79,14 +50,7 @@
|
|||
>
|
||||
{{ $t('cards.toot.show_more') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
plain
|
||||
type="primary"
|
||||
size="medium"
|
||||
class="spoil-button"
|
||||
@click="showContent = false"
|
||||
>
|
||||
<el-button v-else plain type="primary" size="medium" class="spoil-button" @click="showContent = false">
|
||||
{{ $t('cards.toot.hide') }}
|
||||
</el-button>
|
||||
</div>
|
||||
|
@ -99,9 +63,7 @@
|
|||
</div>
|
||||
<div class="attachments">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && !isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && !isShowAttachments(message.status)"
|
||||
class="show-sensitive"
|
||||
type="info"
|
||||
@click="showAttachments = true"
|
||||
|
@ -110,9 +72,7 @@
|
|||
</el-button>
|
||||
<div v-show="isShowAttachments(message.status)">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && isShowAttachments(message.status)"
|
||||
class="hide-sensitive"
|
||||
type="text"
|
||||
@click="showAttachments = false"
|
||||
|
@ -120,28 +80,10 @@
|
|||
>
|
||||
<font-awesome-icon icon="eye" class="hide" />
|
||||
</el-button>
|
||||
<div
|
||||
class="media"
|
||||
v-bind:key="media.preview_url"
|
||||
v-for="media in mediaAttachments(message.status)"
|
||||
>
|
||||
<FailoverImg
|
||||
:src="media.preview_url"
|
||||
:title="media.description"
|
||||
:readExif="true"
|
||||
/>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-if="media.type == 'gifv'"
|
||||
>GIF</el-tag
|
||||
>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-else-if="media.type == 'video'"
|
||||
>VIDEO</el-tag
|
||||
>
|
||||
<div class="media" v-bind:key="media.preview_url" v-for="media in mediaAttachments(message.status)">
|
||||
<FailoverImg :src="media.preview_url" :title="media.description" :readExif="true" />
|
||||
<el-tag class="media-label" size="mini" v-if="media.type == 'gifv'">GIF</el-tag>
|
||||
<el-tag class="media-label" size="mini" v-else-if="media.type == 'video'">VIDEO</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
@ -175,42 +117,42 @@ export default {
|
|||
name: 'reaction',
|
||||
components: {
|
||||
FailoverImg,
|
||||
LinkPreview,
|
||||
LinkPreview
|
||||
},
|
||||
props: {
|
||||
message: {
|
||||
type: Object,
|
||||
default: {},
|
||||
default: {}
|
||||
},
|
||||
filters: {
|
||||
type: Array,
|
||||
default: [],
|
||||
default: []
|
||||
},
|
||||
focused: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
},
|
||||
overlaid: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showContent: false,
|
||||
showAttachments: false,
|
||||
showAttachments: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState('App', {
|
||||
displayNameStyle: (state) => state.displayNameStyle,
|
||||
timeFormat: (state) => state.timeFormat,
|
||||
language: (state) => state.language,
|
||||
hideAllAttachments: (state) => state.hideAllAttachments,
|
||||
displayNameStyle: state => state.displayNameStyle,
|
||||
timeFormat: state => state.timeFormat,
|
||||
language: state => state.language,
|
||||
hideAllAttachments: state => state.hideAllAttachments
|
||||
}),
|
||||
shortcutEnabled: function () {
|
||||
return this.focused && !this.overlaid
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.focused) {
|
||||
|
@ -228,7 +170,7 @@ export default {
|
|||
this.$refs.status.blur()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
username(account) {
|
||||
|
@ -256,31 +198,17 @@ export default {
|
|||
}
|
||||
const parsedAccount = findAccount(e.target, 'favourite')
|
||||
if (parsedAccount !== null) {
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
this.$store
|
||||
.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/searchAccount',
|
||||
parsedAccount
|
||||
)
|
||||
.then((account) => {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/searchAccount', parsedAccount)
|
||||
.then(account => {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
})
|
||||
.catch((err) => {
|
||||
.catch(err => {
|
||||
console.error(err)
|
||||
this.openLink(e)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
false
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', false)
|
||||
})
|
||||
return parsedAccount.acct
|
||||
}
|
||||
|
@ -293,28 +221,14 @@ export default {
|
|||
}
|
||||
},
|
||||
openUser(account) {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
openDetail(message) {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openTootComponent')
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/TootDetail/changeToot',
|
||||
message
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/TootDetail/changeToot', message)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
mediaAttachments(message) {
|
||||
return message.media_attachments
|
||||
|
@ -329,10 +243,7 @@ export default {
|
|||
return !this.spoilered(message) || this.showContent
|
||||
},
|
||||
sensitive(message) {
|
||||
return (
|
||||
(this.hideAllAttachments || message.sensitive) &&
|
||||
this.mediaAttachments(message).length > 0
|
||||
)
|
||||
return (this.hideAllAttachments || message.sensitive) && this.mediaAttachments(message).length > 0
|
||||
},
|
||||
isShowAttachments(message) {
|
||||
return !this.sensitive(message) || this.showAttachments
|
||||
|
@ -364,8 +275,8 @@ export default {
|
|||
this.openUser(this.message.account)
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -1,25 +1,5 @@
|
|||
<template>
|
||||
<div
|
||||
class="status"
|
||||
tabIndex="0"
|
||||
v-shortkey="
|
||||
shortcutEnabled
|
||||
? {
|
||||
next: ['j'],
|
||||
prev: ['k'],
|
||||
right: ['l'],
|
||||
left: ['h'],
|
||||
open: ['o'],
|
||||
profile: ['p'],
|
||||
}
|
||||
: {}
|
||||
"
|
||||
@shortkey="handleStatusControl"
|
||||
ref="status"
|
||||
@click="$emit('select')"
|
||||
role="article"
|
||||
aria-label="reblogged toot"
|
||||
>
|
||||
<div class="status" tabIndex="0" ref="status" @click="$emit('select')" role="article" aria-label="reblogged toot">
|
||||
<div v-show="filtered(message)" class="filtered">Filtered</div>
|
||||
<div v-show="!filtered(message)" class="reblog">
|
||||
<div class="action">
|
||||
|
@ -32,30 +12,20 @@
|
|||
v-html="
|
||||
$t('notification.reblog.body', {
|
||||
username: username(message.account),
|
||||
interpolation: { escapeValue: false },
|
||||
interpolation: { escapeValue: false }
|
||||
})
|
||||
"
|
||||
></bdi>
|
||||
</span>
|
||||
</div>
|
||||
<div class="action-icon" role="presentation">
|
||||
<FailoverImg
|
||||
:src="message.account.avatar"
|
||||
:alt="`Avatar of ${message.account.username}`"
|
||||
/>
|
||||
<FailoverImg :src="message.account.avatar" :alt="`Avatar of ${message.account.username}`" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="target" v-on:dblclick="openDetail(message.status)">
|
||||
<div
|
||||
class="icon"
|
||||
@click="openUser(message.status.account)"
|
||||
role="presentation"
|
||||
>
|
||||
<FailoverImg
|
||||
:src="message.status.account.avatar"
|
||||
:alt="`Avatar of ${message.status.account.username}`"
|
||||
/>
|
||||
<div class="icon" @click="openUser(message.status.account)" role="presentation">
|
||||
<FailoverImg :src="message.status.account.avatar" :alt="`Avatar of ${message.status.account.username}`" />
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="toot-header">
|
||||
|
@ -82,14 +52,7 @@
|
|||
>
|
||||
{{ $t('cards.toot.show_more') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
plain
|
||||
type="primary"
|
||||
size="medium"
|
||||
class="spoil-button"
|
||||
@click="showContent = false"
|
||||
>
|
||||
<el-button v-else plain type="primary" size="medium" class="spoil-button" @click="showContent = false">
|
||||
{{ $t('cards.toot.hide') }}
|
||||
</el-button>
|
||||
</div>
|
||||
|
@ -102,9 +65,7 @@
|
|||
</div>
|
||||
<div class="attachments">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && !isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && !isShowAttachments(message.status)"
|
||||
class="show-sensitive"
|
||||
type="info"
|
||||
@click="showAttachments = true"
|
||||
|
@ -113,9 +74,7 @@
|
|||
</el-button>
|
||||
<div v-show="isShowAttachments(message.status)">
|
||||
<el-button
|
||||
v-show="
|
||||
sensitive(message.status) && isShowAttachments(message.status)
|
||||
"
|
||||
v-show="sensitive(message.status) && isShowAttachments(message.status)"
|
||||
class="hide-sensitive"
|
||||
type="text"
|
||||
@click="showAttachments = false"
|
||||
|
@ -123,28 +82,10 @@
|
|||
>
|
||||
<font-awesome-icon icon="eye" class="hide" />
|
||||
</el-button>
|
||||
<div
|
||||
class="media"
|
||||
v-bind:key="media.preview_url"
|
||||
v-for="media in mediaAttachments(message.status)"
|
||||
>
|
||||
<FailoverImg
|
||||
:src="media.preview_url"
|
||||
:title="media.description"
|
||||
:readExif="true"
|
||||
/>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-if="media.type == 'gifv'"
|
||||
>GIF</el-tag
|
||||
>
|
||||
<el-tag
|
||||
class="media-label"
|
||||
size="mini"
|
||||
v-else-if="media.type == 'video'"
|
||||
>VIDEO</el-tag
|
||||
>
|
||||
<div class="media" v-bind:key="media.preview_url" v-for="media in mediaAttachments(message.status)">
|
||||
<FailoverImg :src="media.preview_url" :title="media.description" :readExif="true" />
|
||||
<el-tag class="media-label" size="mini" v-if="media.type == 'gifv'">GIF</el-tag>
|
||||
<el-tag class="media-label" size="mini" v-else-if="media.type == 'video'">VIDEO</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
@ -178,41 +119,41 @@ export default {
|
|||
name: 'reblog',
|
||||
components: {
|
||||
FailoverImg,
|
||||
LinkPreview,
|
||||
LinkPreview
|
||||
},
|
||||
props: {
|
||||
message: {
|
||||
type: Object,
|
||||
default: {},
|
||||
default: {}
|
||||
},
|
||||
filters: {
|
||||
type: Array,
|
||||
default: [],
|
||||
default: []
|
||||
},
|
||||
focused: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
},
|
||||
overlaid: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showContent: false,
|
||||
showAttachments: false,
|
||||
showAttachments: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState('App', {
|
||||
timeFormat: (state) => state.timeFormat,
|
||||
language: (state) => state.language,
|
||||
hideAllAttachments: (state) => state.hideAllAttachments,
|
||||
timeFormat: state => state.timeFormat,
|
||||
language: state => state.language,
|
||||
hideAllAttachments: state => state.hideAllAttachments
|
||||
}),
|
||||
shortcutEnabled: function () {
|
||||
return this.focused && !this.overlaid
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.focused) {
|
||||
|
@ -230,7 +171,7 @@ export default {
|
|||
this.$refs.status.blur()
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
username(account) {
|
||||
|
@ -258,30 +199,16 @@ export default {
|
|||
}
|
||||
const parsedAccount = findAccount(e.target, 'reblog')
|
||||
if (parsedAccount !== null) {
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
this.$store
|
||||
.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/searchAccount',
|
||||
parsedAccount
|
||||
)
|
||||
.then((account) => {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/searchAccount', parsedAccount)
|
||||
.then(account => {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
})
|
||||
.catch(() => {
|
||||
this.openLink(e)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
false
|
||||
)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', false)
|
||||
})
|
||||
return parsedAccount
|
||||
}
|
||||
|
@ -294,28 +221,14 @@ export default {
|
|||
}
|
||||
},
|
||||
openUser(account) {
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/openAccountComponent'
|
||||
)
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/AccountProfile/changeAccount',
|
||||
account
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openAccountComponent')
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/AccountProfile/changeAccount', account)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
openDetail(message) {
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/openTootComponent')
|
||||
this.$store.dispatch(
|
||||
'TimelineSpace/Contents/SideBar/TootDetail/changeToot',
|
||||
message
|
||||
)
|
||||
this.$store.commit(
|
||||
'TimelineSpace/Contents/SideBar/changeOpenSideBar',
|
||||
true
|
||||
)
|
||||
this.$store.dispatch('TimelineSpace/Contents/SideBar/TootDetail/changeToot', message)
|
||||
this.$store.commit('TimelineSpace/Contents/SideBar/changeOpenSideBar', true)
|
||||
},
|
||||
mediaAttachments(message) {
|
||||
return message.media_attachments
|
||||
|
@ -330,10 +243,7 @@ export default {
|
|||
return !this.spoilered(message) || this.showContent
|
||||
},
|
||||
sensitive(message) {
|
||||
return (
|
||||
(this.hideAllAttachments || message.sensitive) &&
|
||||
this.mediaAttachments(message).length > 0
|
||||
)
|
||||
return (this.hideAllAttachments || message.sensitive) && this.mediaAttachments(message).length > 0
|
||||
},
|
||||
isShowAttachments(message) {
|
||||
return !this.sensitive(message) || this.showAttachments
|
||||
|
@ -365,8 +275,8 @@ export default {
|
|||
this.openUser(this.message.account)
|
||||
break
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -70,8 +70,8 @@ import { sync } from 'vuex-router-sync'
|
|||
import { createI18n } from 'vue-i18n'
|
||||
import 'vue-resize/dist/vue-resize.css'
|
||||
import VueResize from 'vue-resize'
|
||||
import VueVirtualScroller from 'vue-virtual-scroller'
|
||||
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'
|
||||
import VueVirtualScroller from '@h3poteto/vue-virtual-scroller'
|
||||
import '@h3poteto/vue-virtual-scroller/dist/vue-virtual-scroller.css'
|
||||
|
||||
import './assets/fonts/fonts.css'
|
||||
import App from './App.vue'
|
||||
|
|
36
yarn.lock
36
yarn.lock
|
@ -1143,6 +1143,15 @@
|
|||
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
|
||||
integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
|
||||
|
||||
"@h3poteto/vue-virtual-scroller@2.0.0-alpha.1":
|
||||
version "2.0.0-alpha.1"
|
||||
resolved "https://npm.pkg.github.com/download/@h3poteto/vue-virtual-scroller/2.0.0-alpha.1/202991053ed05fd7f919ac4451e35a6e8a8f2d5297f042c3f2a7c5de34b05288#793c1b17f3515cd29dc267e67d1a61a90aeec9f1"
|
||||
integrity sha512-gfSCGPGAEBuk6znAsFb/0vj6FiCbvEPXhipAojWECyFPtnFF3XH36So37CfHT7i7+96Mq+e1GfV8HfO6SQaaVg==
|
||||
dependencies:
|
||||
mitt "^2.1.0"
|
||||
vue-observe-visibility "^2.0.0-alpha.1"
|
||||
vue-resize "^2.0.0-alpha.1"
|
||||
|
||||
"@humanwhocodes/config-array@^0.5.0":
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
|
||||
|
@ -4391,11 +4400,6 @@ csstype@^2.6.8:
|
|||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda"
|
||||
integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==
|
||||
|
||||
custom-event-polyfill@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz#9bc993ddda937c1a30ccd335614c6c58c4f87aee"
|
||||
integrity sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==
|
||||
|
||||
dashdash@^1.12.0:
|
||||
version "1.14.1"
|
||||
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
|
||||
|
@ -5073,11 +5077,6 @@ elegant-spinner@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
|
||||
integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
|
||||
|
||||
element-matches@^0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/element-matches/-/element-matches-0.1.2.tgz#7345cb71e965bd2b12f725e524591c102198361a"
|
||||
integrity sha512-yWh1otcs3OKUWDvu/IxyI36ZI3WNaRZlI0uG/DK6fu0pap0VYZ0J5pEGTk1zakme+hT0OKHwhlHc0N5TJhY6yQ==
|
||||
|
||||
element-plus@^2.1.9:
|
||||
version "2.1.9"
|
||||
resolved "https://registry.yarnpkg.com/element-plus/-/element-plus-2.1.9.tgz#8779b041f32f871eef2f903ee4c0da16dfb13024"
|
||||
|
@ -12420,14 +12419,6 @@ vue-router@^4.0.14:
|
|||
dependencies:
|
||||
"@vue/devtools-api" "^6.0.0"
|
||||
|
||||
vue-shortkey@^3.1.7:
|
||||
version "3.1.7"
|
||||
resolved "https://registry.yarnpkg.com/vue-shortkey/-/vue-shortkey-3.1.7.tgz#31c09a99ed597331a6a49a45eeff894a78a19eef"
|
||||
integrity sha512-Wm/vPXXS+4Wl/LoYpD+cZc0J0HIoVlY8Ep0JLIqqswmAya3XUBtsqKbhzEf9sXo+3rZ5p1YsUyZfXas8XD7YjQ==
|
||||
dependencies:
|
||||
custom-event-polyfill "^1.0.7"
|
||||
element-matches "^0.1.2"
|
||||
|
||||
vue-style-loader@^4.1.3:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35"
|
||||
|
@ -12445,15 +12436,6 @@ vue-virtual-scroller@^1.0.10:
|
|||
vue-observe-visibility "^0.4.4"
|
||||
vue-resize "^0.4.5"
|
||||
|
||||
vue-virtual-scroller@^2.0.0-alpha.1:
|
||||
version "2.0.0-alpha.1"
|
||||
resolved "https://registry.yarnpkg.com/vue-virtual-scroller/-/vue-virtual-scroller-2.0.0-alpha.1.tgz#5b5410105b8e60ca57bbd5f2faf5ad1d8108d046"
|
||||
integrity sha512-Mn5w3Qe06t7c3Imm2RHD43RACab1CCWplpdgzq+/FWJcpQtcGKd5vDep8i+nIwFtzFLsWAqEK0RzM7KrfAcBng==
|
||||
dependencies:
|
||||
mitt "^2.1.0"
|
||||
vue-observe-visibility "^2.0.0-alpha.1"
|
||||
vue-resize "^2.0.0-alpha.1"
|
||||
|
||||
vue@^3.2.31:
|
||||
version "3.2.33"
|
||||
resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.33.tgz#7867eb16a3293a28c4d190a837bc447878bd64c2"
|
||||
|
|
Loading…
Reference in New Issue