1.0.2 • Published 3 months ago

modal-react-laurahaas v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
3 months ago

modal-react-laurahaas

modal-react-laurahaas is a React component that displays a modal window after a form has been submitted. The modal will be closed by clicking on the "close" button or by clicking outside the modal. You can customise the form submission function.

📦 Installation

Install the package with npm or yarn :

npm install modal-react-laurahaas

or

yarn add modal-react-laurahaas

🚀 Use

Here is an example of using the Dialog component in a React application:

import React, { useRef } from "react";
import Dialog from "modal-react-laurahaas";
import "./dialog.css"; // You can import your own CSS if necessary

const App = () => {

    /**
     * Toggles the dialog modal open or closed
     * Closes the modal when clicked externally
     */
    const dialogRef = useRef(null)
    const toggleDialog= () => {
        if(!dialogRef.current) {
            return
        }
        dialogRef.current.hasAttribute("open")
            ? dialogRef.current.close()
            : dialogRef.current.showModal();
    };

    /**
     * Customise the function you want to use when sending your form
     */
    const sendingFunction = (e) => {
        e.preventDefault();
        console.log("Information sent!");
        toggleDialog();
    }
    
    return (
    <div>
        <form onSubmit={sendingFunction}>
            <div>
                <label htmlFor="first-field">First Field</label>
                <input type="text" id="first-field" />
            </div>
            <button className="save-button" type="submit">Save</button>
        </form>
        
        <Dialog
            toggleDialog={toggleDialog}
            ref={dialogRef}
            textModal="My modal content"
        />
    </div>
  );
};

export default App;

⚙️ Props disponibles

NameTypeDescription
toggleDialogfunctionFunction to toggle the modal visibility
dialogRefReact refReference to the dialog element
textModalstringThe text content of your modal

 

🎨 Personnalisation

The dialog.css file can be modified to adapt the style of the modal to your application.

Example :

.hl-modal {
  background: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 20px;
  border-radius: 5px;
}

The css classes available are :

  • .hl-modal {}
  • ::backdrop {}, .hl-modal-content {} (text inside the modal)
  • .hl-modal-close-button {}
  • .hl-modal-close-button:hover {} (for the hover background color)
  • .hl-modal-close-button::before {} (the x icon)
acornacorn-jsxajvansi-stylesargparsearray-buffer-byte-lengtharray-includesarray.prototype.findlastarray.prototype.flatarray.prototype.flatmaparray.prototype.tosortedarraybuffer.prototype.sliceasync-functionavailable-typed-arraysbalanced-matchbrace-expansionbrowserslistcall-bindcall-bind-apply-helperscall-boundcallsitescaniuse-litechalkcolor-convertcolor-nameconcat-mapconvert-source-mapcross-spawncsstypedata-view-bufferdata-view-byte-lengthdata-view-byte-offsetdebugdeep-isdefine-data-propertydefine-propertiesdoctrinedunder-protoelectron-to-chromiumes-abstractes-define-propertyes-errorses-iterator-helperses-object-atomses-set-tostringtages-shim-unscopableses-to-primitiveesbuildescaladeescape-string-regexpeslinteslint-plugin-reacteslint-plugin-react-hookseslint-plugin-react-refresheslint-scopeeslint-visitor-keysespreeesqueryesrecurseestraverseesutilsfast-deep-equalfast-json-stable-stringifyfast-levenshteinfile-entry-cachefind-upflat-cacheflattedfor-eachfunction-bindfunction.prototype.namefunctions-have-namesgensyncget-intrinsicget-protoget-symbol-descriptionglob-parentglobalsglobalthisgopdhas-bigintshas-flaghas-property-descriptorshas-protohas-symbolshas-tostringtaghasownignoreimport-freshimurmurhashinternal-slotis-array-bufferis-async-functionis-bigintis-boolean-objectis-callableis-core-moduleis-data-viewis-date-objectis-extglobis-finalizationregistryis-generator-functionis-globis-mapis-number-objectis-regexis-setis-shared-array-bufferis-stringis-symbolis-typed-arrayis-weakmapis-weakrefis-weaksetisarrayisexeiterator.prototypejs-tokensjs-yamljsescjson-bufferjson-schema-traversejson-stable-stringify-without-jsonifyjson5jsx-ast-utilskeyvlevnlocate-pathlodash.mergeloose-envifylru-cachemath-intrinsicsminimatchmsnanoidnatural-comparenode-releasesobject-assignobject-inspectobject-keysobject.assignobject.entriesobject.fromentriesobject.valuesoptionatorown-keysp-limitp-locateparent-modulepath-existspath-keypath-parsepicocolorspossible-typed-array-namespostcssprelude-lsprop-typespunycodereactreact-domreact-isreact-refreshreflect.getprototypeofregexp.prototype.flagsresolveresolve-fromrollupsafe-array-concatsafe-push-applysafe-regex-testschedulersemverset-function-lengthset-function-nameset-protoshebang-commandshebang-regexside-channelside-channel-listside-channel-mapside-channel-weakmapsource-map-jsstring.prototype.matchallstring.prototype.repeatstring.prototype.trimstring.prototype.trimendstring.prototype.trimstartstrip-json-commentssupports-colorsupports-preserve-symlinks-flagtype-checktyped-array-buffertyped-array-byte-lengthtyped-array-byte-offsettyped-array-lengthunbox-primitiveupdate-browserslist-dburi-jsvitewhichwhich-boxed-primitivewhich-builtin-typewhich-collectionwhich-typed-arrayword-wrapyallistyocto-queue
1.0.2

3 months ago

1.0.1

3 months ago

1.0.0

3 months ago

0.1.3

3 months ago

0.1.2

3 months ago

0.1.1

3 months ago

0.1.0

3 months ago