diff options
| author | Shpuld Shpludson <shp@cock.li> | 2020-07-21 09:11:11 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2020-07-21 09:11:11 +0000 |
| commit | f0e296296c3101bcd29e859ae39bf6efbec9a99c (patch) | |
| tree | 1e5489c2c0809c0050afc9126207364545e0d12c /src/components/user_list_popover | |
| parent | 4528c5c9828f7a467508a51ff021f60a68d90c6b (diff) | |
| parent | caae2668ce2da0b74f1332e7a4d55b4b504de040 (diff) | |
Merge branch 'feat/show-fav-rt-lists-on-hover' into 'develop'
Feat/show fav rt lists on hover
See merge request pleroma/pleroma-fe!1196
Diffstat (limited to 'src/components/user_list_popover')
| -rw-r--r-- | src/components/user_list_popover/user_list_popover.js | 18 | ||||
| -rw-r--r-- | src/components/user_list_popover/user_list_popover.vue | 71 |
2 files changed, 89 insertions, 0 deletions
diff --git a/src/components/user_list_popover/user_list_popover.js b/src/components/user_list_popover/user_list_popover.js new file mode 100644 index 00000000..b60f2c4c --- /dev/null +++ b/src/components/user_list_popover/user_list_popover.js @@ -0,0 +1,18 @@ + +const UserListPopover = { + name: 'UserListPopover', + props: [ + 'users' + ], + components: { + Popover: () => import('../popover/popover.vue'), + UserAvatar: () => import('../user_avatar/user_avatar.vue') + }, + computed: { + usersCapped () { + return this.users.slice(0, 16) + } + } +} + +export default UserListPopover diff --git a/src/components/user_list_popover/user_list_popover.vue b/src/components/user_list_popover/user_list_popover.vue new file mode 100644 index 00000000..185c73ca --- /dev/null +++ b/src/components/user_list_popover/user_list_popover.vue @@ -0,0 +1,71 @@ +<template> + <Popover + trigger="hover" + placement="top" + :offset="{ y: 5 }" + > + <template slot="trigger"> + <slot /> + </template> + <div + slot="content" + class="user-list-popover" + > + <div v-if="users.length"> + <div + v-for="(user) in usersCapped" + :key="user.id" + class="user-list-row" + > + <UserAvatar + :user="user" + class="avatar-small" + :compact="true" + /> + <div class="user-list-names"> + <!-- eslint-disable vue/no-v-html --> + <span v-html="user.name_html" /> + <!-- eslint-enable vue/no-v-html --> + <span class="user-list-screen-name">{{ user.screen_name }}</span> + </div> + </div> + </div> + <div v-else> + <i class="icon-spin4 animate-spin" /> + </div> + </div> + </Popover> +</template> + +<script src="./user_list_popover.js" ></script> + +<style lang="scss"> +@import '../../_variables.scss'; + +.user-list-popover { + padding: 0.5em; + + .user-list-row { + padding: 0.25em; + display: flex; + flex-direction: row; + + .user-list-names { + display: flex; + flex-direction: column; + margin-left: 0.5em; + min-width: 5em; + + img { + width: 1em; + height: 1em; + } + } + + .user-list-screen-name { + font-size: 9px; + } + } +} + +</style> |
