From b65128fcc409df63309d8fc6d9d1da9d07cc0473 Mon Sep 17 00:00:00 2001 From: Azri Kahar <42867097+azrikahar@users.noreply.github.com> Date: Fri, 10 Sep 2021 03:08:24 +0800 Subject: [PATCH] add click event for user tooltip & go to user page (#7954) --- .../components/user-popover/user-popover.vue | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/app/src/views/private/components/user-popover/user-popover.vue b/app/src/views/private/components/user-popover/user-popover.vue index 90b49e5e7f..eaebc34df6 100644 --- a/app/src/views/private/components/user-popover/user-popover.vue +++ b/app/src/views/private/components/user-popover/user-popover.vue @@ -15,7 +15,7 @@ {{ error }} -
+
@@ -36,15 +36,8 @@ import api from '@/api'; import { getRootPath } from '@/utils/get-root-path'; import { userName } from '@/utils/user-name'; import { addTokenToURL } from '@/api'; - -type User = { - first_name: string; - last_name: string; - email: string; - avatar: { - id: string; - }; -}; +import { useRouter } from 'vue-router'; +import { User } from '@directus/shared/types'; export default defineComponent({ props: { @@ -56,6 +49,8 @@ export default defineComponent({ setup(props) { const { t } = useI18n(); + const router = useRouter(); + const loading = ref(false); const error = ref(null); const data = ref(null); @@ -83,7 +78,7 @@ export default defineComponent({ data.value = null; }); - return { t, loading, error, data, active, avatarSrc, userName }; + return { t, loading, error, data, active, avatarSrc, userName, navigateToUser }; async function fetchUser() { loading.value = true; @@ -92,7 +87,7 @@ export default defineComponent({ try { const response = await api.get(`/users/${props.user}`, { params: { - fields: ['email', 'first_name', 'last_name', 'avatar.id', 'role.name', 'status', 'email'], + fields: ['id', 'first_name', 'last_name', 'avatar.id', 'role.name', 'status', 'email'], }, }); data.value = response.data.data; @@ -102,6 +97,10 @@ export default defineComponent({ loading.value = false; } } + + function navigateToUser() { + if (data.value) router.push(`/users/${data.value.id}`); + } }, }); @@ -114,8 +113,8 @@ export default defineComponent({ .user-box { display: flex; min-width: 300px; - height: 80px; - margin: 8px 4px; + padding: 8px 4px; + cursor: pointer; .v-avatar { margin-right: 16px;