getters.js 680 B

12345678910111213141516171819202122232425
  1. export const threads = state => state.threads
  2. export const currentThread = state => {
  3. return state.currentThreadID
  4. ? state.threads[state.currentThreadID]
  5. : {}
  6. }
  7. export const currentMessages = state => {
  8. const thread = currentThread(state)
  9. return thread.messages
  10. ? thread.messages.map(id => state.messages[id])
  11. : []
  12. }
  13. export const unreadCount = ({ threads }) => {
  14. return Object.keys(threads).reduce((count, id) => {
  15. return threads[id].lastMessage.isRead ? count : count + 1
  16. }, 0)
  17. }
  18. export const sortedMessages = (state, getters) => {
  19. const messages = getters.currentMessages
  20. return messages.slice().sort((a, b) => a.timestamp - b.timestamp)
  21. }