From dcf26deb0f71cd11f72d2e144a90a65ce5cc9e0f Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Wed, 30 Oct 2019 20:05:08 +0200 Subject: [PATCH] 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 --- components/Feed.jsx | 42 +- components/Footer.jsx | 25 +- components/Members.jsx | 8 +- components/feed-transformers.js | 15 +- components/membership/MembershipInfoForm.jsx | 24 +- package-lock.json | 3777 ++++++++++++++--- package.json | 28 +- pages/_app.jsx | 13 - pages/_document.jsx | 19 +- pages/index.jsx | 10 +- .../static}/icons/android-chrome-192x192.png | Bin .../static}/icons/android-chrome-512x512.png | Bin .../static}/icons/apple-touch-icon.png | Bin .../static}/icons/favicon-16x16.png | Bin .../static}/icons/favicon-32x32.png | Bin {static => public/static}/icons/favicon.ico | Bin .../static}/icons/site.webmanifest | 0 {static => public/static}/images/avain.svg | 0 .../static}/images/codestats.png | Bin {static => public/static}/images/hp3_bw.jpg | Bin {static => public/static}/images/jumbo.jpg | Bin {static => public/static}/images/logo-js.png | Bin {static => public/static}/images/logo-new.svg | 0 {static => public/static}/images/logo.png | Bin {static => public/static}/images/octocat.png | Bin {static => public/static}/images/poster.jpg | Bin .../static}/images/reactabular.png | Bin {static => public/static}/images/redom.svg | 0 {static => public/static}/images/slack.png | Bin .../static}/images/sponsors/futurice.svg | 0 .../static}/images/sponsors/idean.svg | 0 .../static}/images/sponsors/metosin.svg | 0 .../static}/images/sponsors/nordea.png | Bin .../static}/images/sponsors/solita.svg | 0 .../static}/images/sponsors/wakeone.svg | 0 {static => public/static}/videos/jumbo.mp4 | Bin 36 files changed, 3376 insertions(+), 585 deletions(-) delete mode 100644 pages/_app.jsx rename {static => public/static}/icons/android-chrome-192x192.png (100%) rename {static => public/static}/icons/android-chrome-512x512.png (100%) rename {static => public/static}/icons/apple-touch-icon.png (100%) rename {static => public/static}/icons/favicon-16x16.png (100%) rename {static => public/static}/icons/favicon-32x32.png (100%) rename {static => public/static}/icons/favicon.ico (100%) rename {static => public/static}/icons/site.webmanifest (100%) rename {static => public/static}/images/avain.svg (100%) rename {static => public/static}/images/codestats.png (100%) rename {static => public/static}/images/hp3_bw.jpg (100%) rename {static => public/static}/images/jumbo.jpg (100%) rename {static => public/static}/images/logo-js.png (100%) rename {static => public/static}/images/logo-new.svg (100%) rename {static => public/static}/images/logo.png (100%) rename {static => public/static}/images/octocat.png (100%) rename {static => public/static}/images/poster.jpg (100%) rename {static => public/static}/images/reactabular.png (100%) rename {static => public/static}/images/redom.svg (100%) rename {static => public/static}/images/slack.png (100%) rename {static => public/static}/images/sponsors/futurice.svg (100%) rename {static => public/static}/images/sponsors/idean.svg (100%) rename {static => public/static}/images/sponsors/metosin.svg (100%) rename {static => public/static}/images/sponsors/nordea.png (100%) rename {static => public/static}/images/sponsors/solita.svg (100%) rename {static => public/static}/images/sponsors/wakeone.svg (100%) rename {static => public/static}/videos/jumbo.mp4 (100%) diff --git a/components/Feed.jsx b/components/Feed.jsx index d58174e..761be62 100644 --- a/components/Feed.jsx +++ b/components/Feed.jsx @@ -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 = ( - + {image} ); @@ -44,7 +50,9 @@ export default class Feed extends React.Component { return (
- +
{message.user} @@ -52,13 +60,13 @@ export default class Feed extends React.Component {
+ />
- +