Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View fab1an's full-sized avatar

Fabian Zeindl fab1an

View GitHub Profile
import { View, Animated, TouchableHighlight, Text } from 'react-native';
import React, { PropTypes as pt } from "react";
import * as components from "./components";
class MyNavigator extends React.Component {
static propTypes = {
currentScene: pt.object.isRequired
}
state = {
/* App.makeProps */
static makeProps($) {
return {
/* call Box.makeProps to construct the substate */
box1: [Box, "1"],
box2: [Box, "2"],
/* call OtherData.makeProps to get the substate */
OtherData
}
}
class App extends React.Component {
static makeProps($) {
return {
box1: $.box1,
box2: $.box2,
otherData: $.otherData || "Default Value"
}
}
render() {
class ReactBase extends React.Component {
/* event emitting function, for completeness' sake */
emit(eventName, eventData = {}) {
this.props.dispatch(eventName, eventData);
}
shouldComponentUpdate(nextProps) {
return !_.isEqual(this.props, nextProps);
}
class App extends React.Component {
render() {
const $ = this.props
return (
<div>
<Box {...$.box1} />
<Box {...$.box2} />
</div>
);
@fab1an
fab1an / sample.js
Created April 8, 2016 12:59
simple 'shouldComponentUpdate'
class ReactBase extends React.Component {
shouldComponentUpdate(nextProps) {
/* function from lodash */
return !_.isEqual(this.props, nextProps);
/* if we use immutableJS we could also just do an equality check */
// return this.props !== nextProps;
}
}
@fab1an
fab1an / BoxExample.js
Last active April 8, 2016 13:10
react state
/* my state */
state = {
box1: {data: "Box 1", top: 0, left: 0},
box2: {data: "Box 2", top: 0, left: 100},
otherData: {}
}
class App extends React.Component {
render() {
const $ = this.props
$app->view = new \Slim\Views\Twig();
$app->view->setTemplatesDirectory(__DIR__."/templates/");
$app->view->parserOptions = ['debug' => $config['debug']];
$app->view->parserExtensions = [new \Slim\Views\TwigExtension()];
$app->get('/(:page)', function ($page = "intro") use ($app, $config) {
try {
$app->render('wrapper.html', [
'page' => $page,
'debugEnabled' => ($config['debug'] ? "true" : "false")
@fab1an
fab1an / SWTLoader.java
Last active August 29, 2015 14:14
Capsule/Caplet for multi-platform SWT
import static com.google.common.base.Preconditions.checkState;
import java.nio.file.Path;
import java.util.Iterator;
import java.util.List;
public final class SWTLoader extends Capsule {
// ~ Constructors ----------------------------------------------------------------------------------------------
@fab1an
fab1an / CreateRMapping.xml
Created April 12, 2014 12:41
Builder for Android/Eclipse that generates references to Views
<?xml version="1.0"?>
<project name="createRMapping" default="main">
<property name="package" value="org.somecompany.somepackage" />
<target name="main">
<script language="javascript">
<classpath>
<fileset dir="libs" includes="guava*.jar" />
</classpath>