Skip to content

Instantly share code, notes, and snippets.

View zapkub's full-sized avatar
🦄
Doing FINE !

Rungsikorn Rungsikavanich zapkub

🦄
Doing FINE !
View GitHub Profile
import gql from "graphql-tag"
import { ASTNode } from "graphql"
export function extractTypeFromSchema(
expectTypeName: string[],
schema?: ASTNode,
result: string[] = []
): string[] {
/**
* Implementation...
@zapkub
zapkub / ssh-check-password-and-add-public-key.sh
Created November 5, 2018 13:31
Run command shell on remote server and check if password exists then add public key
## BK1 deployment script with SSH
if [ -z "$SSH_DEPLOYMENT_SERVER" ]
then
echo ERROR: please provide SSH_DEPLOYMENT_SERVER variable to deploy instance to server
exit 1
else
echo Deploy BK1 API server instance to $SSH_DEPLOYMENT_SERVER
fi
@zapkub
zapkub / function-component-problem.jsx
Created November 14, 2018 15:47
function component state before hook
// THIS COMPONENT CANNOT HAVE STATE
const MyInputComponent ({ value, onChange }) => {
return (
<input value={value} onChange={onChange} />
)
}
@zapkub
zapkub / function-component-hook.jsx
Created November 14, 2018 15:52
put hook into function component
// NOW ( currently on alpha 14 nov 2018 ) THIS COMPONENT CAN HAVE STATE
const MyInputComponent ({ }) => {
const [value, setValue] = React.useState("put some default value here")
const onChange = (e) => setValue(e.value.target)
return (
<input value={value} onChange={onChange} />
)
}
@zapkub
zapkub / todo-state.ts
Created November 15, 2018 04:44
Todo state
type TodoItem = {
title: string
completed: boolean
}
type TodoState = {
// ชนิดของ filter ที่ toggle อยู่
filter: "All" | "Active" | "Completed",
// Todo ทั้งหมด
const TodosApp = () => {
// Declare every state we need to store
const [filter, setFilter] = React.useState<TodoState["filter"]>("All");
const [todos, setTodo] = React.useState<TodoState["todos"]>([]);
const [textInput, setTextInput] = React.useState<TodoState["textInput"]("");
return ( /** implement UI */ )
@zapkub
zapkub / App.jsx
Last active November 15, 2018 10:17
import React from "react";
import "./App.css";
import "todomvc-common/base.css";
import "todomvc-app-css/index.css";
// เขียน ทุก component รวมกันในไฟล์เดียว
// เพื่อความสะดวกในการเขียนบทความ
const TodoInput = () => <div />;
const TodoList = () => <div />;
// TodoInput.jsx
const TodoInput = () => {
const [textInput, setTextInput] = React.useState("");
function onTextChange(e) {
setTextInput(e.target.value);
}
return (
<input className="new-todo" value={textInput} onChange={onTextChange} />
@zapkub
zapkub / index.jsx
Last active November 15, 2018 11:24
const TodoStoreContext = React.createContext();
const TodoStoreProvider = ({ children }) => {
const store = {
todos: [
{
title: "Touch myself."
},
{
title: "Sleep peacefully"
}
export default () => (
<TodoStoreProvider>
<div className="App todoapp">
<header className="header">
<h1>todos</h1>
<TodoInput />
</header>
<section className="main">