Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

Eric Clemmons ericclemmons

🏠
Working from home
View GitHub Profile
@ericclemmons
ericclemmons / [[...slugs]].tsx
Created July 12, 2021 16:14
Non-FB-scale MDX with shared layout/nav
View [[...slugs]].tsx
import Layout from "@/components/Layout";
import { getContentPaths } from "@/utils/getContentPaths";
import { getPageFromSlug } from "@/utils/getPageFromSlug";
import { GetStaticProps } from "next";
import dynamic from "next/dynamic";
import { renderToStaticMarkup } from "react-dom/server";
export default function ContentPage({ __html, frontmatter, pages, slug }) {
const Content = dynamic(() => import(`../content/${slug}/index.mdx`), {
loading() {
@ericclemmons
ericclemmons / machine.js
Last active March 13, 2020 01:47
Generated by XState Viz: https://xstate.js.org/viz
View machine.js
// This state machine is trying to figure out how to allow a user to call `await Auth.getUser()` multiple times throughout their app and get the current user once it resolves.
// Utility to resolve a Promise externally
const defer = () => {
let res,rej;
const promise = new Promise((resolve, reject) => {
res = resolve;
rej = reject;
@ericclemmons
ericclemmons / responsive-badge.html
Created May 28, 2019 04:14
Responsive indicators for TailwindCSS
View responsive-badge.html
<link rel="stylesheet" href="https://unpkg.com/tailwindcss@1.0.1/dist/tailwind.min.css">
<!-- Responsive indicators! -->
<div class="fixed top-0 right-0 z-50 bg-pink-500 text-white shadow-md px-2 rounded-bl font-mono">
<span class="sm:hidden">default</span>
<span class="hidden sm:inline md:hidden">sm</span>
<span class="hidden md:inline lg:hidden">md</span>
<span class="hidden lg:inline xl:hidden">lg</span>
<span class="hidden xl:inline">xl</span>
</div>
@ericclemmons
ericclemmons / README.md
Created April 15, 2018 23:36
Hot take on Zach Silveira's Gutenblock Demo!
View README.md
@ericclemmons
ericclemmons / webpack.config.js
Created November 22, 2016 02:55
Minimal webpack + babel + Node v6 + Chrome
View webpack.config.js
var webpack = require("webpack");
module.exports = {
module: {
loaders: [
{
exclude: /node_modules/,
loader: "babel-loader",
query: {
cacheDirectory: true,
@ericclemmons
ericclemmons / snazzy.itermcolors
Created September 17, 2016 03:18
Port of hyperterm-snazzy to iTerm2
View snazzy.itermcolors
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Ansi 0 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.15977835655212402</real>
@ericclemmons
ericclemmons / example.md
Last active May 1, 2023 15:36
HTML5 <details> in GitHub
View example.md

Using <details> in GitHub

Suppose you're opening an issue and there's a lot noisey logs that may be useful.

Rather than wrecking readability, wrap it in a <details> tag!

<details>
 Summary Goes Here
@ericclemmons
ericclemmons / schools.address.state.js
Created June 12, 2016 04:30
Term for: schools.address.state (Stores the state abbreviation for a school's location)
View schools.address.state.js
/**
* Term: schools.address.state
*
* Stores the state abbreviation for a school's location.
*/
module.exports = {
table: 'school', // Entity table in DB
// `?state=tx` is supported (or would throw) here
filter: function(qb, value) {
View webpack.config.babel.js
export default {
...
resolve: {
root: [
path.join(process.cwd(), "lib"),
],
},
...
@ericclemmons
ericclemmons / HappyFactory.js
Created August 27, 2015 02:42
ES6 Classes as Factories
View HappyFactory.js
class HappyFactory {
constructor(message) {
return Promise.resolve(`${message} there!`);
}
}
new HappyFactory("Howdy").then(::console.log);
// "Howdy there!"