use-back-stack-overlay
TypeScript icon, indicating that this package has built-in type declarations

1.0.8 â€Ē Public â€Ē Published

🚀 useBackStackOverlay

A React Hook in PWA style that allows you to manage overlay UIs such as modals or drawers with the browser's back button.

npm version

ðŸ“ą Demo Comparison

Before After
Before After
Modals remain open when going back Modals can be closed with back button

âœĻ Key Features

  • 🔙 Close modals, drawers, and other UI elements with the browser's back button
  • 📚 When multiple overlays are open, they are closed in reverse order (last opened first)
  • ðŸ“ą Provides a mobile app experience on the web similar to PWAs
  • ⚛ïļ Compatible with Next.js and React

ðŸ“Ķ Installation

npm install use-back-stack-overlay

🔍 Usage

import { useState } from "react";
import { useHistoryBackDrawer } from "use-back-stack-overlay";

function App() {
  // Drawer state management
  const [isDrawer1Open, setIsDrawer1Open] = useState(false);
  const [isDrawer2Open, setIsDrawer2Open] = useState(false);

  // Using the hook
  useHistoryBackDrawer([
    { isOpen: isDrawer1Open, setIsOpen: setIsDrawer1Open },
    { isOpen: isDrawer2Open, setIsOpen: setIsDrawer2Open },
  ]);

  return (
    <div>
      <button onClick={() => setIsDrawer1Open(true)}>Open Drawer 1</button>
      <button onClick={() => setIsDrawer2Open(true)}>Open Drawer 2</button>

      {isDrawer1Open && (
        <div className="drawer">
          <h2>Drawer 1</h2>
          <button onClick={() => setIsDrawer1Open(false)}>Close</button>
        </div>
      )}

      {isDrawer2Open && (
        <div className="drawer">
          <h2>Drawer 2</h2>
          <button onClick={() => setIsDrawer2Open(false)}>Close</button>
        </div>
      )}
    </div>
  );
}

🛠ïļ Development Setup

# Clone the repository
git clone https://github.com/mrpumpkin98/use-Back-stack-close.git
cd use-back-stack-overlay

# Install dependencies
npm install

# Build
npm run build

📋 Running Examples

# After cloning the repository, navigate to the examples directory
cd examples

# Install dependencies
npm install

# Run the development server
npm run dev

Access the example by visiting http://localhost:3000 in your browser.

ðŸĪ Contributing

Issues and pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Package Sidebar

Install

npm i use-back-stack-overlay

Weekly Downloads

0

Version

1.0.8

License

MIT

Unpacked Size

9.21 kB

Total Files

6

Last publish

Collaborators

  • insa02