diff options
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/side_drawer/side_drawer.js | 3 | ||||
| -rw-r--r-- | src/components/side_drawer/side_drawer.vue | 9 | ||||
| -rw-r--r-- | src/components/who_to_follow/who_to_follow.js | 48 | ||||
| -rw-r--r-- | src/components/who_to_follow/who_to_follow.vue | 15 | ||||
| -rw-r--r-- | src/components/who_to_follow_panel/who_to_follow_panel.js | 8 | ||||
| -rw-r--r-- | src/components/who_to_follow_panel/who_to_follow_panel.vue | 2 |
6 files changed, 74 insertions, 11 deletions
diff --git a/src/components/side_drawer/side_drawer.js b/src/components/side_drawer/side_drawer.js index 538b919d..754a57e0 100644 --- a/src/components/side_drawer/side_drawer.js +++ b/src/components/side_drawer/side_drawer.js @@ -23,6 +23,9 @@ const SideDrawer = { }, unseenNotificationsCount () { return this.unseenNotifications.length + }, + suggestionsEnabled () { + return this.$store.state.instance.suggestionsEnabled } }, methods: { diff --git a/src/components/side_drawer/side_drawer.vue b/src/components/side_drawer/side_drawer.vue index 7c792deb..386fff6a 100644 --- a/src/components/side_drawer/side_drawer.vue +++ b/src/components/side_drawer/side_drawer.vue @@ -62,12 +62,17 @@ </ul> <ul> <li @click="toggleDrawer"> - <router-link :to="{ name: 'user-search'}"> + <router-link :to="{ name: 'user-search' }"> {{ $t("nav.user_search") }} </router-link> </li> + <li v-if="currentUser && suggestionsEnabled" @click="toggleDrawer"> + <router-link :to="{ name: 'who-to-follow' }"> + {{ $t("nav.who_to_follow") }} + </router-link> + </li> <li @click="toggleDrawer"> - <router-link :to="{ name: 'settings'}"> + <router-link :to="{ name: 'settings' }"> {{ $t("settings.settings") }} </router-link> </li> diff --git a/src/components/who_to_follow/who_to_follow.js b/src/components/who_to_follow/who_to_follow.js new file mode 100644 index 00000000..82098fc2 --- /dev/null +++ b/src/components/who_to_follow/who_to_follow.js @@ -0,0 +1,48 @@ +import apiService from '../../services/api/api.service.js' +import UserCard from '../user_card/user_card.vue' + +const WhoToFollow = { + components: { + UserCard + }, + data () { + return { + users: [] + } + }, + mounted () { + this.getWhoToFollow() + }, + methods: { + showWhoToFollow (reply) { + reply.forEach((i, index) => { + const user = { + id: 0, + name: i.display_name, + screen_name: i.acct, + profile_image_url: i.avatar || '/images/avi.png' + } + this.users.push(user) + + this.$store.state.api.backendInteractor.externalProfile(user.screen_name) + .then((externalUser) => { + if (!externalUser.error) { + this.$store.commit('addNewUsers', [externalUser]) + user.id = externalUser.id + } + }) + }) + }, + getWhoToFollow () { + const credentials = this.$store.state.users.currentUser.credentials + if (credentials) { + apiService.suggestions({credentials: credentials}) + .then((reply) => { + this.showWhoToFollow(reply) + }) + } + } + } +} + +export default WhoToFollow diff --git a/src/components/who_to_follow/who_to_follow.vue b/src/components/who_to_follow/who_to_follow.vue new file mode 100644 index 00000000..df2e03c8 --- /dev/null +++ b/src/components/who_to_follow/who_to_follow.vue @@ -0,0 +1,15 @@ +<template> + <div class="panel panel-default"> + <div class="panel-heading"> + {{$t('who_to_follow.who_to_follow')}} + </div> + <div class="panel-body"> + <user-card v-for="user in users" :key="user.id" :user="user" :showFollows="true"></user-card> + </div> + </div> +</template> + +<script src="./who_to_follow.js"></script> + +<style lang="scss"> +</style> diff --git a/src/components/who_to_follow_panel/who_to_follow_panel.js b/src/components/who_to_follow_panel/who_to_follow_panel.js index fddc7c7d..5e204001 100644 --- a/src/components/who_to_follow_panel/who_to_follow_panel.js +++ b/src/components/who_to_follow_panel/who_to_follow_panel.js @@ -50,14 +50,6 @@ const WhoToFollowPanel = { user: function () { return this.$store.state.users.currentUser.screen_name }, - moreUrl: function () { - const host = window.location.hostname - const user = this.user - const suggestionsWeb = this.$store.state.instance.suggestionsWeb - const url = suggestionsWeb.replace(/{{host}}/g, encodeURIComponent(host)) - .replace(/{{user}}/g, encodeURIComponent(user)) - return url - }, suggestionsEnabled () { return this.$store.state.instance.suggestionsEnabled } diff --git a/src/components/who_to_follow_panel/who_to_follow_panel.vue b/src/components/who_to_follow_panel/who_to_follow_panel.vue index 272c41d3..25e3a9f6 100644 --- a/src/components/who_to_follow_panel/who_to_follow_panel.vue +++ b/src/components/who_to_follow_panel/who_to_follow_panel.vue @@ -13,7 +13,7 @@ {{user.name}} </router-link><br /> </span> - <img v-bind:src="$store.state.instance.logo"> <a v-bind:href="moreUrl" target="_blank">{{$t('who_to_follow.more')}}</a> + <img v-bind:src="$store.state.instance.logo"> <router-link :to="{ name: 'who-to-follow' }">{{$t('who_to_follow.more')}}</router-link> </div> </div> </div> |
