ハッシュタグもデッキ内ナビゲーションするように

This commit is contained in:
syuilo 2018-10-20 08:03:45 +09:00
parent 890ecb693f
commit 77ddd778be
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
3 changed files with 51 additions and 2 deletions

View file

@ -66,7 +66,7 @@ init(async (launch) => {
{ path: '/i/drive/folder/:folder', component: MkDrive }, { path: '/i/drive/folder/:folder', component: MkDrive },
{ path: '/selectdrive', component: MkSelectDrive }, { path: '/selectdrive', component: MkSelectDrive },
{ path: '/search', component: MkSearch }, { path: '/search', component: MkSearch },
{ path: '/tags/:tag', component: MkTag }, { path: '/tags/:tag', name: 'tag', component: MkTag },
{ path: '/share', component: MkShare }, { path: '/share', component: MkShare },
{ path: '/reversi/:game?', component: MkReversi }, { path: '/reversi/:game?', component: MkReversi },
{ path: '/@:user', name: 'user', component: MkUser }, { path: '/@:user', name: 'user', component: MkUser },

View file

@ -0,0 +1,37 @@
<template>
<x-column>
<span slot="header">
%fa:hashtag%<span>{{ tag }}</span>
</span>
<x-hashtag-tl :tag-tl="tagTl"/>
</x-column>
</template>
<script lang="ts">
import Vue from 'vue';
import XColumn from './deck.column.vue';
import XHashtagTl from './deck.hashtag-tl.vue';
export default Vue.extend({
components: {
XColumn,
XHashtagTl
},
props: {
tag: {
type: String,
required: true
}
},
computed: {
tagTl(): any {
return {
query: [[this.tag]]
};
}
}
});
</script>

View file

@ -12,6 +12,7 @@
<template v-if="temporaryColumn"> <template v-if="temporaryColumn">
<x-user-column v-if="temporaryColumn.type == 'user'" :acct="temporaryColumn.acct" :key="temporaryColumn.acct"/> <x-user-column v-if="temporaryColumn.type == 'user'" :acct="temporaryColumn.acct" :key="temporaryColumn.acct"/>
<x-note-column v-else-if="temporaryColumn.type == 'note'" :note-id="temporaryColumn.noteId" :key="temporaryColumn.noteId"/> <x-note-column v-else-if="temporaryColumn.type == 'note'" :note-id="temporaryColumn.noteId" :key="temporaryColumn.noteId"/>
<x-hashtag-column v-else-if="temporaryColumn.type == 'tag'" :tag="temporaryColumn.tag" :key="temporaryColumn.tag"/>
</template> </template>
<button ref="add" @click="add" title="%i18n:common.deck.add-column%">%fa:plus%</button> <button ref="add" @click="add" title="%i18n:common.deck.add-column%">%fa:plus%</button>
</div> </div>
@ -25,6 +26,7 @@ import Menu from '../../../../common/views/components/menu.vue';
import MkUserListsWindow from '../../components/user-lists-window.vue'; import MkUserListsWindow from '../../components/user-lists-window.vue';
import XUserColumn from './deck.user-column.vue'; import XUserColumn from './deck.user-column.vue';
import XNoteColumn from './deck.note-column.vue'; import XNoteColumn from './deck.note-column.vue';
import XHashtagColumn from './deck.hashtag-column.vue';
import * as uuid from 'uuid'; import * as uuid from 'uuid';
@ -32,7 +34,8 @@ export default Vue.extend({
components: { components: {
XColumnCore, XColumnCore,
XUserColumn, XUserColumn,
XNoteColumn XNoteColumn,
XHashtagColumn
}, },
computed: { computed: {
@ -162,6 +165,15 @@ export default Vue.extend({
} }
}); });
return true; return true;
} else if (to.name == 'tag') {
this.$store.commit('device/set', {
key: 'deckTemporaryColumn',
value: {
type: 'tag',
tag: to.params.tag
}
});
return true;
} }
}, },