summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/app/desktop/script.ts2
-rw-r--r--src/client/app/desktop/views/pages/deck/deck.hashtag-column.vue37
-rw-r--r--src/client/app/desktop/views/pages/deck/deck.vue14
3 files changed, 51 insertions, 2 deletions
diff --git a/src/client/app/desktop/script.ts b/src/client/app/desktop/script.ts
index 6b81a5aa77..765ba0202e 100644
--- a/src/client/app/desktop/script.ts
+++ b/src/client/app/desktop/script.ts
@@ -66,7 +66,7 @@ init(async (launch) => {
{ path: '/i/drive/folder/:folder', component: MkDrive },
{ path: '/selectdrive', component: MkSelectDrive },
{ path: '/search', component: MkSearch },
- { path: '/tags/:tag', component: MkTag },
+ { path: '/tags/:tag', name: 'tag', component: MkTag },
{ path: '/share', component: MkShare },
{ path: '/reversi/:game?', component: MkReversi },
{ path: '/@:user', name: 'user', component: MkUser },
diff --git a/src/client/app/desktop/views/pages/deck/deck.hashtag-column.vue b/src/client/app/desktop/views/pages/deck/deck.hashtag-column.vue
new file mode 100644
index 0000000000..70058665e8
--- /dev/null
+++ b/src/client/app/desktop/views/pages/deck/deck.hashtag-column.vue
@@ -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>
diff --git a/src/client/app/desktop/views/pages/deck/deck.vue b/src/client/app/desktop/views/pages/deck/deck.vue
index 6c55f08b5c..3b3102bd72 100644
--- a/src/client/app/desktop/views/pages/deck/deck.vue
+++ b/src/client/app/desktop/views/pages/deck/deck.vue
@@ -12,6 +12,7 @@
<template v-if="temporaryColumn">
<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-hashtag-column v-else-if="temporaryColumn.type == 'tag'" :tag="temporaryColumn.tag" :key="temporaryColumn.tag"/>
</template>
<button ref="add" @click="add" title="%i18n:common.deck.add-column%">%fa:plus%</button>
</div>
@@ -25,6 +26,7 @@ import Menu from '../../../../common/views/components/menu.vue';
import MkUserListsWindow from '../../components/user-lists-window.vue';
import XUserColumn from './deck.user-column.vue';
import XNoteColumn from './deck.note-column.vue';
+import XHashtagColumn from './deck.hashtag-column.vue';
import * as uuid from 'uuid';
@@ -32,7 +34,8 @@ export default Vue.extend({
components: {
XColumnCore,
XUserColumn,
- XNoteColumn
+ XNoteColumn,
+ XHashtagColumn
},
computed: {
@@ -162,6 +165,15 @@ export default Vue.extend({
}
});
return true;
+ } else if (to.name == 'tag') {
+ this.$store.commit('device/set', {
+ key: 'deckTemporaryColumn',
+ value: {
+ type: 'tag',
+ tag: to.params.tag
+ }
+ });
+ return true;
}
},