Skip to content

Instantly share code, notes, and snippets.

View greaveselliott's full-sized avatar

Elliott Greaves greaveselliott

  • London, UK
View GitHub Profile
@greaveselliott
greaveselliott / Dockerfile
Created November 16, 2019 23:40
multi-stage builds
# Use the Node LTS image
# Step 1: Building our application
FROM node:lts-alpine AS builder
# Copying the project repo to the builder images default working directory /root
COPY . .
# Installing JS dependencies
RUN yarn
@greaveselliott
greaveselliott / Dockerfile
Last active November 16, 2019 23:04
Using the alpine long term support node image
# Use the Node LTS image
# Build step named 'builder'
FROM node:lts-alpine AS builder
# Set the default working directory
WORKDIR /root
# Copying the project repo to the builder images default working directory /root
COPY . .
import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import { StoreProvider } from "./Store";
ReactDOM.render(
<StoreProvider>
<App />
</StoreProvider>,
import React, { useRef, useContext } from "react";
import { Store } from "./Store";
import { createNewListItem, deleteListItem } from "./Actions";
import "./app.scss";
export default function App() {
const { state, dispatch } = useContext(Store);
const input = useRef();
return (
<main>
<h1>To do list</h1>
<form onSubmit={onFormSubmit}>
<input type="text" ref={input} />
<input type="submit"/>
</form>
// ...
)
import { createNewListItem } from "./Actions";
const { state, dispatch } = useContext(Store);
const input = useRef();
const onFormSubmit = event => {
event.preventDefault();
createNewListItem({
dispatch,
return (
<main>
<h1>To do list</h1>
<form>
<input type="text" ref={input} />
<input type="submit"/>
</form>
// ...
)
import React, { useRef, useContext } from "react";
import { Store } from "./Store";
import { createNewListItem, deleteNewListItem } from "./Actions";
import "./app.scss";
export default function App() {
const { state, dispatch } = useContext(Store);
const input = useRef();
return (<main className="app">
<h1 className="app__title">To do list</h1>
<form className="app__form" onSubmit={onFormSubmit}>
<input type="text" className="app__input" ref={input} />
<input
type="submit"
className="app__input-submit"
value="Add to list"
/>
</form>
return (
<main className="app">
<h1 className="app__title">To do list</h1>
<form className="app__form">
<input type="text" className="app__input"/>
<input
type="submit"
className="app__input-submit"
value="Add to list"
/>