UserLink.vue 839 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <template>
  2. <router-link
  3. v-if="$props.link && user.username"
  4. :to="{ path: `/u/${user.username}` }"
  5. :title="userId"
  6. >
  7. {{ user.name }}
  8. </router-link>
  9. <span v-else :title="userId">
  10. {{ user.name }}
  11. </span>
  12. </template>
  13. <script>
  14. import { mapActions } from "vuex";
  15. export default {
  16. props: {
  17. userId: { type: String, default: "" },
  18. link: { type: Boolean, default: true }
  19. },
  20. data() {
  21. return {
  22. user: {
  23. name: "Unknown",
  24. username: null
  25. }
  26. };
  27. },
  28. mounted() {
  29. this.getBasicUser(this.$props.userId).then(user => {
  30. if (user)
  31. this.user = {
  32. name: user.name,
  33. username: user.username
  34. };
  35. });
  36. },
  37. methods: {
  38. ...mapActions("user/auth", ["getBasicUser"])
  39. }
  40. };
  41. </script>
  42. <style lang="less" scoped>
  43. a {
  44. color: var(--primary-color);
  45. &:hover,
  46. &:focus {
  47. filter: brightness(90%);
  48. }
  49. }
  50. </style>