Skip to Content
GuideReact Hooks

React Hooks

Orbitus provides a collection of custom React hooks to simplify common UI and logic patterns. These hooks are designed to be type-safe and SSR-compatible.

Custom Hooks

useClickOutside

Trigger a callback when clicking outside of a specified element. Useful for closing modals, dropdowns, or popovers.

import { useRef, useState } from 'react'; import { useClickOutside } from '@orbitusdev/core/hooks'; export function Dropdown() { const [isOpen, setIsOpen] = useState(false); const ref = useRef<HTMLDivElement>(null); useClickOutside(ref, () => setIsOpen(false)); return ( <div ref={ref}> <button onClick={() => setIsOpen(!isOpen)}>Toggle</button> {isOpen && <div className="dropdown-menu">Content</div>} </div> ); }

useHotkeys

Bind keyboard shortcuts to actions. Supports modifier keys (Cmd, Ctrl, Shift, Alt).

import { useHotkeys } from '@orbitusdev/core/hooks'; export function Editor() { useHotkeys([ { key: 's', metaKey: true, // Cmd+S (Mac) or Win+S (Windows) action: (e) => { e.preventDefault(); saveDocument(); }, }, { key: 'Escape', action: () => closeModal(), }, ]); return <div>Press Cmd+S to save</div>; }

useMobile

Detect if the viewport is currently in mobile width (default < 768px). Safe for SSR (returns false initially).

import { useMobile } from '@orbitusdev/core/hooks'; export function Sidebar() { const isMobile = useMobile(); if (isMobile) { return <MobileMenu />; } return <DesktopSidebar />; }

useCookieConsent

Manage user cookie preferences and detect bots. Returns flags for different consent categories.

import { useCookieConsent } from '@orbitusdev/core/hooks'; export function AnalyticsComponent() { const { canUseAnalytics } = useCookieConsent(); if (!canUseAnalytics) { return null; } return <GoogleAnalytics />; }

useCanvasConfetti

Trigger confetti animations on a canvas.

import { useRef } from 'react'; import { useCanvasConfetti } from '@orbitusdev/core/hooks'; export function Celebration() { const canvasRef = useRef<HTMLCanvasElement>(null); const { fire } = useCanvasConfetti(canvasRef); return ( <> <canvas ref={canvasRef} /> <button onClick={fire}>Celebrate!</button> </> ); }

useGithubStats

Fetch repository statistics (stars, forks) from GitHub.

import { useGithubStats } from '@orbitusdev/core/hooks'; export function RepoCard() { const { stars, forks, isLoading } = useGithubStats('orbitusdev/orbitus'); if (isLoading) return <div>Loading...</div>; return <div>{stars} Stars</div>; }

Built-in React Hooks

Orbitus encourages standard usage of built-in React hooks:

  • useState: For local component state.
  • useEffect: For side effects (data fetching, subscriptions).
  • useContext: For consuming context providers.
  • useCallback: For memoizing event handlers.
  • useMemo: For memoizing expensive calculations.
  • useRef: For accessing DOM elements or storing mutable values.

Rules of Hooks

  1. Only call hooks at the top level of your component.
  2. Only call hooks from React function components or custom hooks.
Last updated on