Skip to content

Instantly share code, notes, and snippets.

View dovranJorayev's full-sized avatar

dovran dovranJorayev

View GitHub Profile
@dovranJorayev
dovranJorayev / view-model.ts
Created January 19, 2024 17:23
View model boilerplate for factory models
import {
ComponentType,
ForwardRefExoticComponent,
PropsWithoutRef,
RefAttributes,
createContext,
forwardRef,
useContext
} from 'react';
// import { ComponentLike, isForwardRefComponent } from './react';
@dovranJorayev
dovranJorayev / use-once-effect.ts
Created January 11, 2024 12:25
useEffect with empty deps that triggers once
import { useEffect, useRef, useState } from 'react';
type Noop = () => void;
export const useOnceEffect = (effect: Noop | { (): Noop }) => {
const effectFn = useRef<Noop | { (): Noop }>(effect);
const destroyFn = useRef<void | Noop>();
const effectCalled = useRef(false);
const rendered = useRef(false);
const [, setVal] = useState<number>(0);
@dovranJorayev
dovranJorayev / example.api.ts
Created June 27, 2023 06:50 — forked from epicbytes/example.api.ts
NextJS Authorization Files
/*** function that used as middleware ***/
accessToken: async (name) => {
if (typeof document === "undefined") return "";
let token = document.cookie
.split(";")
.filter((cookie) => cookie.startsWith("token"))[0];
if (!token) {
const response = await fetch("/api/refresh", { method: "POST" });