Skip to content

Instantly share code, notes, and snippets.

View tpetrina's full-sized avatar
🐜
ant is a hard-working bug. be like ant queen - spawn more workers!

Toni Petrina tpetrina

🐜
ant is a hard-working bug. be like ant queen - spawn more workers!
View GitHub Profile
@tpetrina
tpetrina / hoc.jsx
Last active September 26, 2017 15:01
React form complication 8
const hoc = Wrapped =>
class extends React.Component {
render() {
// pass props from parent to the wrapped component
return <Wrapped {...this.props} />
}
}
// usage:
const WrappedComponent = hoc(SomeComponent)
@tpetrina
tpetrina / register.js
Created September 26, 2017 14:56
React form complication 7
let registration = {
// ommitted for brevity
setUsername: (r, e) => {
let value = e.target.value
value = value.replace("-", "")
r.username = value
}
}
@tpetrina
tpetrina / wrap.js
Last active September 26, 2017 14:53
React form complication 6
componentWillMount() {
let proxy = {}
for (var i in this.state) {
if (typeof this.state[i] === "function") {
this.foos[i] = state[i].bind(null, proxy)
} else {
let key = i
Object.defineProperty(proxy, key, {
set: value => this.setState({ [key]: value }),
@tpetrina
tpetrina / register.js
Created September 26, 2017 14:49
React form complication 5
let registration = {
username: "username",
password: "password",
isRegistering: false,
onRegister: r => {
r.isRegistering = true
setTimeout(() => {
r.isRegistering = false
}, 2000)
@tpetrina
tpetrina / wrap.js
Last active September 26, 2017 14:46
React form complication 4
export const wrap = (state, WrappedComponent) =>
class extends React.Component {
foos = {}
state = state || {}
set = e => {
this.setState({ [e.target.name]: e.target.value })
};
componentWillMount() {
@tpetrina
tpetrina / state.js
Last active September 26, 2017 15:20
React form complication 3
let registration = {
username: "",
password: "",
isRegistering: false,
onRegister: r => {
// login(r.username, r.password).then()...
r.setState({ isRegistering: true })
setTimeout(() => {
r.setState({ isRegistering: false })
@tpetrina
tpetrina / register.jsx
Last active September 26, 2017 14:37
React form complication 2
const RegisterForm = ({
username, password, isRegistering,
onRegister, set
}) => (
<div>
<h1>Register</h1>
<div>
<label>Username</label>
<input type="text" name="username" value={username} onChange={set}
/>
@tpetrina
tpetrina / medium-react-register.html
Last active September 26, 2017 14:22
React form complication 1
<div>
<h1>Register</h1>
<div>
<label>Username</label>
<input type="text" name="username" />
</div>
<div>
<label>Password</label>
<input type="password" name="password" />
</div>
@tpetrina
tpetrina / .xaml
Created September 2, 2015 07:47
FloatingTextBoxStyle
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="FloatingHeaderTextBoxStyle" TargetType="TextBox">
<Setter Property="MinWidth" Value="{ThemeResource TextControlThemeMinWidth}"/>
<Setter Property="MinHeight" Value="{ThemeResource TextControlThemeMinHeight}"/>
<Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}"/>
<Setter Property="Background" Value="{ThemeResource SystemControlBackgroundAltHighBrush}"/>
<Setter Property="BorderBrush" Value="{ThemeResource SystemControlForegroundChromeDisabledLowBrush}"/>
@tpetrina
tpetrina / HashSet.cs
Created January 20, 2013 19:47
Naive implementation of HashSet<T> using Dictionary<T, bool> for Windows Phone 7.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Common
{
public interface ISet<T> : ICollection<T>, IEnumerable<T>, IEnumerable
{
bool Add(T item);