Skip to content

Instantly share code, notes, and snippets.

View mcavaliere's full-sized avatar

Mike Cavaliere mcavaliere

View GitHub Profile
@mcavaliere
mcavaliere / rn-design-systems-component-styles.js
Last active April 25, 2018 15:38
React Native Design Systems: Component Styles
import Constants from '../../global/constants';
import Colors from '../../global/styles/colors';
import Typography from '../../global/styles/typography';
import { StyleSheet } from 'react-native';
export default StyleSheet.create({
titleContainer: {
backgroundColor: Colors.green,
padding: Constants.GAP
},
@mcavaliere
mcavaliere / rn-design-systems-clean-component.js
Last active April 25, 2018 16:17
React Native Design Systems: A Cleaner Component
import React, { Component } from 'react';
import { Text, View } from 'react-native';
import Styles from './Card.style';
class Card extends Component {
render() {
return (
<View style={ Styles.container }>
<View style={ Styles.titleContainer }>
@mcavaliere
mcavaliere / rn-design-systems-color-constants.js
Last active April 25, 2018 16:19
React Native Design Systems: Typography Constants
import Colors from './colors';
export default const Typography = {
heading1: {
fontSize: 30,
fontWeight: 'bold',
lineHeight: 32,
color: Colors.black
},
@mcavaliere
mcavaliere / AsyncStorageSupplement.js
Last active July 2, 2018 22:09
Workaround for promise issues with AsyncStorage multiSet/multiGet/multiRemove in React Native (unresolved as of 2018-07-02). See: https://github.com/facebook/react-native/issues/14101
export default class AsyncStorageSupplement {
static multiGet(keys) {
return Promise.all(
keys.map(key => AsyncStorage.getItem(key))
)
}
static multiRemove(keys) {
return Promise.all(
keys.map(key => AsyncStorage.removeItem(key))
export default {
configSettingExists( config, key ) {
// Search the config object for the key value
let found = Object.keys( config ).indexOf( key )
return found;
},
indexArrayBy(arr, attrName, group=false) {
// ...
},
// Old
export default {
// ...
}
// New
export default class {
// ...
}
import Utils from 'utils.js';
// Load the config.
let config = Utils.initConfig();
// Later, use it
if ( ! Utils.configSettingExists( config, 'foo' ) ) {
Utils.printConfigFormatInstructions();
}
export default class {
initConfig() {
this.config = // ... load a json file via AJAX, filesystem, etc. ...
return this.config;
},
configSettingExists( key ) {
// Search the config object for the key value
export default class {
// ...
static printConfigFormatInstructions() {
console.log('Your config file must be in json format, and contain the following keys: foo, bar, baz.');
}
}
// Old
import Utils from 'utils.js';
// Load the config.
let config = Utils.initConfig();
// New
import Config from 'config.js';
Config.initConfig();