Skip to content

Commit 584e39a

Browse files
committed
feat: Add default media aside styles
1 parent f4b6816 commit 584e39a

File tree

1 file changed

+27
-13
lines changed

1 file changed

+27
-13
lines changed

src/components/Media/CMedia.vue

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
<template>
22
<div :class="mediaClasses">
3-
<div :class="computedAsideClasses" >
3+
<div :class="asideClasses">
44
<slot name="aside">
5-
<CImage
6-
v-if="asideImage"
7-
v-bind="asideImage"
8-
/>
5+
<CImage v-bind="computedAsideImageProps"/>
96
</slot>
107
</div>
11-
<div :class="computedBodyClasses">
8+
<div :class="mediaBodyClasses">
129
<slot></slot>
1310
</div>
1411
</div>
1512
</template>
1613

17-
1814
<script>
1915
import CImage from '../Image/CImage'
2016
export default {
@@ -24,17 +20,35 @@ export default {
2420
addAsideClasses: String,
2521
addBodyClasses: String,
2622
asideRight: Boolean,
27-
asideImage: Object
23+
asideImageProps: Object,
24+
asidePosition: {
25+
type: String,
26+
default: 'start',
27+
validator: val => ['start', 'center', 'end', 'stretch'].includes(val)
28+
}
2829
},
2930
computed: {
31+
computedAsideImageProps () {
32+
return Object.assign(
33+
{
34+
blankColor: '#777777',
35+
width: '64px',
36+
height: this.asidePosition === 'stretch' ? '100%' : '64px'
37+
},
38+
this.asideImageProps || {}
39+
)
40+
},
3041
computedAsidePositionClasses () {
31-
return this.asidePositionClasses ||
32-
`c-m${this.asideRight? 'l' : 'r' }-3 c-align-self-start`
42+
return this.asidePositionClasses || `c-m${this.asideRight? 'l' : 'r' }-3`
3343
},
34-
computedAsideClasses () {
35-
return [this.computedAsidePositionClasses, this.addAsideClasses]
44+
asideClasses () {
45+
return [
46+
this.computedAsidePositionClasses,
47+
this.addAsideClasses,
48+
`c-align-self-${this.asidePosition}`
49+
]
3650
},
37-
computedBodyClasses () {
51+
mediaBodyClasses () {
3852
return [ 'c-media-body', this.addBodyClasses ]
3953
},
4054
mediaClasses () {

0 commit comments

Comments
 (0)