mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
77 lines
1.5 KiB
JavaScript
77 lines
1.5 KiB
JavaScript
import gql from 'graphql-tag'
|
|
|
|
export const state = () => {
|
|
return {
|
|
posts: [],
|
|
}
|
|
}
|
|
|
|
export const mutations = {
|
|
SET_POSTS(state, posts) {
|
|
state.posts = posts || null
|
|
},
|
|
}
|
|
|
|
export const getters = {
|
|
posts(state) {
|
|
return state.posts || []
|
|
},
|
|
}
|
|
|
|
export const actions = {
|
|
async fetchPosts({ commit, dispatch }, { i18n, filter }) {
|
|
const client = this.app.apolloProvider.defaultClient
|
|
const {
|
|
data: { Post },
|
|
} = await client.query({
|
|
query: gql(`
|
|
query Post($filter: _PostFilter, $first: Int, $offset: Int) {
|
|
Post(filter: $filter, first: $first, offset: $offset) {
|
|
id
|
|
title
|
|
contentExcerpt
|
|
createdAt
|
|
disabled
|
|
deleted
|
|
slug
|
|
image
|
|
author {
|
|
id
|
|
avatar
|
|
slug
|
|
name
|
|
disabled
|
|
deleted
|
|
contributionsCount
|
|
shoutedCount
|
|
commentsCount
|
|
followedByCount
|
|
followedByCurrentUser
|
|
location {
|
|
name: name${i18n.locale().toUpperCase()}
|
|
}
|
|
badges {
|
|
id
|
|
icon
|
|
}
|
|
}
|
|
commentsCount
|
|
categories {
|
|
id
|
|
name
|
|
icon
|
|
}
|
|
shoutedCount
|
|
}
|
|
}`),
|
|
variables: {
|
|
filter,
|
|
first: 12,
|
|
offset: 0,
|
|
},
|
|
})
|
|
commit('SET_POSTS', Post)
|
|
return Post
|
|
},
|
|
}
|