Skip to content

Instantly share code, notes, and snippets.

@arminyahya
arminyahya / formstate.ts
Last active July 5, 2019 03:12
final loginformstate
import { FormState, FieldState } from 'formstate';
export default class LoginFormState {
username = new FieldState('').validators((val) => !val && 'username required');
password = new FieldState('').validators((val) => !val && 'password required');
form = new FormState({
username: this.username,
password: this.password
});
@arminyahya
arminyahya / formstate.ts
Created July 5, 2019 03:36
loginformstate first look
import { FormState, FieldState } from 'formstate';
export default class LoginFormState {
username = new FieldState('');
password = new FieldState('');
}
@arminyahya
arminyahya / formstate.ts
Created July 5, 2019 03:37
loginformstate with validators
import { FormState, FieldState } from 'formstate';
export default class LoginFormState {
username = new FieldState('').validators((val) => !val && 'username required');
password = new FieldState('').validators((val) => !val && 'password required');
form = new FormState({
username: this.username,
password: this.password
});
@arminyahya
arminyahya / form.tsx
Last active July 5, 2019 15:06
form first look
import React from 'react';
import LoginFormState from './formstate';
const LoginForm = () => {
const formData = new LoginFormState();
return (
<div className="login-form">
<div className="login-form_field">
<label>username</label>
<input onChange={(e) => { formData.username.onChange(e.target.value); }} />
@arminyahya
arminyahya / form.tsx
Last active July 5, 2019 15:16
form with observer
import React from 'react';
import LoginFormState from './formstate';
import { Observer } from 'mobx-react';
const LoginForm = () => {
const formData = new LoginFormState();
return (
<Observer>
{() => {
@arminyahya
arminyahya / hook.ts
Created July 5, 2019 03:45
useInstance hook
import { useRef } from 'react';
export const useInstance = <T>(fn: () => T) => {
const instanceRef = useRef<T | null>(null);
if (instanceRef.current === null) {
instanceRef.current = fn();
}
return instanceRef.current as T;
}
@arminyahya
arminyahya / form.tsx
Last active July 5, 2019 15:15
final form
import React from 'react';
import LoginFormState from './formstate';
import { useInstance } from './hooks';
import { Observer } from 'mobx-react';
const LoginForm = () => {
const formData = useInstance(() => new LoginFormState());
return (
<Observer>
var express = require('express');
var express_graphql = require('express-graphql');
var { buildSchema } = require('graphql');
// GraphQL schema
var schema = buildSchema(`
type Query {
movie(id: Int!): Movie
movies(rate: String): [Movie]
},
type Movie {
import React from "react"
import { Link } from "gatsby"
import Layout from "../components/layout"
import Image from "../components/image"
import SEO from "../components/seo"
import { useStaticQuery, graphql } from "gatsby"
const IndexPage = () => {
const MovieResult = useStaticQuery(
graphql`
var { buildSchema } = require('graphql');
var { MoviesList } = require('./movie-list');
var schema = buildSchema(`
type Query {
movieInfo(id: Int!): Movie
movieList(rate: String): [Movie]
},
type Movie {
id: Int