JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6806
  • Score
    100M100P100Q123307F
  • License Apache-2.0

A sweetalert2 wrapper to ReactJS

Package Exports

  • react-sweetalert2
  • react-sweetalert2/build/index.js
  • react-sweetalert2/build/index.module.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-sweetalert2) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Test Coverage Status

React sweetalert2

Install

$ npm i react-sweetalert2

or

$ yarn add react-sweetalert2

Usage

Functional Component

import React, { useState } from 'react';
import SweetAlert2 from 'react-sweetalert2';

export default function App(){
    const [swalProps, setSwalProps] = useState({});
    return (
        <div>
            <button onClick={() => {
                setSwalProps({
                    show: true,
                    title: 'Basic Usage',
                    text: 'Hello World',
                });
            }}>
                Open
            </button>

            <SweetAlert2 {...swalProps} />
        </div>
    );
}

Class Component

import React, { Component } from 'react';
import SweetAlert2 from 'react-sweetalert2';

export default class App extends Component{
    constructor(){
        super();

        this.state = {
            swal: {}
        }
    }

    render() {
        return (
            <div>   
                <button onClick={() => {
                    this.setState({
                        swal: {
                            show: true,
                            title: 'Basic Usage',
                            text: 'Hello World'
                        }
                    });
                }}>Alert</button>  
                <SweetAlert2 {...this.state.swal} />
            </div>
        );
    }
}


Using withSwal function

Inject swal props into Functional Component
import React from 'react';
import { withSwal } from 'react-sweetalert2';

export default withSwal((props, ref) => {
    const { swal, ...rest } = props;

    function handleClick(){
        swal.fire({
            title: 'Example',
            text: 'Swal injected',
            icon: 'success',
        });
    }
    
    return (
        <button onClick={handleClick}>
            Open
        </button>
    );
});
Inject swal props into Class Component
import React from 'react';
import { withSwal } from 'react-sweetalert2';

class ExampleComponent extends Component {
    
    function handleClick(){
        this.swal.fire({
            title: 'Example',
            text: 'Swal injected',
            icon: 'success',
        });
    }

    render(){
        return (
            <button onClick={this.handleClick.bind(this)}>
                Open
            </button>
        );
    }
}

export default withSwal(ExampleComponent);

Events

Using SweetAlert2 component
import React, { useState } from 'react';
import SweetAlert2 from 'react-sweetalert2';

export default function App(){
    const [swalProps, setSwalProps] = useState({});

    function handleClick(){
        setSwalProps({
            show: true,
            title: 'Example',
            text: 'Hello World',
        }); 
    }

    return (
        <div>   
            <button onClick={handleClick}>
                Alert
            </button>  
            <SweetAlert2 {...swalProps}
                didOpen={() => {
                    // run when swal is opened...
                }}
                didClose={() => {
                    // run when swal is closed...
                }}
                onConfirm={result => {
                    // run when clieked in confirm and promise is resolved...
                }}
                onError={error => {
                    // run when promise rejected...
                }}
                onResolve={result => {
                    // run when promise is resolved...
                }}
            />
        </div>
    );
}
Using swal prop injected
import React from 'react';
import { withSwal } from 'react-sweetalert2';

export default withSwal(({ swal }, ref) => (
    <button onClick={e => {
        swal.fire({
            title: 'Example',
            text: 'Hello World',
            didOpen: () => {
                // run when swal is opened...
            },
            didClose: () => {
                // run when swal is closed...
            }
        }).then(result => {
            // when confirmed and promise resolved...
        }).catch(error => {
            // when promise rejected...
        });
    }}>
        Show Alert
    </button>  
));
Using content from HTML and React elements
import React, { useState } from 'react';
import SweetAlert2 from 'react-sweetalert2';

export default function App(){
    const [swalProps, setSwalProps] = useState({});

    function handleClick(){
        setSwalProps({
            show: true,
            title: 'Example'
        }); 
    }

    return (
        <div>   
            <button onClick={handleClick}>
                Alert
            </button>  
            <SweetAlert2 {...swalProps}>
                <h1>
                    Hello World!
                </h1>
            </SweetAlert2>
        </div>
    );
}