This repository was archived by the owner on May 7, 2021. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +38
-2
lines changed Expand file tree Collapse file tree 2 files changed +38
-2
lines changed Original file line number Diff line number Diff line change
1
+ <template >
2
+ <img :src =" src ? src : require('@/assets/no_image.png')" :srcset =" srcset" :alt =" alt" >
3
+ </template >
4
+ <script >
5
+ export default {
6
+ props: {
7
+ src: {
8
+ type: String ,
9
+ },
10
+ media: {
11
+ type: Array ,
12
+ default () {
13
+ return [];
14
+ },
15
+ },
16
+ alt: {
17
+ type: String ,
18
+ required: true ,
19
+ },
20
+ },
21
+ computed: {
22
+ srcset () {
23
+ if (! this .src ) return ' ' ;
24
+ return this .media .map (({ pixelRatio, size }) => ` ${ this .src } _${ size} ${ pixelRatio} ` ).join (' ,' );
25
+ },
26
+ },
27
+ };
28
+ </script >
Original file line number Diff line number Diff line change 4
4
<ul class =" member-list" >
5
5
<li v-for =" member in filteredList" :key =" member.user_id" >
6
6
<router-link :to =" { name: 'profile', params: { name: member.name }}" >
7
- <img :src =" member.icon_url ?
8
- `${member.icon_url}_64px` : require('@/assets/no_image.png')" alt =" User Icon" >
7
+ <ImgX
8
+ :src =" member.icon_url"
9
+ :media =" [
10
+ {pixelRatio: '1x', size: '64px'},
11
+ {pixelRatio: '2x', size: '128px'},
12
+ ]"
13
+ alt =" User Icon"
14
+ />
9
15
<dl >
10
16
<dt class =" name" >{{member.display_name || member.name}}</dt >
11
17
<dd class =" role" v-if =" member.role" >{{member.role.name}}</dd >
81
87
82
88
<script >
83
89
import ErrorMessage from ' @/components/ErrorMessage.vue' ;
90
+ import ImgX from ' @/components/ImgX.vue' ;
84
91
import { mapState , mapActions , mapGetters } from ' vuex' ;
85
92
86
93
export default {
@@ -93,6 +100,7 @@ export default {
93
100
},
94
101
components: {
95
102
ErrorMessage,
103
+ ImgX,
96
104
},
97
105
data () {
98
106
return {
You can’t perform that action at this time.
0 commit comments