Skip to content

Instantly share code, notes, and snippets.

View codeocelot's full-sized avatar

Joey Gracey codeocelot

View GitHub Profile
@codeocelot
codeocelot / react-redux-provider.js
Created October 15, 2016 22:43
React Router Provider
export default class Provider extends Component {
getChildContext() {
return { store: this.store }
}
constructor(props, context) {
super(props, context)
this.store = props.store
}
@codeocelot
codeocelot / simple-react-context.js
Last active November 9, 2017 12:11
Simple React Context Example
class App extends React.Component{
render = () => <div className="app">{this.props.children}</div>
}
class Greeting extends React.Component{
render = () => <p style={this.context.style}>Hello world!</p>
}
Greeting.contextTypes = {
color: React.PropTypes.string,
backgroundColor: React.PropTypes.string
}
import { compose } from 'redux';
const ToUpper = (Component) => ({ text }) => <Component text={text.toUpper()} \>
const WithUnderscores = (Component) => ({ text }) => <Component text={text.split(' ').join('_')} />
export default compose(ToUpper, WithUnderscores);
// use like this
@codeocelot
codeocelot / useWhy.js
Created June 3, 2019 23:35
useWhy hook
import { useState } from 'react';
function useWhy(deps, id = null, logger = console.log) {
const [prevDeps, setPrevDeps] = useState(deps);
let changed = false;
deps.forEach((d, i) => {
if (d !== prevDeps[i]) {
changed = true;
logger(`Why ${id}: dep ${i} has changed from ${prevDeps[i]} to ${d}`);
}
@codeocelot
codeocelot / init.lua
Last active June 2, 2023 17:16
Switch keyboard lang based on active application
-- Add the following to your init.lua (or create it if it doesn't exist)
local Keyboard = require "keyboard"
Keyboard:init()