This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <details> | |
| <summary>Languages Used</summary> | |
| <p>This page was written in HTML and CSS. The CSS was compiled from SASS. Regardless, this could all be done in plain HTML and CSS</p> | |
| </details> | |
| <details> | |
| <summary>How it Works</summary> | |
| <p>Using the sibling and checked selectors, we can determine the styling of sibling elements based on the checked state of the checkbox input element. </p> | |
| </details> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| functions: | |
| lambda_sheets: | |
| handler: handler.runs | |
| description: Lambda function to pull data from Postgres and dump to Google Spreadsheet | |
| timeout: 900 | |
| events: | |
| - schedule: | |
| rate: rate(1 hour) | |
| enabled: true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "name": "Customers", | |
| "description": "All customer related details sync", | |
| "spreadsheetUrl": "https://docs.google.com/spreadsheets/d/1d4QXXx8qFRhcajpVcEbwVM8TlEXAvrclWpLGmqvw-Pc/edit#gid=0", | |
| "spreadsheetId": "1d4QXXx8qFRhcajpVcEbwVM8TlEXAvrclWpLGmqvw-Pc", | |
| "tables": [ | |
| { | |
| "tableName": "customer_details", | |
| "sheetName": "Sheet1" | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const { Client } = require('pg') | |
| const pg = { | |
| init: async function() { | |
| const client = new Client({ | |
| user: process.env['DB_USER'] || 'postgres', | |
| host: process.env['DB_HOST'] || 'localhost', | |
| database: process.env['DB_NAME'] || 'customers', | |
| password: process.env['DB_PASSWORD'] || '', | |
| port: 5432 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class ItemList extends React.Component { | |
| state = { | |
| items: this.props.items | |
| }; | |
| onSortEnd = ({ oldIndex, newIndex }) => { | |
| this.setState({ | |
| items: arrayMove(this.state.items, oldIndex, newIndex) | |
| }); | |
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import React from 'react' | |
| class App extends React.Component { | |
| state = { | |
| items: ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6"] | |
| }; | |
| addItem = newItem => { | |
| this.setState({ items: [...this.state.items, newItem] }); | |
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import React from "react"; | |
| export default class NewItem extends React.Component { | |
| state = { value: "" }; | |
| updateValue = evt => { | |
| this.setState({ value: evt.target.value }); | |
| }; | |
| addNewItem = () => { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import React from "react"; | |
| import {SortableContainer, SortableElement, SortableHandle, arrayMove} from "react-sortable-hoc"; | |
| const DragHandle = SortableHandle(() => ( | |
| <span className="handle">≡</span> | |
| )); | |
| const SortableItem = SortableElement(({ value }) => ( | |
| <li> | |
| <DragHandle /> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| test('TodoForm should add new item and call onAddItem callback prop', () => { | |
| const addItem = jest.fn() | |
| const {getByTestId} = render(<TodoForm onAddItem={addItem}/>) | |
| let newItem = 'Get Milk' | |
| fireEvent.change(getByTestId('newItemField'), {target: {value: newItem}}) | |
| getByTestId('addBtn').click() | |
| expect(addItem).toBeCalledWith({newItemValue: newItem}) | |
| expect(addItem).toHaveBeenCalledTimes(1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class TodoForm extends React.Component { | |
| static propTypes = { | |
| onAddItem: PropTypes.func | |
| } | |
| state = {value: ''} | |
| handleChange = (event) => { | |
| this.setState({value: event.target.value}); |