You need to sign in or sign up before continuing.
message.store.js 1.01 KB
import { createMessageFixtureList } from '../fixtures/message.fixture'

let messageList = null

export const ensureMessageStore = () => {
  if (!messageList) {
    messageList = createMessageFixtureList()
  }

  return messageList
}

export const getMessagePage = ({ page = 0, limit = 6 } = {}) => {
  const list = ensureMessageStore()
  const start = Number(page) * Number(limit)
  const pageList = list.slice(start, start + Number(limit)).map((item) => ({
    id: item.id,
    title: item.title,
    summary: item.summary,
    status: item.status,
    category: item.category,
    created_time: item.created_time,
  }))

  return {
    list: pageList,
    total: list.length,
    page: Number(page),
    limit: Number(limit),
    has_more: start + Number(limit) < list.length,
  }
}

export const getMessageDetail = (id) => {
  const list = ensureMessageStore()
  const current = list.find((item) => item.id === String(id || ''))

  if (!current) {
    return null
  }

  current.status = MESSAGE_STATUS.read
  return { ...current }
}