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

Commit 39eb3e1

Browse files
committed
Refactor Chat.vue
1 parent e5cf7fb commit 39eb3e1

File tree

1 file changed

+39
-43
lines changed

1 file changed

+39
-43
lines changed

src/views/Chat.vue

Lines changed: 39 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -13,66 +13,62 @@
1313
<div v-if="user" class="flex flex-row flex-1 clear">
1414
<UserList :users="users" :logout="logout" />
1515

16-
<MessageList
17-
:messages="messages.data"
18-
:find-messages="findUsers"
19-
:create-message="createMessage"
20-
/>
16+
<MessageList :messages="messages" />
2117
</div>
2218
</main>
2319
</template>
2420

2521
<script>
26-
import { mapState, mapGetters, mapActions } from 'vuex'
22+
import { useFind } from 'feathers-vuex'
23+
import { computed } from '@vue/composition-api'
2724
import UserList from '../components/Users'
2825
import MessageList from '../components/Messages'
2926
3027
export default {
31-
name: 'ChatApp',
28+
name: 'Chat',
3229
components: {
3330
UserList,
3431
MessageList
3532
},
36-
computed: {
37-
...mapState('auth', ['user']),
38-
...mapGetters('messages', {
39-
findMessagesInStore: 'find'
40-
}),
41-
...mapGetters('users', {
42-
users: 'list'
43-
}),
44-
messages() {
45-
return this.findMessagesInStore({ query: { $sort: { createdAt: 1 } } })
46-
}
47-
},
48-
created() {
49-
if (!this.user) {
50-
return this.$router.replace({ name: 'Login' })
51-
}
52-
// Query users from Feathers
53-
this.findUsers({
54-
query: {
55-
$sort: { email: 1 },
56-
$limit: 25
33+
setup(props, context) {
34+
const { Message, User } = context.root.$FeathersVuex.api
35+
const { $store } = context.root
36+
37+
// Users
38+
const user = computed(() => $store.state.auth.user)
39+
const usersParams = computed(() => {
40+
return {
41+
query: {
42+
$sort: { email: 1 },
43+
$limit: 25
44+
}
5745
}
5846
})
59-
// Query messages from Feathers
60-
this.findMessages({
61-
query: {
62-
$sort: { createdAt: -1 },
63-
$limit: 25
47+
const { items: users } = useFind({ model: User, params: usersParams })
48+
function logout() {
49+
return $store.dispatch('auth/logout')
50+
}
51+
52+
// Messages
53+
const messagesParams = computed(() => {
54+
return {
55+
query: {
56+
$sort: { createdAt: 1 },
57+
$limit: 25
58+
}
6459
}
6560
})
66-
},
67-
methods: {
68-
...mapActions('messages', {
69-
findMessages: 'find',
70-
createMessage: 'create'
71-
}),
72-
...mapActions('users', {
73-
findUsers: 'find'
74-
}),
75-
...mapActions('auth', ['logout'])
61+
const { items: messages } = useFind({
62+
model: Message,
63+
params: messagesParams
64+
})
65+
66+
return {
67+
user,
68+
users,
69+
messages,
70+
logout
71+
}
7672
}
7773
}
7874
</script>

0 commit comments

Comments
 (0)