import moment from "moment" import React from "react" import Blankslate from "./blankslate" import CategoriesList from "./categories-list" import misago from "misago/index" import polls from "misago/services/polls" const hydrate = function(category) { return Object.assign({}, category, { last_post_on: category.last_post_on ? moment(category.last_post_on) : null, subcategories: category.subcategories.map(hydrate) }) } export default class extends React.Component { constructor(props) { super(props) this.state = { categories: misago.get("CATEGORIES").map(hydrate) } this.startPolling(misago.get("CATEGORIES_API")) } startPolling(api) { polls.start({ poll: "categories", url: api, frequency: 180 * 1000, update: this.update }) } update = data => { this.setState({ categories: data.map(hydrate) }) } render() { const { categories } = this.state if (categories.length === 0) { return } return } } export function select(store) { return { tick: store.tick.tick } }