Skip to content

Instantly share code, notes, and snippets.

View estrattonbailey's full-sized avatar

Eric Bailey estrattonbailey

View GitHub Profile
@estrattonbailey
estrattonbailey / queue.js
Created August 31, 2016 23:01
Sequencing Delayed Functions
/**
* Curried delay function
*/
const delay = (cb, delay = 0) => (...args) => setTimeout(() => {
cb()
if (args.length > 0) args.shift()(...args)
}, delay)
/**
* Fire series of delays
@estrattonbailey
estrattonbailey / newsletter.liquid
Created September 19, 2016 15:58
Shopify Newsletter Signup Form
<div class="newsletter outer relative pv1 ts1">
<div class="absolute fit-x">
<div class="gradient-background absolute fit-x bg-c1"></div>
</div>
<div class="container--s mha relative tsx mv1">
<div class="newsletter__inner mha w1 flex flex-items-center flex-wrap">
<div class="newsletter__title mb1 pb05 w1 w12_m cw align-c">
<img src="{{ 'icon-leaves-arch-yellow.png' | asset_url }}" class="inline-block mb05"/>
@estrattonbailey
estrattonbailey / main.scss
Created December 12, 2016 21:30
Custom select recipe
.select-wrapper {
position: relative;
display: inline-block;
&:after {
position: absolute;
content: '\25bc';
top: calc(50% - 0.7em);
right: 1em;
font-size: 0.6em;
@estrattonbailey
estrattonbailey / main.scss
Created December 12, 2016 21:31
Checkbox/Radio Recipe
input[type="checkbox"],
input[type="radio"] {
border: 1px solid var(--cb);
vertical-align: middle;
&:checked{
background-color: var(--c1);
border-color: var(--c1);
}
&:focus{
@estrattonbailey
estrattonbailey / react-shortcodes.js
Last active February 24, 2025 16:37
React Shortcodes
import React from 'react'
import { renderToString } from 'react-dom/server'
import parser from './shortcode-parser'
export const add = parser.add
const Aside = ({ children, config }) => {
/**
* config = {
* foo: true,
{% assign account_page_title = 'Addresses' %}
{% include 'account-titles' %}
{% paginate customer.addresses by 10 %}
<section class="outer mv2 pt1">
<div class="container--s mha">
<div class="relative mv1 mb2">
<button class="new-address button" onclick="barrel.toggleNewForm()">New Address +</button>
@estrattonbailey
estrattonbailey / podcast-reducer.js
Created March 13, 2017 17:30
Merging Redux Stores
import { createStore, combineReducers } from 'redux'
import action from 'action-helper'
const TOGGLE_PLAYING_STATE = 'TOGGLE_PLAYING_STATE'
const SET_CURRENT_TIME = 'SET_CURRENT_TIME'
const SET_DURATION = 'SET_DURATION'
const SET_VOLUME = 'SET_VOLUME'
const initialState = {
playing: false,
const triage = obj => Object.keys(obj).reduce((res, key) => {
res += !!(obj[key]) ? ` ${key}` : ''
return res
}, ' ')
const cx = (...args) => args.reduce((res, arg) => {
res += typeof arg === 'string' ? ` ${arg}` : triage(arg)
return res
}, ' ').trim().replace(/\s\s/, ' ')
import { Stepper, Step } from 'react-stepper' // need a new name, this is taken
render(
<div>
<Stepper active={0}>
<Step>
{({ next, prev, clear }) => (...component1...)}
</Step>
<Step>
{({ next, prev, clear }) => (...component2...)}
@estrattonbailey
estrattonbailey / client.js
Last active September 10, 2017 18:31
webpack config
// imports...
if (module.hot) {
module.hot.accept()
}
import style from '../styles/main.css'
// app code...