An open API service indexing awesome lists of open source software.

https://github.com/funny-family/solid-js-modal

Simple "dialog" element based "modal" component for Solid-js
https://github.com/funny-family/solid-js-modal

component dialog javascript modal solid-js solidjs typescript

Last synced: about 2 months ago
JSON representation

Simple "dialog" element based "modal" component for Solid-js

Awesome Lists containing this project

README

          


solid-js-modal

# solid-js-modal

[![pnpm](https://img.shields.io/badge/maintained%20with-pnpm-cc00ff.svg?style=for-the-badge&logo=pnpm)](https://pnpm.io/)

Simple "dialog" element based "modal" component for Solid-js

## Quick start

### Installation:
```bash
npm i solid-js-modal
# or
yarn add solid-js-modal
# or
pnpm add solid-js-modal
```

### [Demo here!](https://funny-family.github.io/solid-js-modal/)

### Examples:
```tsx
import { Modal } from 'solid-js-modal';
import 'solid-js-modal/dist/style.css';
// ...
let modalRef;
// ...


modalRef.showModal()}
>
Open modal


This is modal content




```

```tsx
import { Modal } from 'solid-js-modal';
import 'solid-js-modal/dist/style.css';
// ...
let modalRef;
// ...


modalRef.showModal()}
>
Open modal


modalRef.close()}
>
Close modal

This is modal content




```

```tsx
import { createSignal, Show } from 'solid-js';
import { Modal } from 'solid-js-modal';
import 'solid-js-modal/dist/style.css';
// ...
let modalRef;
const { 0: isVisible, 1: setIsVisibleState } = createSignal(false);
// ...


{
modalRef.showModal();
setIsVisibleState(true);
}}
>
Open modal

{
setIsVisibleState(false);
}}
>

This is modal content





```

### User guide:
The `Modal` component has all the attributes that `HTMLDialogElement` has, except for `open`.

#### Props
| Prop name | Description | Default value | Example value |
| --------- | ----------- | ------------- | ------------- |
| shouldCloseOnBackgroundClick | Allow to close modal on background click. | true | false |
| onOpen | Callback fired the modal is opened. | n/a | `(event) => console.log('open event:', event)`