Add it by visiting http://marklets.com/Enyo+Inspector.aspx
#!/bin/bash | |
TMP_FILE=~/parse.tmp | |
if [ -e $TMP_FILE ]; then | |
echo "Cleaning up from previous install failure" | |
rm -f $TMP_FILE | |
fi | |
echo "Fetching latest version ..." |
Gravatar is an service that allows users to specify a public avatar image linked to an email address. I recently decided to allow users to use their Gravatar avatar with my Parse-backed app rather than build in my own avatar system. To simplify things, I’ve hooked beforeSave for the User object to hash the email address and add it to the object. That ensures that any email address change is automatically hashed on the server and allows me to send the hash down to clients rather than the email address to protect privacy.
function MD5(s){ /* one of many publicly available MD5 functions */ }
Parse.Cloud.beforeSave(Parse.User, function(request, response) {
var email = request.object.get("email");
request.object.set("emailHash", email? MD5(email) : "");
response.success();
});
Exercise to allow an enyo kind to "attach" to existing markup for progressive enhancement, web component-style integration, or preference for markup over enyo-style components[] block.
View it in action on JSFiddle
Define it and call enyo.attach with a reference to the kind and target node
enyo.kind({name: });
<html> | |
<head> | |
<title>CodePen.io Launcher for EnyoJS</title> | |
</head> | |
<body> | |
<form id="form" action="http://codepen.io/pen/define" method="POST"><input id="data" type="hidden" name="data"></form> | |
<script> | |
var q = document.location.search.substring(1); | |
var libs = q.split(","); |
require('spotlight'); | |
var | |
ready = require('enyo/ready'), | |
kind = require('enyo/kind'), | |
GridListImageItem = require('moonstone/GridListImageItem'), | |
ImageBadge = require('moonstone/ImageBadge'); | |
ready(function () { | |
var C = kind({ |
// vim: syntax=JSX | |
import React from 'react'; | |
export default class MyClass extends React.Component { | |
render() { | |
return ( | |
<a href="google.com">Let's head to google.com</a> | |
); | |
} | |
} |
import React from 'react'; | |
const original = React.Component.prototype.setState; | |
const logState = function (type, current, updated) { | |
console.log(type.displayName || type.name || 'Component', 'updating', current, 'with', updated); | |
} | |
const logger = function (partialState, callback) { | |
const type = this._reactInternalInstance._currentElement.type; |
diff --git a/src/components/SecondaryPanes/index.js b/src/components/SecondaryPanes/index.js | |
index 43dcb33..f4aad39 100644 | |
--- a/src/components/SecondaryPanes/index.js | |
+++ b/src/components/SecondaryPanes/index.js | |
@@ -65,6 +65,15 @@ const SecondaryPanes = React.createClass({ | |
displayName: "SecondaryPanes", | |
+ componentWillReceiveProps(nextProps) { | |
+ const { breakpoints: { size }} = this.props; |