5.0.9 • Published 6 months ago

@ducor/hooks v5.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

@ducor/hooks

A collection of useful React hooks for building modern web applications.

Installation

npm install @ducor/hooks
# or
yarn add @ducor/hooks
# or
pnpm add @ducor/hooks

Available Hooks

HookDescriptionDocumentation
useBooleanBoolean state management with toggle methodsDocumentation
useClipboardCopy text to clipboard with success/error handlingDocumentation
useElementSizeTrack element size using ResizeObserverDocumentation
useFullscreenManage fullscreen mode of an elementDocumentation
useHoverTrack hover state of an elementDocumentation
useIdleDetect when the user is idleDocumentation
useOutsideClickDetect clicks outside of a specified elementDocumentation
usePlacementManage element placement and positioningDocumentation
useProcessingManage loading/processing stateDocumentation
useTimeoutManage timeouts with automatic cleanupDocumentation
useUUIDGenerate unique identifiers (UUIDs)Documentation
useWindowEventManage window event listenersDocumentation

Quick Examples

useBoolean

import { useBoolean } from '@ducor/hooks';

function ToggleComponent() {
  const [isOpen, { toggle, on, off }] = useBoolean(false);

  return (
    <div>
      <button onClick={toggle}>Toggle</button>
      <button onClick={on}>Open</button>
      <button onClick={off}>Close</button>
      <div>{isOpen ? 'Open' : 'Closed'}</div>
    </div>
  );
}

useClipboard

import { useClipboard } from '@ducor/hooks';

function CopyButton({ text }: { text: string }) {
  const { copy, copied, error } = useClipboard();

  return (
    <button onClick={() => copy(text)}>
      {copied ? 'Copied!' : 'Copy'}
      {error && <span className="error">{error.message}</span>}
    </button>
  );
}

useElementSize

import { useElementSize } from '@ducor/hooks';

function ResizableComponent() {
  const { ref, width, height } = useElementSize();

  return (
    <div ref={ref}>
      <p>Width: {width}px</p>
      <p>Height: {height}px</p>
    </div>
  );
}

Documentation

For detailed documentation on each hook, please refer to the docs directory:

Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.