46 lines
851 B
Vue
46 lines
851 B
Vue
|
<script>
|
||
|
export default {
|
||
|
props: {
|
||
|
entityId: {
|
||
|
type: Number,
|
||
|
required: true,
|
||
|
},
|
||
|
entityName: {
|
||
|
type: String,
|
||
|
required: true,
|
||
|
},
|
||
|
},
|
||
|
computed: {
|
||
|
/**
|
||
|
* This method is based on app/helpers/application_helper.rb#project_identicon
|
||
|
*/
|
||
|
identiconStyles() {
|
||
|
const allowedColors = [
|
||
|
'#FFEBEE',
|
||
|
'#F3E5F5',
|
||
|
'#E8EAF6',
|
||
|
'#E3F2FD',
|
||
|
'#E0F2F1',
|
||
|
'#FBE9E7',
|
||
|
'#EEEEEE',
|
||
|
];
|
||
|
|
||
|
const backgroundColor = allowedColors[this.entityId % 7];
|
||
|
|
||
|
return `background-color: ${backgroundColor}; color: #555;`;
|
||
|
},
|
||
|
identiconTitle() {
|
||
|
return this.entityName.charAt(0).toUpperCase();
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
</script>
|
||
|
|
||
|
<template>
|
||
|
<div
|
||
|
class="avatar s40 identicon"
|
||
|
:style="identiconStyles">
|
||
|
{{identiconTitle}}
|
||
|
</div>
|
||
|
</template>
|