Skip to content

Instantly share code, notes, and snippets.

View hyber1z0r's full-sized avatar

Jakob Gaard Andersen hyber1z0r

View GitHub Profile
let completedAll = true;
for (let i = 0; i < todos.length; i++) {
if (!todos[i].completed) {
completedAll = false;
break;
}
}
const completedAll = todos.every((todo) => todo.completed);
console.log(completedAll); // false
const todo = todos.find((todo) => todo.id === 1);
let todo: Todo | undefined;
for (let i = 0; i < todos.length; i++) {
if (todos[i].id === 1) {
todo = todos[i];
break; // Remember to break so we don't keep iterating after we found it
}
}
import React from 'react';
type Todo = {
id: number;
title: string;
completed: boolean;
}
type Props = {
todo: Todo;
type Todo = {
id: number;
title: string;
completed: boolean;
}
const todos: Todo[] = [
{ id: 1, title: 'Buy nachos', completed: false },
{ id: 2, title: 'Buy avocado', completed: true },
{ id: 3, title: 'Buy ground beef', completed: false },
type Todo = {
id: number;
title: string;
completed: boolean;
}
const todos: Todo[] = [
{ id: 1, title: 'Buy nachos', completed: false },
{ id: 2, title: 'Buy avocado', completed: true },
{ id: 3, title: 'Buy ground beef', completed: false },
@hyber1z0r
hyber1z0r / ShoppingList.tsx
Created August 4, 2020 10:08
useInterval example
import React, { useState, useCallback } from 'react';
import useInterval from './useInterval';
const ShoppingList = () => {
// Wait 5 seconds before fetching new data
const POLL_DELAY = 5000;
const [items, setItems] = useState([]);
const fetchItems = useCallback(async () => {
const response = await fetch('/shopping-list/items');
@hyber1z0r
hyber1z0r / useInterval.ts
Last active August 10, 2020 19:41
useInterval hook
import React, { useEffect, useRef } from 'react';
const useInterval = (callback: () => void, delay: number | null) => {
const savedCallback = useRef(callback);
useEffect(() => {
savedCallback.current = callback;
}, [callback]);
useEffect(() => {
@hyber1z0r
hyber1z0r / NewsletterBanner.tsx
Created August 4, 2020 10:03
useTimeout example
import React, { useState } from 'react';
import useTimeout from './useTimeout';
const NewsletterBanner = () => {
// Wait 5 seconds before poppung up banner
const wait = 5000;
const [visible, setVisible] = useState(false);
useTimeout(() => {
setVisible(true);