import flatMap from "lodash/flatMap"; import sortBy from "lodash/sortBy"; import React from "react"; import request from "axios"; import api from "./api"; import transformers from "./feed-transformers"; import ReactTimeAgo from "react-time-ago"; import JavascriptTimeAgo from "javascript-time-ago"; import timeagoFi from "javascript-time-ago/locale/fi"; // TODO: Add type definitions for javascript-time-ago (JavascriptTimeAgo as any).locale(timeagoFi); export default class Feed extends React.Component { state = { messages: [], }; componentDidMount() { this.updateFeed(); } async updateFeed() { const res = await request.get(api("feeds")); const messages = sortBy( flatMap(res.data, (messages, type) => transformers[type](messages)), "timestamp" ); messages.reverse(); // In-place this.setState({ messages: messages.slice(0, 40), }); } render() { const messages = this.state.messages.map((message, i) => { let image = ; if (message.imageLink) { image = ( {image} ); } return (
{message.user}