Tip 1: Don't specify Helvetica or Arial over sans-serif. Typically the default sans-serif is a Helvetica clone anyway, meant for that system. For a long time Mac default was Helvetica and Windows default was Arial. There's very little point in specifying. Just use sans-serif as your baseline fallback.
Tip 2: Specify typical fallback fonts, even with a web-font so that you get coverage for glyphs like emoticons which may not be in your web font.
This is why I *REALLY* like react-jss (as used with @material-ui/core)... everything can be done via the theme and injected via JS/JSON data.
Injecting variables into SCSS just feels fragile.
Only big comment would be that async function for the thunk and fat-arrow syntax would be a little cleaner. At this point all the major browsers support async functions and fat arrow syntax. IE being the notable exception, but transpile via babel can handle that.
FYI, I'm @tracker1 on twitter and aztracker1 in fb messenger, feel free to shoot me a message if you notice a spammy article.
You should be able to reach @echojs and @fcambus on twitter as well.
I understand the frustration... The past couple days I find I've deleted a few posts a day. Including one that was an interstitial link through Pinterest at that. The only real way to combat spam is manual intervention or invest a *LOT* of time, effort and money.
I do wish there were a report/flag story option though, or that if a story is deleted that anyone who down voted got double their karma back and those that posted/upvoted lost 10 karma points.
@fcambus is the current echojs codebase somewhere on github/gitlab for user contributions?
Just a simple pattern for loading async data with react, redux and redux-thunk middleware.
I tend to do this with a higher order component including async import of child component, etc... it works well for the 90% cases I've used it with. sub-state/reducer logic is only slightly different, but the logic is bog simple and holds up well enough.
I also include a reducer handler for when the location/init happens as a lot of times a refresh or location change in the middle of an async call can leave things broken.
Interesting, not really JS based... what would be cool would be a similar client as a globally installable npm module that uses environment variable(s) to create an empty repo attached to an account/group as a command line client.
That would be JS based and pretty nifty/reusable.