Skip to content
This repository was archived by the owner on May 28, 2024. It is now read-only.

Commit d3ee907

Browse files
committed
Moved the default method to a component, so it's no longer a plugin
- Also updated styling to be little more BEM :)
1 parent 9b03139 commit d3ee907

File tree

7 files changed

+33
-32
lines changed

7 files changed

+33
-32
lines changed

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ Messagist
99

1010
### Using Messagist
1111

12-
It's quite simple. As a usual plugin just let Vue know about it's existance:
12+
It's quite simple. Messeagist is prepared as a Vue component object, so the easiest is to use it as a global component:
1313

1414
```js
1515
import Messagist from 'vue-messagist'
1616

17-
Vue.use(Messagist)
17+
Vue.component('messagist', Messagist)
1818
```
1919

2020
This makes a `messagist` component available, which has one mandatory `messages` property.
@@ -80,7 +80,7 @@ and the JS on the page could look like this.
8080
```js
8181
import Messagist from 'vue-messagist'
8282

83-
Vue.use(Messagist)
83+
Vue.component('messagist', Messagist)
8484

8585
const messages = {...} // the message example from above
8686

examples/breaking.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@
5757
</div>
5858
<script src="/dist/messagist.js"></script>
5959
<script>
60-
Vue.use(Messagist)
60+
console.log(Messagist)
61+
62+
Vue.component('messagist', Messagist)
6163

6264
conversation = {
6365
init: {

examples/simple.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</div>
1212
<script src="/dist/messagist.js"></script>
1313
<script>
14-
Vue.use(Messagist)
14+
Vue.component('messagist', Messagist)
1515

1616
new Vue({
1717
el: '#app',

src/Choice.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template lang="html">
22
<a
3-
class="choice"
3+
class="messagist__choices-list-item"
44
:href="primaryKey"
55
@click.prevent="selected"
66
>
@@ -51,7 +51,7 @@ export default {
5151
</script>
5252

5353
<style lang="stylus">
54-
.choice
54+
.messagist__choices-list-item
5555
margin-right 40px
5656
display block
5757
text-align right

src/Message.vue

+13-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template lang="html">
2-
<li :class="message.author">
2+
<li :class="cssClass">
33
<span v-html="message.text" />
44
</li>
55
</template>
@@ -11,6 +11,12 @@ export default {
1111
1212
props: {
1313
message: Object
14+
},
15+
16+
computed: {
17+
cssClass() {
18+
return `messagist__list-item-${this.message.author}`
19+
}
1420
}
1521
}
1622
</script>
@@ -25,7 +31,7 @@ transparent-body()
2531
position absolute
2632
border 8px solid transparent
2733
28-
.message-list-item
34+
.messagist__list-item
2935
list-style none
3036
margin-bottom 5px
3137
@@ -37,7 +43,7 @@ transparent-body()
3743
border-radius .5rem
3844
max-width 80%
3945
40-
&.system
46+
&-system
4147
text-align left
4248
4349
span::before
@@ -46,11 +52,7 @@ transparent-body()
4652
left -16px
4753
bottom 8px
4854
49-
+ .user
50-
margin-top 10px
51-
52-
53-
&.user
55+
&-user
5456
text-align right
5557
5658
span
@@ -62,7 +64,8 @@ transparent-body()
6264
right -16px
6365
bottom 8px
6466
65-
+ .system
66-
margin-top 10px
67+
&-system + &-user,
68+
&-user + &-system
69+
margin-top 10px
6770
</style>
6871

src/MessagistWrapper.vue

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
<template>
22
<div class="Messagist">
3-
<transition-group name="message-list" tag="ul">
3+
<transition-group name="messagist__list" tag="ul">
44
<message
55
v-for="message in messagesToPrint"
66
:key="message.id"
77
:message="message"
8-
class="message-list-item"
8+
class="messagist__list-item"
99
/>
1010
</transition-group>
1111

1212
<div
1313
v-show="choicesVisible"
14-
class="choice-list"
14+
class="messagist__choices"
1515
>
1616
<choice
1717
v-for="(value, key) in current.choices"
1818
:key="key"
1919
:primaryKey="key"
2020
:choice="value"
2121
@selected="selected"
22-
class="choice-list-item"
22+
class="messagist__choices-list-item"
2323
/>
2424
</div>
2525
</div>
@@ -164,22 +164,22 @@ export default {
164164
ul
165165
padding 20px 50px
166166
167-
.message-list-item
167+
.messagist__list-item
168168
transition all 500ms
169169
170-
.message-list-item-loading
170+
.messagist__list-item-loading
171171
text-align left
172172
margin-left 40p
173173
174-
.message-list-enter
174+
.messagist__list-enter
175175
opacity 0
176176
transform translateY(30px)
177177
178-
.choice-list-item
178+
.messagist__choices-item
179179
transition all 1s
180180
181-
.choice-list-enter,
182-
.choice-list-leave-to
181+
.messagist__choice-list-enter,
182+
.messagist__choice-list-leave-to
183183
opacity 0
184184
transform translateY(30px)
185185
</style>

src/main.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
11
import MessagistWrapper from './MessagistWrapper.vue'
22

3-
export default {
4-
install(Vue, options) {
5-
Vue.component('messagist', MessagistWrapper)
6-
}
7-
}
3+
export default MessagistWrapper

0 commit comments

Comments
 (0)