Skip to content
This repository has been archived by the owner on Jun 6, 2023. It is now read-only.

fipnooone/react-hooks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Hooks

Usage

import {
	useCallbackState,
	useEvents,
	useObjectCallback,
	useObjectEffect,
	useObjectMemo,
	useOutside,
	useParams,
	usePromiseState,
	useTrustedPromise,
	useTrustedState,
} from "@fipnooone/hooks";

useState

useTrustedState

const [state, setState, isTrusted] = useTrustedState("defaultValue", true);
const [state, setState, isTrusted] = useTrustedState();

useCallbackState

const [state, setState] = useCallbackState("defaultValue");

const changeCallback = (value: string) => console.log(value);

const changeState = () => setState("newValue", changeCallback);

usePromiseState

const [state, setState] = usePromiseState<User>();

const changeState = () =>
	setState({ username: "fipnooone", website: "https://fipnoo.one" }).then((value) => {
		console.log(value);
	});

useTrustedPromise

const [state, setState] = useTrustedPromise<number>();

const changeState = () => setState(undefined).then();

useParams

const { id, station_slug } = useParams({ id: 'int', station_slug: 'string' });
// id: number
// station_slug: string

// redirect is true by refault
useParams({ }, redirect: boolean | '/url/to/a-page');

const { id, station_slug } = useParams({ id: 'int', station_slug: 'string' }, false);
// id: number | undefined
// station_slug: string | undefined

useObject

useObjectEffect / useObjectCallback / useObjectMemo

const [users, setUsers] = useState<User[]>([]);

useObjectEffect(() => {
	// ...
}, [users]);

useCallback

useOutside

useOutside(myRef, () => close(), [dep]);

useEvents

useEvents(
	"click",
	(event) => {
		while (true) {
			console.log("clicked");
		}
	},
	[dep0, dep1],
	document
);

useRef

useRefEffect

useRefEffect((T) => {}, ref<T>, [dep]);

useEvents

useRefReady((T) => {}, ref<T>);

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published