Skip to content

Instantly share code, notes, and snippets.

View dovranJorayev's full-sized avatar

dovran dovranJorayev

View GitHub Profile
@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" });
@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 / 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 / entity-feature-declarative.ts
Created January 26, 2024 05:37
Declarative entity management
// shared/api/contracts.ts
export type CompanyDetailed = {
id: string;
name: string;
type: 'outcome' | 'income';
notes: string;
isLiked: boolean;
};
// shared/api/api-company/thunks.ts
@dovranJorayev
dovranJorayev / gist:77211876ca937bd41cdbbe8c58b33247
Created April 17, 2024 09:35
Persist adapter for @mswjs/data
import {
SERIALIZED_INTERNAL_PROPERTIES_KEY,
type SerializedEntity,
} from '@mswjs/data/lib/db/Database';
import {
DATABASE_INSTANCE,
ENTITY_TYPE,
PRIMARY_KEY,
type Entity,
type FactoryAPI,
@dovranJorayev
dovranJorayev / model-context.ts
Created May 2, 2024 08:22
effector model react bindings
import {
ComponentType,
ForwardRefExoticComponent,
PropsWithoutRef,
RefAttributes,
createContext,
forwardRef,
useContext
} from 'react';
// shared/lib/notification/core.ts
import {
cleanNotifications,
cleanNotificationsQueue,
hideNotification,
showNotification,
updateNotification,
updateNotificationsState,
NotificationsStore,
NotificationData,
diff --git a/node_modules/next-redux-wrapper/.DS_Store b/node_modules/next-redux-wrapper/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/node_modules/next-redux-wrapper/.DS_Store differ
diff --git a/node_modules/next-redux-wrapper/es6/index.d.ts b/node_modules/next-redux-wrapper/es6/index.d.ts
index 66c1548..181cf6d 100644
--- a/node_modules/next-redux-wrapper/es6/index.d.ts
+++ b/node_modules/next-redux-wrapper/es6/index.d.ts
@@ -1,6 +1,6 @@
/// <reference types="node" />
@dovranJorayev
dovranJorayev / from-query.ts
Created July 8, 2024 16:22
Util to create query instance in mobx primitives
import {
DefaultError,
QueryClient,
QueryKey,
QueryObserver,
QueryObserverResult,
UseBaseQueryOptions,
UseQueryOptions,
notifyManager,
} from '@tanstack/react-query';
@dovranJorayev
dovranJorayev / mantine-notifications.ts
Last active October 2, 2024 12:10
Proof of concept app notification service implementation
// shared/lib/notifications/core.ts //////////////////////////////////////////////
import {
NotificationData,
NotificationsStore,
cleanNotifications,
cleanNotificationsQueue,
hideNotification,
showNotification,
updateNotification,
updateNotificationsState,