Skip to content

Instantly share code, notes, and snippets.

(function clean() {
const allowed = [];
const container = document.querySelector("section");
const $allTopicsRaw = [...container.querySelectorAll("[role=button]")];
const $allTopics = $allTopicsRaw.reduce((acc, el, i) => {
const isTopic = i % 2 === 0;
isTopic ? acc.push({ topic: el }): acc[acc.length - 1].cancel = el
return acc;
}, []);
@Drag13
Drag13 / chrome.md
Last active November 2, 2022 07:42

Chrome useful flags for web development

Localhost

chrome://flags/#allow-insecure-localhost

NonLocalHost

chrome://flags/#unsafely-treat-insecure-origin-as-secure

const data = { userName: "test user" };
const delay = 1200;
const errorChance = 0.2;
export function fetchData() {
return new Promise((rs, rj) => {
setTimeout(
() =>
Math.random() > errorChance ? rs(data) : rj("Something went wrong"),
delay
@Drag13
Drag13 / react.key.jsx
Created February 10, 2023 07:47
Example how to create key in list
import { v4 as uuidv4 } from "uuid";
import { useEffect, useState } from "react";
// Geting user from the "server"
function fetchUsers() {
return fetch("/users")
.then((x) => x.json())
.then((users) => {
return users.map((u) => {
// creating the key with uuid package

Чекліст перед початком нового проекту для SPA(0) (FRONT_END)

Не функціональні вимоги

Питання Наслідки
Маленькі (не стандартні) екрани? Якщо так(1), то який мінімальний розмір Починаємо з мобільної верстки
Які браузери підтримуємо? Працюємо на найбільш екзотичному браузері або ставимо browserstack
Мультимовність?
@Drag13
Drag13 / git.md
Created September 7, 2023 08:14
GIT Aliases

Git aliases

Sync

  • Add
git config --global alias.sync "!git checkout dev && git pull  && git checkout - &&  git merge -"
import { useEffect, useState } from 'react';
export default Page;
function Page() {
const [visible, setVisible] = useState(true);
const hideCounter = () => setVisible(false);
return (
<main>
@Drag13
Drag13 / delay.ts
Created January 31, 2024 11:17
Timeout base delay for testing purposes
type DelayOptions =
| { timeout: number; shouldFail?: boolean }
| { timeout?: number; shouldFail: boolean };
function delayed<T>(
data: T,
options: DelayOptions = { shouldFail: false, timeout: 1500 }
) {
const { shouldFail, timeout } = options
return new Promise<T>((resolve, reject) => {
// imagine this function is out of the file
function fetchUser(id: number, signal: AbortSignal) {
return fetch(`/user/${id}`, { signal }).then(x=>x.json());
}
function UserDetails({ userId }: { userId: number }) {
const [user, setUser] = useState(null);
useEffect(() => {
const abortController = new AbortController();
fetchUser(userId, abortController.signal).then(setUser);
import React from 'react';
import {
createContext,
useContext,
useState,
} from 'react';
export function HomePage() {
const [s, setS] = useState(1);
const setValue = (v: number) =>