0.0.5-pre-release • Published 10 months ago

@citiwave/im-disclaimer-modal v0.0.5-pre-release

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

IM Disclaimer Modal

⚠️ Pre-release Notice: This package is still under development and should not be considered a beta or production-ready. Use at your own risk.

A React component for displaying and managing user agreements, disclaimers, and consent forms.

Features

  • 🎨 Beautiful, modern UI with customizable themes and colors
  • 📱 Fully responsive design
  • 💾 Local storage integration for persistent user choices
  • 🔒 Required and optional section support
  • 🛠️ CLI tool for managing disclaimers
  • ⚙️ Configurable settings per disclaimer

Installation

npm install @citiwave/im-disclaimer-modal

Quick Start

import { DisclaimerModal } from '@citiwave/im-disclaimer-modal';

function App() {
  return (
    <DisclaimerModal
      name="privacy-policy"
      dataPath="src/data/disclaimers"
      className="bg-blue-500 hover:bg-blue-600 text-white px-4 py-2 rounded"
    >
      Open Privacy Policy
    </DisclaimerModal>
  );
}

CLI Usage

The package includes a CLI tool for managing disclaimers. After installation, you can use the im-disclaimer command.

Initial Setup

Run the setup command to configure the default directory for storing disclaimers:

im-disclaimer setup

Creating Disclaimers

Create a new disclaimer with optional properties:

im-disclaimer create privacy-policy --title "Privacy Policy" --theme dark
im-disclaimer create terms --title "Terms of Service" --default-open true

Managing Disclaimers

List all disclaimers:

im-disclaimer list
im-disclaimer list --json  # Output in JSON format

Update disclaimer properties:

im-disclaimer set privacy-policy --theme dark --accent "#FF4444" --title "Updated Privacy Policy"

Remove a disclaimer:

im-disclaimer remove privacy-policy

Group Commands

Creating a Group:

im-disclaimer group create

Props Commands

View props:

im-disclaimer props

Update props:

im-disclaimer props:update

Configuration

View current configuration:

im-disclaimer config

Update default directory:

im-disclaimer config:set --default-dir "src/data/disclaimers"

File Structure

The CLI creates and manages two types of files in your disclaimers directory:

1. Disclaimer Content (name.json)

{
  "section-1": {
    "title": "Section Title",
    "required": true,
    "content": {
      "title": "Content Title",
      "sections": [
        {
          "heading": "Subsection Heading",
          "text": "Main text content",
          "list": [
            "List item 1",
            "List item 2"
          ]
        }
      ]
    }
  }
}

2. Configuration (_config.json)

{
  "privacy-policy": {
    "title": "Privacy Policy",
    "prefix": "my-app",
    "defaultOpen": true,
    "theme": "dark",
    "accent": "#FF4444"
  }
}

Component Props

PropTypeDescription
namestringName of the disclaimer to load
dataPathstringPath to the disclaimers directory
classNamestringCSS classes for the trigger button
childrenReactNodeContent for the trigger button

Advanced Usage

Custom Storage Prefix

const { isOpen, onClose } = useDisclaimer('privacy-policy', {
  storagePrefix: 'my-app',
  defaultOpen: true
});

Theme Customization

<DisclaimerModal
  name="privacy-policy"
  dataPath="src/data/disclaimers"
  theme="dark"
  accentColor="#FF4444"
/>

Manual Control

const { isOpen, onClose, setAllSectionsAgreed } = useDisclaimer('privacy-policy');

<DisclaimerModal
  isOpen={isOpen}
  onClose={onClose}
  onAllSectionsAgreed={(agreed) => {
    setAllSectionsAgreed(agreed);
    // Additional handling
  }}
/>

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

MIT

0.0.5-pre-release

10 months ago

0.0.1-pre-release

10 months ago

0.0.1

10 months ago

2.0.1

10 months ago

2.0.0

10 months ago

1.2.1

10 months ago

1.2.0

10 months ago

1.1.6

10 months ago

1.1.5

10 months ago

1.1.4

10 months ago

1.1.3

10 months ago

1.1.2

10 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago