Skip to content

Commit

Permalink
fix(groups): display color avatar in sidebar if no picture found
Browse files Browse the repository at this point in the history
  • Loading branch information
josephmcg committed Jun 2, 2022
1 parent d81a482 commit 9ac6343
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 72 deletions.
2 changes: 1 addition & 1 deletion components/ui/Circle/Circle.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
@click="() => {$emit('click')}"
>
<img
:src="source"
v-if="type === 'image' && source"
:src="source"
alt="Circle Image"
:class="`${square ? 'is-square' : 'is-rounded'} image`"
data-cy="circle-has-picture"
Expand Down
10 changes: 0 additions & 10 deletions components/views/group/clickable/Clickable.vue
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,11 @@ import Vue, { PropType } from 'vue'
import ContextMenu from '~/components/mixins/UI/ContextMenu'
import { Group } from '~/store/groups/types'
declare module 'vue/types/vue' {
interface Vue {
testFunc: () => void
}
}
export default Vue.extend({
mixins: [ContextMenu],
props: {
group: {
type: Object as PropType<Group>,
default: () => ({
name: '',
address: '',
motd: '',
}),
required: true,
},
isSelected: {
Expand Down
28 changes: 19 additions & 9 deletions components/views/group/icon/GroupIcon.html
Original file line number Diff line number Diff line change
@@ -1,27 +1,37 @@
<div :class="['group-icon', group.members.length > 3 ? 'unread' : '']">
<div v-if="group.members.length > 2" class="group-multi">
<div v-if="group.members.length > 2" class="group multi">
<div
v-for="(member, i) in group.members.slice(0, 3)"
:class="[`group-el-${i}`]"
>
<UiCircle
type="image"
:type="getSource(member) ? 'image' : 'random'"
:source="getSource(member)"
:size="i === 2 ? 10 : i == 1 ? 20 : 30"
:seed="member.address"
/>
</div>
</div>
<div v-else-if="group.members.length === 2" class="group-double">
<div v-else-if="group.members.length === 2" class="group double">
<div v-for="(member, i) in group.members" :class="[`group-el-${i}`]">
<UiCircle type="image" :source="getSource(member)" :size="25" />
<UiCircle
:type="getSource(member) ? 'image' : 'random'"
:source="getSource(member)"
:size="25"
:seed="member.address"
/>
</div>
</div>
<div v-else>
<div v-for="member in group.members" class="group-single">
<UiCircle type="image" :source="getSource(member)" />
<div v-for="member in group.members" class="group single">
<UiCircle
:type="getSource(member) ? 'image' : 'random'"
:source="getSource(member)"
:seed="member.address"
/>
</div>
</div>
<span v-if="group.members.length > 3" class="label"
>{{group.members.length}}</span
>
<span v-if="group.members.length > 3" class="label">
{{group.members.length}}
</span>
</div>
91 changes: 44 additions & 47 deletions components/views/group/icon/GroupIcon.less
Original file line number Diff line number Diff line change
Expand Up @@ -5,70 +5,67 @@
border-radius: @half;
}

.group-multi {
.group {
width: 40px;
height: 40px;
position: relative;

& > div {
position: absolute;
}
&.multi {
& > div {
position: absolute;
}

.group-el-1 {
left: 0px;
bottom: 5px;
width: 20px;
height: 20px;
}
.group-el-0 {
right: 0;
top: 0;
}

.group-el-2 {
top: 0;
left: 0;
width: 15px;
height: 15px;
}
.group-el-1 {
left: 0px;
bottom: 5px;
width: 20px;
height: 20px;
}

.group-el-0 {
right: 0;
top: 0;
.group-el-2 {
top: 0;
left: 0;
width: 15px;
height: 15px;
}
}
}

.group-double {
width: 40px;
height: 40px;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
&.double {
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;

.group-el-0 {
position: absolute;
top: 5px;
left: 0;
}
& > div {
position: absolute;
}

.group-el-1 {
position: absolute;
bottom: 5px;
right: 0;
.group-el-0 {
top: 5px;
left: 0;
}

.group-el-1 {
bottom: 5px;
right: 0;
}
}
}

.group-single {
width: 40px;
height: 40px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
&.single {
display: flex;
align-items: center;
justify-content: center;
}
}

&.unread {
position: relative;

&:extend(.first-layer);
position: relative;

.label {
position: absolute;
Expand Down
5 changes: 0 additions & 5 deletions components/views/group/icon/GroupIcon.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,6 @@ export default Vue.extend({
props: {
group: {
type: Object as PropType<Group>,
default: () => ({
name: '',
address: '',
motd: '',
}),
required: true,
},
},
Expand Down

0 comments on commit 9ac6343

Please sign in to comment.