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 (