refs #2258 Apply filter to account timeline
This commit is contained in:
parent
968921b8fd
commit
6c8dc8743a
|
@ -1,14 +1,17 @@
|
|||
<template>
|
||||
<div class="tabs" id="sidebar_tabs">
|
||||
<el-tabs v-model="activeName" @tab-click="handleClick" stretch>
|
||||
<el-tab-pane label="Posts" name="posts"><Posts :account="account" :buffer="buffer" /></el-tab-pane>
|
||||
<el-tab-pane label="Posts and replies" name="posts_and_replies"><PostsAndReplies :account="account" :buffer="buffer" /></el-tab-pane>
|
||||
<el-tab-pane label="Media" name="media"><Media :account="account" :buffer="buffer" /></el-tab-pane>
|
||||
<el-tab-pane label="Posts" name="posts"><Posts :account="account" :buffer="buffer" :filters="filters" /></el-tab-pane>
|
||||
<el-tab-pane label="Posts and replies" name="posts_and_replies"
|
||||
><PostsAndReplies :account="account" :buffer="buffer" :filters="filters"
|
||||
/></el-tab-pane>
|
||||
<el-tab-pane label="Media" name="media"><Media :account="account" :buffer="buffer" :filters="filters" /></el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapGetters } from 'vuex'
|
||||
import Posts from './Timeline/Posts'
|
||||
import PostsAndReplies from './Timeline/PostsAndReplies'
|
||||
import Media from './Timeline/Media'
|
||||
|
@ -28,6 +31,9 @@ export default {
|
|||
buffer: 200
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters('TimelineSpace/Contents/SideBar/AccountProfile/Timeline', ['filters'])
|
||||
},
|
||||
mounted() {
|
||||
const timeline = document.getElementById('sidebar_tabs')
|
||||
if (timeline !== undefined && timeline !== null) {
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
:key="item.id"
|
||||
:focused="item.uri + item.id === focusedId"
|
||||
:overlaid="modalOpened"
|
||||
:filters="filters"
|
||||
v-on:update="updateToot"
|
||||
v-on:delete="deleteToot"
|
||||
@focusNext="focusNext"
|
||||
|
@ -30,7 +31,7 @@ import { Event } from '~/src/renderer/components/event'
|
|||
|
||||
export default {
|
||||
name: 'media',
|
||||
props: ['account', 'buffer'],
|
||||
props: ['account', 'buffer', 'filters'],
|
||||
components: { Toot },
|
||||
data() {
|
||||
return {
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
:focused="message.uri + message.id === focusedId"
|
||||
:pinned="true"
|
||||
:overlaid="modalOpened"
|
||||
:filters="filters"
|
||||
v-on:update="updatePinnedToot"
|
||||
v-on:delete="deleteToot"
|
||||
@focusNext="focusNext"
|
||||
|
@ -24,6 +25,7 @@
|
|||
:key="item.id"
|
||||
:focused="item.uri + item.id === focusedId"
|
||||
:overlaid="modalOpened"
|
||||
:filters="filters"
|
||||
v-on:update="updateToot"
|
||||
v-on:delete="deleteToot"
|
||||
@focusNext="focusNext"
|
||||
|
@ -46,7 +48,7 @@ import { Event } from '~/src/renderer/components/event'
|
|||
|
||||
export default {
|
||||
name: 'posts',
|
||||
props: ['account', 'buffer'],
|
||||
props: ['account', 'buffer', 'filters'],
|
||||
components: { Toot },
|
||||
data() {
|
||||
return {
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
:key="item.id"
|
||||
:focused="item.uri + item.id === focusedId"
|
||||
:overlaid="modalOpened"
|
||||
:filters="filters"
|
||||
v-on:update="updateToot"
|
||||
v-on:delete="deleteToot"
|
||||
@focusNext="focusNext"
|
||||
|
@ -30,7 +31,7 @@ import { Event } from '~/src/renderer/components/event'
|
|||
|
||||
export default {
|
||||
name: 'posts-and-replies',
|
||||
props: ['account', 'buffer'],
|
||||
props: ['account', 'buffer', 'filters'],
|
||||
components: { Toot },
|
||||
data() {
|
||||
return {
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
import { Module } from 'vuex'
|
||||
import { GetterTree, Module } from 'vuex'
|
||||
import { RootState } from '@/store'
|
||||
|
||||
import Posts, { PostsState } from './Timeline/Posts'
|
||||
import PostsAndReplies, { PostsAndRepliesState } from './Timeline/PostsAndReplies'
|
||||
import Media, { MediaState } from './Timeline/Media'
|
||||
import { FilterContext } from 'megalodon'
|
||||
|
||||
export type TimelineState = {}
|
||||
|
||||
|
@ -17,6 +18,12 @@ export type TimelineModuleState = TimelineModule & TimelineState
|
|||
|
||||
const state = (): TimelineState => ({})
|
||||
|
||||
const getters: GetterTree<TimelineState, RootState> = {
|
||||
filters: (_state, _getters, rootState) => {
|
||||
return rootState.TimelineSpace.filters.filter(f => f.context.includes(FilterContext.Account) && !f.irreversible)
|
||||
}
|
||||
}
|
||||
|
||||
const Timeline: Module<TimelineState, RootState> = {
|
||||
namespaced: true,
|
||||
modules: {
|
||||
|
@ -24,7 +31,8 @@ const Timeline: Module<TimelineState, RootState> = {
|
|||
PostsAndReplies,
|
||||
Media
|
||||
},
|
||||
state: state
|
||||
state: state,
|
||||
getters: getters
|
||||
}
|
||||
|
||||
export default Timeline
|
||||
|
|
Loading…
Reference in New Issue