Skip to content

Instantly share code, notes, and snippets.

View jaredpalmer's full-sized avatar

Jared Palmer jaredpalmer

View GitHub Profile
@jaredpalmer
jaredpalmer / Fieldset.tsx
Created September 5, 2018 00:40
Fieldset
import React from 'react';
import { Field, connect } from 'formik';
import {
FormLabel,
FormGroup,
FormFeedback,
FormHelper,
} from 'common/components/Form';
import { FirstMatchingNodeTarget } from 'common/components/Form/FirstMatchingNodeTarget';
import scrollIntoView from 'smooth-scroll-into-view-if-needed';
@jaredpalmer
jaredpalmer / AuthModel.ts
Last active October 6, 2022 20:50
Express OAuth2 Provider example
'use strict';
import * as uuid from 'uuid';
import { Client, ClientDao } from '../dao/ClientDao';
import { Token, TokenDao } from '../dao/TokenDao';
import { User, UserDao } from '../dao/UserDao';
export const getAccessToken = async (bearerToken: string) => {
const token = await TokenDao.loadByToken(bearerToken);
@jaredpalmer
jaredpalmer / SketchSystems.spec
Last active September 26, 2020 10:13
Formik
Formik
IDLE*
setFieldValue -> VALIDATING
setValues -> VALIDATING
setTouched -> VALIDATING
setFieldTouched -> VALIDATING
handleChange -> VALIDATING
handleBlur -> VALIDATING
handleSubmit -> Submit Attempted
submitForm -> Submit Attempted
@jaredpalmer
jaredpalmer / SketchSystems.spec
Created July 10, 2018 17:11
Knowledge Base Landing Page
Knowledge Base Landing Page
Logged In
Has Wiki Access
redirect -> Wiki
No Wiki Access
click purchase 99 button -> Member Wiki Checkout
Logged Out*
click purchase 99 button -> Member Login Before Wiki Checkout
click purchase 649 button -> Prospect Signup
Landing Page
Member
click purchase 99 button -> Members Checkout
click already subscribed -> Member Login
Non Member*
click purchase 649 button -> Prospect Signup
click purchase as a member button -> Member Login
click already subscribed -> Member Login
Member Login
@jaredpalmer
jaredpalmer / Hoverable.js
Created March 1, 2018 21:57 — forked from necolas/Hoverable.js
Hover styles in React Native for Web
import createHoverMonitor from './createHoverMonitor';
import { element, func, oneOfType } from 'prop-types';
import React, { Component } from 'react';
const hover = createHoverMonitor();
/**
* Use:
* <Hoverable>
* {(hover) => <View style={hover && styles.hovered} />}
if (typeof window!=='undefined' && navigator.serviceWorker && navigator.serviceWorker.controller) {
let reloadOnNext = false;
let pushState = history.pushState;
history.pushState = function(state, title, url) {
pushState.call(this, state, title, url);
if (reloadOnNext===true) location.reload(true);
};
navigator.serviceWorker.controller.addEventListener('statechange', e => {
@jaredpalmer
jaredpalmer / postinstall.js
Last active June 11, 2019 08:35
React Native Web x TypeScript
// ./postinstall.js
'use strict';
const fs = require('fs');
const RN_TSD = __dirname + '/node_modules/@types/react-native/index.d.ts';
const raw = fs.readFileSync(RN_TSD);
// Fix @types/node conflict
// @see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/15960
@jaredpalmer
jaredpalmer / razzle.config.js
Created January 25, 2018 21:04
Razzle TS real-world setup
'use strict';
const autoprefixer = require('autoprefixer');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const path = require('path');
const scssPlugin = new ExtractTextPlugin(
'static/css/[name].[contenthash:8].css'
);
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
@jaredpalmer
jaredpalmer / ScaleToViewport.tsx
Last active December 19, 2017 14:44
Vjeux's 2013 Viewport Image Resizer as a Render Prop
import * as React from 'react';
import { throttle } from 'common/utils/throttle';
export interface ScaleToViewportProps {
height: number;
width: number;
verticalPadding: number;
horizontalPadding: number;
throttle: number;
render: (props: ScaleToViewportState) => React.ReactNode;