Skip to content

Instantly share code, notes, and snippets.

View mkozhukharenko's full-sized avatar

Nikolay mkozhukharenko

View GitHub Profile
@mkozhukharenko
mkozhukharenko / NotficationActionTypes.js
Created February 14, 2016 19:33 — forked from jerairrest/NotficationActionTypes.js
React-toastr Redux Implementation
export const RECEIVE_MESSAGE = 'RECEIVE_MESSAGE';
@mkozhukharenko
mkozhukharenko / koa-passport-auth.js
Created June 9, 2016 07:22 — forked from moustacheful/koa-passport-auth.js
Koa passport.authenticate wrapper
// koa-passport-authenticate.js
'use strict'
const _ = require('lodash')
const passport = require('koa-passport')
'use strict'
// Middleware wrapper for koa passport to have proper error handling on authenticate.
@mkozhukharenko
mkozhukharenko / event-emitter.js
Last active June 30, 2016 20:13
Simple Event Emitter
// Simple Event emitter realization
class EventEmitter {
constructor() {
// store for handlers
this.events = {};
}
// subscribe
on(name, fn) {
this.events[name] = this.events[name] || [];
@mkozhukharenko
mkozhukharenko / event-emitter-improved.js
Created June 30, 2016 20:14
Simple Event Emitter Improved
// make EE singelton, add .off method
let instance = null;
class EventEmitter {
constructor() {
// ensure we have only one instance (singelton pattern)
if (!instance) {
instance = this;
}
@mkozhukharenko
mkozhukharenko / get-values.js
Created October 11, 2016 14:02
React and MobX form validation - full example here https://github.com/mkozhukharenko/mobx-form-validation
// trun {fiels: {email: 'val', err:''}} to {email: 'val'}
var getValues = () => {
let data = {};
let form = toJS(this.form).fields;
Object.keys(form).map(key => {
data[key] = form[key].value
});
return data
}
@mkozhukharenko
mkozhukharenko / input-component.jsx
Last active October 30, 2016 15:38
Input component
<FormInput name="name"
value={form.fields.name.value}
error={form.fields.name.error}
onChange={form.onFieldChange}
placeholder="Enter your name"/>
@mkozhukharenko
mkozhukharenko / onFieldChange.js
Last active October 30, 2016 16:03
onFieldChange implementation with validation
import {action, observable} from 'mobx';
import Validator from 'validatorjs';
class LoginStore {
@observable
form = {
fields: {
email: {
value: '',
error: null,
@mkozhukharenko
mkozhukharenko / login-form-model.js
Last active October 30, 2016 16:04
Login Form model
import { observable } from 'mobx'
export default class LoginStore {
@observable
form = {
fields: {
email: {
value: '', // binds to input value
error: null // shows beneif the input
},
import React, { Component, PropTypes } from 'react';
import FormInput from './../common/form-input'
import { observer } from 'mobx-react'
@observer
class LoginForm extends Component {
render() {
const {form, onChange} = this.props;
return (
<form onSubmit={this.submit}>
import React, { Component } from 'react';
import { observer } from 'mobx-react';
import LoginForm from './login/login-form.component';
import LoginStore from './login/login.store';
let loginStore = LoginStore();
@observer
class App extends Component {
render() {