mirror of
https://github.com/koodiklinikka/koodiklinikka.fi.git
synced 2026-02-28 01:58:03 +00:00
Upgrade dependencies, etc. (#55)
* Run prettify * Upgrade dependencies and switch out some libraries: * timeago (freshly jquery dependent) -> ReactTimeAgo * next-ga -> react-ga and custom plumbing * Move static/ to public/static/ As per https://github.com/zeit/next.js/blob/master/errors/static-dir-deprecated.md * Fix cons->icons typo * Import only what's necessary from lodash (223 -> 180 kb) * Asyncify MembershipInfoForm
This commit is contained in:
committed by
Riku Rouvila
parent
db98341a51
commit
dcf26deb0f
@@ -1,9 +1,14 @@
|
||||
import _ from "lodash";
|
||||
import flatMap from "lodash/flatMap";
|
||||
import sortBy from "lodash/sortBy";
|
||||
import React from "react";
|
||||
import request from "axios";
|
||||
import timeago from "timeago";
|
||||
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";
|
||||
|
||||
JavascriptTimeAgo.locale(timeagoFi);
|
||||
|
||||
export default class Feed extends React.Component {
|
||||
state = {
|
||||
@@ -16,17 +21,13 @@ export default class Feed extends React.Component {
|
||||
|
||||
async updateFeed() {
|
||||
const res = await request.get(api("feeds"));
|
||||
const messages = _(res.data)
|
||||
.map((messages, type) => transformers[type](messages))
|
||||
.flatten()
|
||||
.value();
|
||||
|
||||
const messages = sortBy(
|
||||
flatMap(res.data, (messages, type) => transformers[type](messages)),
|
||||
"timestamp"
|
||||
);
|
||||
messages.reverse(); // In-place
|
||||
this.setState({
|
||||
messages: _(messages)
|
||||
.sortBy("timestamp")
|
||||
.reverse()
|
||||
.value()
|
||||
.slice(0, 40),
|
||||
messages: messages.slice(0, 40),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -36,7 +37,12 @@ export default class Feed extends React.Component {
|
||||
|
||||
if (message.imageLink) {
|
||||
image = (
|
||||
<a target="_blank" href={message.imageLink} rel="noopener noreferrer" tabIndex="-1">
|
||||
<a
|
||||
target="_blank"
|
||||
href={message.imageLink}
|
||||
rel="noopener noreferrer"
|
||||
tabIndex="-1"
|
||||
>
|
||||
{image}
|
||||
</a>
|
||||
);
|
||||
@@ -44,7 +50,9 @@ export default class Feed extends React.Component {
|
||||
|
||||
return (
|
||||
<div className="message" key={i}>
|
||||
<div className="message__image" aria-hidden="true">{image}</div>
|
||||
<div className="message__image" aria-hidden="true">
|
||||
{image}
|
||||
</div>
|
||||
<div className="message__content">
|
||||
<div className="message__user">
|
||||
<a href={message.userLink}>{message.user}</a>
|
||||
@@ -52,13 +60,13 @@ export default class Feed extends React.Component {
|
||||
<div
|
||||
className="message__body"
|
||||
dangerouslySetInnerHTML={{ __html: message.body }}
|
||||
></div>
|
||||
/>
|
||||
<div className="message__icon">
|
||||
<i className={`fa fa-${message.type}`}></i>
|
||||
<i className={`fa fa-${message.type}`} aria-hidden="true" />
|
||||
</div>
|
||||
<div className="message__details">
|
||||
<span className="message__timestamp">
|
||||
{timeago(message.timestamp)}
|
||||
<ReactTimeAgo date={message.timestamp} locale="fi" />
|
||||
</span>
|
||||
<span className="message__meta">{message.meta}</span>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user